AdminTerritoryWar.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. * This program is free software: you can redistribute it and/or modify it under
  3. * the terms of the GNU General Public License as published by the Free Software
  4. * Foundation, either version 3 of the License, or (at your option) any later
  5. * version.
  6. *
  7. * This program is distributed in the hope that it will be useful, but WITHOUT
  8. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10. * details.
  11. *
  12. * You should have received a copy of the GNU General Public License along with
  13. * this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. package handlers.admincommandhandlers;
  16. import java.util.Calendar;
  17. import java.util.StringTokenizer;
  18. import com.l2jserver.gameserver.handler.IAdminCommandHandler;
  19. import com.l2jserver.gameserver.instancemanager.QuestManager;
  20. import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
  21. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  22. import com.l2jserver.gameserver.model.quest.Quest;
  23. import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
  24. /**
  25. * Admin comand handler for Territory War System
  26. * This class handles following admin commands:
  27. *
  28. * @author Gigiikun
  29. */
  30. public class AdminTerritoryWar implements IAdminCommandHandler
  31. {
  32. private static final String[] _adminCommands =
  33. {
  34. "admin_territory_war",
  35. "admin_territory_war_time",
  36. "admin_territory_war_start",
  37. "admin_territory_war_end"
  38. };
  39. public boolean useAdminCommand(String command, L2PcInstance activeChar)
  40. {
  41. StringTokenizer st = new StringTokenizer(command);
  42. command = st.nextToken();
  43. if (command.equals("admin_territory_war"))
  44. {
  45. showMainPage(activeChar);
  46. }
  47. else if (command.equalsIgnoreCase("admin_territory_war_time"))
  48. {
  49. String val = "";
  50. if (st.hasMoreTokens())
  51. {
  52. val = st.nextToken();
  53. Calendar newAdminTWDate = Calendar.getInstance();
  54. newAdminTWDate.setTimeInMillis(TerritoryWarManager.getInstance().getTWStartTimeInMillis());
  55. if (val.equalsIgnoreCase("day"))
  56. newAdminTWDate.set(Calendar.DAY_OF_WEEK, Integer.parseInt(st.nextToken()));
  57. else if (val.equalsIgnoreCase("hour"))
  58. newAdminTWDate.set(Calendar.HOUR_OF_DAY, Integer.parseInt(st.nextToken()));
  59. else if (val.equalsIgnoreCase("min"))
  60. newAdminTWDate.set(Calendar.MINUTE, Integer.parseInt(st.nextToken()));
  61. if (newAdminTWDate.getTimeInMillis() < Calendar.getInstance().getTimeInMillis())
  62. {
  63. activeChar.sendMessage("Unable to change TW Date!");
  64. }
  65. else if (newAdminTWDate.getTimeInMillis() != TerritoryWarManager.getInstance().getTWStartTimeInMillis())
  66. {
  67. Quest twQuest = QuestManager.getInstance().getQuest(TerritoryWarManager.qn);
  68. if (twQuest != null)
  69. twQuest.onAdvEvent("setTWDate " + newAdminTWDate.getTimeInMillis(), null, null);
  70. else
  71. activeChar.sendMessage("Missing Territory War Quest!");
  72. }
  73. }
  74. showSiegeTimePage(activeChar);
  75. }
  76. else if (command.equalsIgnoreCase("admin_territory_war_start"))
  77. {
  78. Quest twQuest = QuestManager.getInstance().getQuest(TerritoryWarManager.qn);
  79. if (twQuest != null)
  80. twQuest.onAdvEvent("setTWDate " + Calendar.getInstance().getTimeInMillis(), null, null);
  81. else
  82. activeChar.sendMessage("Missing Territory War Quest!");
  83. }
  84. else if (command.equalsIgnoreCase("admin_territory_war_end"))
  85. {
  86. Quest twQuest = QuestManager.getInstance().getQuest(TerritoryWarManager.qn);
  87. if (twQuest != null)
  88. twQuest.onAdvEvent("setTWDate " + (Calendar.getInstance().getTimeInMillis() - TerritoryWarManager.WARLENGTH), null, null);
  89. else
  90. activeChar.sendMessage("Missing Territory War Quest!");
  91. }
  92. return true;
  93. }
  94. public String[] getAdminCommandList()
  95. {
  96. return _adminCommands;
  97. }
  98. private void showSiegeTimePage(L2PcInstance activeChar)
  99. {
  100. NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
  101. adminReply.setFile(activeChar.getHtmlPrefix(), "data/html/admin/territorywartime.htm");
  102. adminReply.replace("%time%", TerritoryWarManager.getInstance().getTWStart().getTime().toString());
  103. activeChar.sendPacket(adminReply);
  104. }
  105. private void showMainPage(L2PcInstance activeChar)
  106. {
  107. AdminHelpPage.showHelpPage(activeChar, "territorywar.htm");
  108. }
  109. }