From 438370357aaf725a28cb3d07ed7f48b80c00e10c Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 15 Jan 2020 10:43:15 +0000 Subject: [PATCH] Fixed next date for territory war not being set. Contributed by Avanael. --- .../TerritoryWarSuperClass.java | 36 +++---------------- .../instancemanager/TerritoryWarManager.java | 33 ++++++++++++++++- .../TerritoryWarSuperClass.java | 36 +++---------------- .../instancemanager/TerritoryWarManager.java | 33 ++++++++++++++++- 4 files changed, 72 insertions(+), 66 deletions(-) diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java index b7ccfa4e76..98ac61e217 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java @@ -19,8 +19,6 @@ package quests.TerritoryWarScripts; import java.util.Calendar; import org.l2jmobius.commons.util.CommonUtil; -import org.l2jmobius.gameserver.instancemanager.CastleManager; -import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager; import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager; import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn; import org.l2jmobius.gameserver.model.TerritoryWard; @@ -66,38 +64,12 @@ public class TerritoryWarSuperClass extends Quest if (questId < 0) { - // Outpost and Ward handled by the Super Class script + // Outpost and Ward handled by the Super Class script. addSkillSeeId(36590); - // Calculate next TW date - final Calendar cal = Calendar.getInstance(); - - final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(TerritoryWarManager.GLOBAL_VARIABLE, 0); - if (nextSiegeDate > System.currentTimeMillis()) - { - cal.setTimeInMillis(nextSiegeDate); - } - else - { - // Let's check if territory war date was in the past - if (cal.before(Calendar.getInstance())) - { - cal.setTimeInMillis(System.currentTimeMillis()); - } - - final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle(); - cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY); - cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - if (cal.before(Calendar.getInstance())) - { - cal.add(Calendar.WEEK_OF_YEAR, 2); - } - GlobalVariablesManager.getInstance().set(TerritoryWarManager.GLOBAL_VARIABLE, cal.getTimeInMillis()); - } - TerritoryWarManager.getInstance().setTWStartTimeInMillis(cal.getTimeInMillis()); - LOGGER.info(getClass().getSimpleName() + ": Siege date: " + cal.getTime()); + // Calculate next TW date. + TerritoryWarManager.getInstance().setNextTWDate(); + LOGGER.info(getClass().getSimpleName() + ": Siege date: " + TerritoryWarManager.getInstance().getTWStart().getTime()); } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java index 07f8bac2e2..8aefee7f1e 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java @@ -1108,11 +1108,42 @@ public class TerritoryWarManager implements Siegable } } - // change next TW date + // Change next TW date. + setNextTWDate(); final SystemMessage sm = new SystemMessage(SystemMessageId.TERRITORY_WAR_HAS_ENDED); Broadcast.toAllOnlinePlayers(sm); } + public void setNextTWDate() + { + final Calendar cal = Calendar.getInstance(); + final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(GLOBAL_VARIABLE, 0); + if (nextSiegeDate > System.currentTimeMillis()) + { + cal.setTimeInMillis(nextSiegeDate); + } + else + { + // Let's check if territory war date was in the past. + if (cal.before(Calendar.getInstance())) + { + cal.setTimeInMillis(System.currentTimeMillis()); + } + + final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle(); + cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY); + cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + if (cal.before(Calendar.getInstance())) + { + cal.add(Calendar.WEEK_OF_YEAR, 2); + } + GlobalVariablesManager.getInstance().set(GLOBAL_VARIABLE, cal.getTimeInMillis()); + } + setTWStartTimeInMillis(cal.getTimeInMillis()); + } + protected void updatePlayerTWStateFlags(boolean clear) { final Quest twQuest = QuestManager.getInstance().getQuest(qn); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java index b7ccfa4e76..98ac61e217 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java @@ -19,8 +19,6 @@ package quests.TerritoryWarScripts; import java.util.Calendar; import org.l2jmobius.commons.util.CommonUtil; -import org.l2jmobius.gameserver.instancemanager.CastleManager; -import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager; import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager; import org.l2jmobius.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn; import org.l2jmobius.gameserver.model.TerritoryWard; @@ -66,38 +64,12 @@ public class TerritoryWarSuperClass extends Quest if (questId < 0) { - // Outpost and Ward handled by the Super Class script + // Outpost and Ward handled by the Super Class script. addSkillSeeId(36590); - // Calculate next TW date - final Calendar cal = Calendar.getInstance(); - - final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(TerritoryWarManager.GLOBAL_VARIABLE, 0); - if (nextSiegeDate > System.currentTimeMillis()) - { - cal.setTimeInMillis(nextSiegeDate); - } - else - { - // Let's check if territory war date was in the past - if (cal.before(Calendar.getInstance())) - { - cal.setTimeInMillis(System.currentTimeMillis()); - } - - final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle(); - cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY); - cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - if (cal.before(Calendar.getInstance())) - { - cal.add(Calendar.WEEK_OF_YEAR, 2); - } - GlobalVariablesManager.getInstance().set(TerritoryWarManager.GLOBAL_VARIABLE, cal.getTimeInMillis()); - } - TerritoryWarManager.getInstance().setTWStartTimeInMillis(cal.getTimeInMillis()); - LOGGER.info(getClass().getSimpleName() + ": Siege date: " + cal.getTime()); + // Calculate next TW date. + TerritoryWarManager.getInstance().setNextTWDate(); + LOGGER.info(getClass().getSimpleName() + ": Siege date: " + TerritoryWarManager.getInstance().getTWStart().getTime()); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java index 07f8bac2e2..8aefee7f1e 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/instancemanager/TerritoryWarManager.java @@ -1108,11 +1108,42 @@ public class TerritoryWarManager implements Siegable } } - // change next TW date + // Change next TW date. + setNextTWDate(); final SystemMessage sm = new SystemMessage(SystemMessageId.TERRITORY_WAR_HAS_ENDED); Broadcast.toAllOnlinePlayers(sm); } + public void setNextTWDate() + { + final Calendar cal = Calendar.getInstance(); + final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(GLOBAL_VARIABLE, 0); + if (nextSiegeDate > System.currentTimeMillis()) + { + cal.setTimeInMillis(nextSiegeDate); + } + else + { + // Let's check if territory war date was in the past. + if (cal.before(Calendar.getInstance())) + { + cal.setTimeInMillis(System.currentTimeMillis()); + } + + final boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle(); + cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY); + cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + if (cal.before(Calendar.getInstance())) + { + cal.add(Calendar.WEEK_OF_YEAR, 2); + } + GlobalVariablesManager.getInstance().set(GLOBAL_VARIABLE, cal.getTimeInMillis()); + } + setTWStartTimeInMillis(cal.getTimeInMillis()); + } + protected void updatePlayerTWStateFlags(boolean clear) { final Quest twQuest = QuestManager.getInstance().getQuest(qn);