Adjustments for latest Calendar initializations.

Thanks to borinet.
This commit is contained in:
MobiusDevelopment
2021-11-10 02:33:32 +00:00
parent 8265c45d55
commit fa1b339898
53 changed files with 829 additions and 467 deletions

View File

@ -42,18 +42,24 @@ public class ClanHallAuctionManager
protected ClanHallAuctionManager()
{
final long currentTime = Chronos.currentTimeMillis();
// Schedule of the start, next Wednesday at 19:00.
final Calendar start = Calendar.getInstance();
if ((start.get(Calendar.DAY_OF_WEEK) >= Calendar.WEDNESDAY))
{
start.add(Calendar.DAY_OF_YEAR, 7);
}
start.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
start.set(Calendar.HOUR_OF_DAY, 19);
start.set(Calendar.MINUTE, 0);
start.set(Calendar.SECOND, 0);
final long startDelay = Math.max(0, start.getTimeInMillis() - Chronos.currentTimeMillis());
ThreadPool.scheduleAtFixedRate(() -> onStart(), startDelay, 604800000); // 604800000 = 1 week
if (start.getTimeInMillis() < currentTime)
{
start.add(Calendar.DAY_OF_YEAR, 1);
while (start.get(Calendar.DAY_OF_WEEK) != Calendar.WEDNESDAY)
{
start.add(Calendar.DAY_OF_YEAR, 1);
}
}
final long startDelay = Math.max(0, start.getTimeInMillis() - currentTime);
ThreadPool.scheduleAtFixedRate(this::onStart, startDelay, 604800000); // 604800000 = 1 week
if (startDelay > 0)
{
onStart();
@ -61,16 +67,20 @@ public class ClanHallAuctionManager
// Schedule of the end, next Wednesday at 11:00.
final Calendar end = Calendar.getInstance();
if ((end.get(Calendar.DAY_OF_WEEK) >= Calendar.WEDNESDAY))
{
end.add(Calendar.DAY_OF_YEAR, 7);
}
end.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
end.set(Calendar.HOUR_OF_DAY, 11);
end.set(Calendar.MINUTE, 0);
end.set(Calendar.SECOND, 0);
final long endDelay = Math.max(0, end.getTimeInMillis() - Chronos.currentTimeMillis());
_endTask = ThreadPool.scheduleAtFixedRate(() -> onEnd(), endDelay, 604800000); // 604800000 = 1 week
if (end.getTimeInMillis() < currentTime)
{
end.add(Calendar.DAY_OF_YEAR, 1);
while (end.get(Calendar.DAY_OF_WEEK) != Calendar.WEDNESDAY)
{
end.add(Calendar.DAY_OF_YEAR, 1);
}
}
final long endDelay = Math.max(0, end.getTimeInMillis() - currentTime);
_endTask = ThreadPool.scheduleAtFixedRate(this::onEnd, endDelay, 604800000); // 604800000 = 1 week
}
private void onStart()

View File

@ -55,16 +55,18 @@ public class DailyTaskManager
protected DailyTaskManager()
{
final long currentTime = Chronos.currentTimeMillis();
// Schedule reset everyday at 6:30.
final Calendar calendar = Calendar.getInstance();
if ((calendar.get(Calendar.HOUR_OF_DAY) >= 6) && (calendar.get(Calendar.MINUTE) >= 30))
{
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
calendar.set(Calendar.HOUR_OF_DAY, 6);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
final long startDelay = Math.max(0, calendar.getTimeInMillis() - Chronos.currentTimeMillis());
if (calendar.getTimeInMillis() < currentTime)
{
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
final long startDelay = Math.max(0, calendar.getTimeInMillis() - currentTime);
ThreadPool.scheduleAtFixedRate(this::onReset, startDelay, 86400000); // 86400000 = 1 day
// Global save task.