Reset attendance rewards every day at 6:30 am.

Contributed by nasseka.
This commit is contained in:
MobiusDevelopment
2021-10-04 13:04:50 +00:00
parent 9840289ef6
commit 4e34494d03
18 changed files with 486 additions and 0 deletions

View File

@@ -68,6 +68,7 @@ public class DailyTaskManager extends AbstractEventManager<AbstractEvent<?>>
resetRecommends();
resetWorldChatPoints();
resetTrainingCamp();
onResetAttendanceRewards();
}
@ScheduleTarget
@@ -259,6 +260,32 @@ public class DailyTaskManager extends AbstractEventManager<AbstractEvent<?>>
DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset);
}
public void onResetAttendanceRewards()
{
// Update data for offline players.
try (Connection con = DatabaseFactory.getConnection())
{
try (PreparedStatement ps = con.prepareStatement("DELETE FROM character_variables WHERE var=?"))
{
ps.setString(1, "ATTENDANCE_DATE");
ps.execute();
}
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, getClass().getSimpleName() + ": Could not reset Attendance Rewards: " + e);
}
// Update data for online players.
for (PlayerInstance player : World.getInstance().getPlayers())
{
player.getVariables().remove("ATTENDANCE_DATE");
player.getVariables().storeMe();
}
LOGGER.info("Attendance Rewards has been resetted.");
}
public static DailyTaskManager getInstance()
{
return SingletonHolder.INSTANCE;