Custom specific Olympiad competition days.
This commit is contained in:
@@ -99,4 +99,8 @@ AltOlyTeleportCountDown = 120
|
||||
# es. 2weeks-->AltOlyPeriod = WEEK and AltOlyPeriodMultiplier = 2
|
||||
AltOlyUseCustomPeriodSettings = False
|
||||
AltOlyPeriod = MONTH
|
||||
AltOlyPeriodMultiplier = 1
|
||||
AltOlyPeriodMultiplier = 1
|
||||
|
||||
# Enable competitions only on specific days.
|
||||
# Default: 1,2,3,4,5,6,7 (SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY)
|
||||
AltOlyCompetitionDays = 1,2,3,4,5,6,7
|
||||
|
@@ -947,6 +947,7 @@ public final class Config
|
||||
public static boolean ALT_OLY_USE_CUSTOM_PERIOD_SETTINGS;
|
||||
public static OlympiadPeriod ALT_OLY_PERIOD;
|
||||
public static int ALT_OLY_PERIOD_MULTIPLIER;
|
||||
public static List<Integer> ALT_OLY_COMPETITION_DAYS;
|
||||
|
||||
public static Map<Integer, Integer> NORMAL_WEAPON_ENCHANT_LEVEL = new HashMap<>();
|
||||
public static Map<Integer, Integer> BLESS_WEAPON_ENCHANT_LEVEL = new HashMap<>();
|
||||
@@ -2858,6 +2859,11 @@ public final class Config
|
||||
ALT_OLY_USE_CUSTOM_PERIOD_SETTINGS = Boolean.parseBoolean(OLYMPSetting.getProperty("AltOlyUseCustomPeriodSettings", "false"));
|
||||
ALT_OLY_PERIOD = OlympiadPeriod.valueOf(OLYMPSetting.getProperty("AltOlyPeriod", "MONTH"));
|
||||
ALT_OLY_PERIOD_MULTIPLIER = Integer.parseInt(OLYMPSetting.getProperty("AltOlyPeriodMultiplier", "1"));
|
||||
ALT_OLY_COMPETITION_DAYS = new ArrayList<>();
|
||||
for (String s : OLYMPSetting.getProperty("AltOlyCompetitionDays", "1,2,3,4,5,6,7").split(","))
|
||||
{
|
||||
ALT_OLY_COMPETITION_DAYS.add(Integer.parseInt(s));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@@ -363,6 +363,36 @@ public class Olympiad
|
||||
_classBasedRegisters = new HashMap<>();
|
||||
|
||||
_compStart = Calendar.getInstance();
|
||||
if (Config.ALT_OLY_USE_CUSTOM_PERIOD_SETTINGS)
|
||||
{
|
||||
final int currentDay = _compStart.get(Calendar.DAY_OF_WEEK);
|
||||
boolean dayFound = false;
|
||||
int dayCounter = 0;
|
||||
for (int i = currentDay; i < 8; i++)
|
||||
{
|
||||
if (Config.ALT_OLY_COMPETITION_DAYS.contains(i))
|
||||
{
|
||||
dayFound = true;
|
||||
break;
|
||||
}
|
||||
dayCounter++;
|
||||
}
|
||||
if (!dayFound)
|
||||
{
|
||||
for (int i = 1; i < 8; i++)
|
||||
{
|
||||
if (Config.ALT_OLY_COMPETITION_DAYS.contains(i))
|
||||
{
|
||||
break;
|
||||
}
|
||||
dayCounter++;
|
||||
}
|
||||
}
|
||||
if (dayCounter > 0)
|
||||
{
|
||||
_compStart.add(Calendar.DAY_OF_MONTH, dayCounter);
|
||||
}
|
||||
}
|
||||
_compStart.set(Calendar.HOUR_OF_DAY, COMP_START);
|
||||
_compStart.set(Calendar.MINUTE, COMP_MIN);
|
||||
_compEnd = _compStart.getTimeInMillis() + COMP_PERIOD;
|
||||
@@ -907,6 +937,36 @@ public class Olympiad
|
||||
private long setNewCompBegin()
|
||||
{
|
||||
_compStart = Calendar.getInstance();
|
||||
if (Config.ALT_OLY_USE_CUSTOM_PERIOD_SETTINGS)
|
||||
{
|
||||
final int currentDay = _compStart.get(Calendar.DAY_OF_WEEK);
|
||||
boolean dayFound = false;
|
||||
int dayCounter = 0;
|
||||
for (int i = currentDay; i < 8; i++)
|
||||
{
|
||||
if (Config.ALT_OLY_COMPETITION_DAYS.contains(i))
|
||||
{
|
||||
dayFound = true;
|
||||
break;
|
||||
}
|
||||
dayCounter++;
|
||||
}
|
||||
if (!dayFound)
|
||||
{
|
||||
for (int i = 1; i < 8; i++)
|
||||
{
|
||||
if (Config.ALT_OLY_COMPETITION_DAYS.contains(i))
|
||||
{
|
||||
break;
|
||||
}
|
||||
dayCounter++;
|
||||
}
|
||||
}
|
||||
if (dayCounter > 0)
|
||||
{
|
||||
_compStart.add(Calendar.DAY_OF_MONTH, dayCounter);
|
||||
}
|
||||
}
|
||||
_compStart.set(Calendar.HOUR_OF_DAY, COMP_START);
|
||||
_compStart.set(Calendar.MINUTE, COMP_MIN);
|
||||
_compStart.add(Calendar.HOUR_OF_DAY, 24);
|
||||
|
Reference in New Issue
Block a user