По коду периуды олимпиады должны происходить 2 раза в месяц.
В конфигах, так же присутсвует функция EnableTwoOlympiadInMonth = True (true, т.е. включить периуд олимпа 2 раза в месяца, False по стандарту 1 месяц)
К сожалению, в итоге без результата, на пол месяц хиро не сменились.
Подскажите, пожалуйста, в чем может быть ошибка?
В конфигах, так же присутсвует функция EnableTwoOlympiadInMonth = True (true, т.е. включить периуд олимпа 2 раза в месяца, False по стандарту 1 месяц)
К сожалению, в итоге без результата, на пол месяц хиро не сменились.
Подскажите, пожалуйста, в чем может быть ошибка?
Код:
public static synchronized void setNewOlympiadEnd() {
Announcements.getInstance().announceToAll(new SystemMessage(SystemMessage.OLYMPIAD_PERIOD_S1_HAS_STARTED).addNumber(Olympiad._currentCycle));
Calendar currentTime = Calendar.getInstance();
int currentDay = currentTime.get(Calendar.DAY_OF_MONTH);
int maxDayInMonth = currentTime.getMaximum(Calendar.DAY_OF_MONTH);
if (!Config.ENABLE_TWO_OLYMPIAD_IN_MONTH || currentDay < maxDayInMonth / 2) {
currentTime.set(Calendar.DAY_OF_MONTH, 1);
currentTime.add(Calendar.MONTH, 1);
} else {
currentTime.set(Calendar.DAY_OF_MONTH, maxDayInMonth / 2);
}
currentTime.set(Calendar.HOUR_OF_DAY, 00);
currentTime.set(Calendar.MINUTE, 00);
Olympiad._olympiadEnd = currentTime.getTimeInMillis();
Calendar nextChange = Calendar.getInstance();
Olympiad._nextWeeklyChange = nextChange.getTimeInMillis() + Config.ALT_OLY_WPERIOD;
Olympiad._isOlympiadEnd = false;
}