From 669b008d200d84ef69439757d9e50b4a9dc6b5ca Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 17 Nov 2017 14:53:58 +0000 Subject: [PATCH] Daily reset task for training camp. --- .../instancemanager/DailyTaskManager.java | 28 +++++++++++++++++++ .../model/actor/instance/L2PcInstance.java | 5 ++++ .../instancemanager/DailyTaskManager.java | 28 +++++++++++++++++++ .../model/actor/instance/L2PcInstance.java | 5 ++++ .../instancemanager/DailyTaskManager.java | 28 +++++++++++++++++++ .../model/actor/instance/L2PcInstance.java | 5 ++++ .../instancemanager/DailyTaskManager.java | 28 +++++++++++++++++++ .../model/actor/instance/L2PcInstance.java | 5 ++++ .../instancemanager/DailyTaskManager.java | 28 +++++++++++++++++++ .../model/actor/instance/L2PcInstance.java | 5 ++++ 10 files changed, 165 insertions(+) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 8ba72441bc..ed15565032 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -65,6 +65,7 @@ public class DailyTaskManager extends AbstractEventManager> resetDailySkills(); resetRecommends(); resetWorldChatPoints(); + resetTrainingCamp(); } @ScheduleTarget @@ -244,6 +245,33 @@ public class DailyTaskManager extends AbstractEventManager> }); } + public void resetTrainingCamp() + { + if (Config.TRAINING_CAMP_ENABLE) + { + // Update data for offline players. + try (Connection con = DatabaseFactory.getInstance().getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM account_gsdata WHERE var = ?")) + { + ps.setString(1, "TRAINING_CAMP_DURATION"); + ps.executeUpdate(); + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Could not reset Training Camp: ", e); + } + + // Update data for online players. + L2World.getInstance().getPlayers().stream().forEach(player -> + { + player.resetTraingCampDuration(); + player.getAccountVariables().storeMe(); + }); + + LOGGER.info("Training Camp daily time has been resetted."); + } + } + public static DailyTaskManager getInstance() { return SingletonHolder.INSTANCE; diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 5cb5e4ac50..d0eb98822d 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -14005,6 +14005,11 @@ public final class L2PcInstance extends L2Playable getAccountVariables().set(TRAINING_CAMP_DURATION, duration); } + public void resetTraingCampDuration() + { + getAccountVariables().remove(TRAINING_CAMP_DURATION); + } + public boolean isInTraingCamp() { final TrainingHolder trainingHolder = getTraingCampInfo(); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 6994171c13..2cf208e267 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -68,6 +68,7 @@ public class DailyTaskManager extends AbstractEventManager> resetDailySkills(); resetRecommends(); resetWorldChatPoints(); + resetTrainingCamp(); } @ScheduleTarget @@ -247,6 +248,33 @@ public class DailyTaskManager extends AbstractEventManager> }); } + public void resetTrainingCamp() + { + if (Config.TRAINING_CAMP_ENABLE) + { + // Update data for offline players. + try (Connection con = DatabaseFactory.getInstance().getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM account_gsdata WHERE var = ?")) + { + ps.setString(1, "TRAINING_CAMP_DURATION"); + ps.executeUpdate(); + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Could not reset Training Camp: ", e); + } + + // Update data for online players. + L2World.getInstance().getPlayers().stream().forEach(player -> + { + player.resetTraingCampDuration(); + player.getAccountVariables().storeMe(); + }); + + LOGGER.info("Training Camp daily time has been resetted."); + } + } + private void resetDailyMissionRewards() { DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 6f16d1bfe5..67826da5fc 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -13989,6 +13989,11 @@ public final class L2PcInstance extends L2Playable getAccountVariables().set(TRAINING_CAMP_DURATION, duration); } + public void resetTraingCampDuration() + { + getAccountVariables().remove(TRAINING_CAMP_DURATION); + } + public boolean isInTraingCamp() { final TrainingHolder trainingHolder = getTraingCampInfo(); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 6994171c13..2cf208e267 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -68,6 +68,7 @@ public class DailyTaskManager extends AbstractEventManager> resetDailySkills(); resetRecommends(); resetWorldChatPoints(); + resetTrainingCamp(); } @ScheduleTarget @@ -247,6 +248,33 @@ public class DailyTaskManager extends AbstractEventManager> }); } + public void resetTrainingCamp() + { + if (Config.TRAINING_CAMP_ENABLE) + { + // Update data for offline players. + try (Connection con = DatabaseFactory.getInstance().getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM account_gsdata WHERE var = ?")) + { + ps.setString(1, "TRAINING_CAMP_DURATION"); + ps.executeUpdate(); + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Could not reset Training Camp: ", e); + } + + // Update data for online players. + L2World.getInstance().getPlayers().stream().forEach(player -> + { + player.resetTraingCampDuration(); + player.getAccountVariables().storeMe(); + }); + + LOGGER.info("Training Camp daily time has been resetted."); + } + } + private void resetDailyMissionRewards() { DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 891d7b89a2..1ae48aada7 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -14047,6 +14047,11 @@ public final class L2PcInstance extends L2Playable getAccountVariables().set(TRAINING_CAMP_DURATION, duration); } + public void resetTraingCampDuration() + { + getAccountVariables().remove(TRAINING_CAMP_DURATION); + } + public boolean isInTraingCamp() { final TrainingHolder trainingHolder = getTraingCampInfo(); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 6994171c13..2cf208e267 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -68,6 +68,7 @@ public class DailyTaskManager extends AbstractEventManager> resetDailySkills(); resetRecommends(); resetWorldChatPoints(); + resetTrainingCamp(); } @ScheduleTarget @@ -247,6 +248,33 @@ public class DailyTaskManager extends AbstractEventManager> }); } + public void resetTrainingCamp() + { + if (Config.TRAINING_CAMP_ENABLE) + { + // Update data for offline players. + try (Connection con = DatabaseFactory.getInstance().getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM account_gsdata WHERE var = ?")) + { + ps.setString(1, "TRAINING_CAMP_DURATION"); + ps.executeUpdate(); + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Could not reset Training Camp: ", e); + } + + // Update data for online players. + L2World.getInstance().getPlayers().stream().forEach(player -> + { + player.resetTraingCampDuration(); + player.getAccountVariables().storeMe(); + }); + + LOGGER.info("Training Camp daily time has been resetted."); + } + } + private void resetDailyMissionRewards() { DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 79a93b8887..3c3c54aad0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -14088,6 +14088,11 @@ public final class L2PcInstance extends L2Playable getAccountVariables().set(TRAINING_CAMP_DURATION, duration); } + public void resetTraingCampDuration() + { + getAccountVariables().remove(TRAINING_CAMP_DURATION); + } + public boolean isInTraingCamp() { final TrainingHolder trainingHolder = getTraingCampInfo(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java index 6994171c13..2cf208e267 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/DailyTaskManager.java @@ -68,6 +68,7 @@ public class DailyTaskManager extends AbstractEventManager> resetDailySkills(); resetRecommends(); resetWorldChatPoints(); + resetTrainingCamp(); } @ScheduleTarget @@ -247,6 +248,33 @@ public class DailyTaskManager extends AbstractEventManager> }); } + public void resetTrainingCamp() + { + if (Config.TRAINING_CAMP_ENABLE) + { + // Update data for offline players. + try (Connection con = DatabaseFactory.getInstance().getConnection(); + PreparedStatement ps = con.prepareStatement("DELETE FROM account_gsdata WHERE var = ?")) + { + ps.setString(1, "TRAINING_CAMP_DURATION"); + ps.executeUpdate(); + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Could not reset Training Camp: ", e); + } + + // Update data for online players. + L2World.getInstance().getPlayers().stream().forEach(player -> + { + player.resetTraingCampDuration(); + player.getAccountVariables().storeMe(); + }); + + LOGGER.info("Training Camp daily time has been resetted."); + } + } + private void resetDailyMissionRewards() { DailyMissionData.getInstance().getDailyMissionData().forEach(DailyMissionDataHolder::reset); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 46e865e80f..6b87f16a75 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -13912,6 +13912,11 @@ public final class L2PcInstance extends L2Playable getAccountVariables().set(TRAINING_CAMP_DURATION, duration); } + public void resetTraingCampDuration() + { + getAccountVariables().remove(TRAINING_CAMP_DURATION); + } + public boolean isInTraingCamp() { final TrainingHolder trainingHolder = getTraingCampInfo();