From 4b7c33e76ab86caf4f8f0272730577429e50c0b2 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 21 Sep 2019 17:54:35 +1200 Subject: [PATCH] Add event related commands --- .../game/events/GlobalEventManager.java | 52 +++++++++---------- .../command/DeveloperCommandPlugin.java | 18 +++---- .../plugin/command/PlayerCommandPlugin.java | 17 ++++++ 3 files changed, 50 insertions(+), 37 deletions(-) diff --git a/09HDscape-server/src/org/crandor/game/events/GlobalEventManager.java b/09HDscape-server/src/org/crandor/game/events/GlobalEventManager.java index e3cb36080..de4378b61 100644 --- a/09HDscape-server/src/org/crandor/game/events/GlobalEventManager.java +++ b/09HDscape-server/src/org/crandor/game/events/GlobalEventManager.java @@ -5,6 +5,8 @@ import org.crandor.game.system.task.Pulse; import org.crandor.game.world.GameWorld; import org.crandor.game.world.callback.CallBack; import org.crandor.game.world.repository.Repository; +import org.crandor.net.amsc.MSPacketRepository; +import org.crandor.net.amsc.WorldCommunicator; import org.crandor.tools.mysql.Results; import java.util.HashMap; @@ -30,7 +32,6 @@ public class GlobalEventManager implements CallBack { public final GlobalEventManager init() { try { - getEvents().put("Alchemy hellenistic", 0L); getEvents().put("Golden retriever", 0L); getEvents().put("Harvesting doubles", 0L); @@ -144,29 +145,25 @@ public class GlobalEventManager implements CallBack { } public GlobalEventManager message(String message) { - return message(message, true, ""); + return message(message, true, ""); } public GlobalEventManager message(String message, boolean tag) { - return message(message, tag, ""); + return message(message, tag, ""); } public GlobalEventManager notify(String message) { - return message(message, true, ""); + return message(message, true, ""); } public GlobalEventManager notify(String message, boolean tag) { - return message(message, tag, ""); + return message(message, tag, ""); } public GlobalEventManager message(String message, boolean tag, String color) { - /*if (WorldCommunicator.isEnabled()) { - MSPacketRepository.sendWorldMessage((tag ? "[Event Manager] - " : "")+ message); - } else {*/ - for (Player player : Repository.getPlayers()) { - player.getPacketDispatch().sendMessage(color + (tag ? "[Event Manager] - " : "") + message); - } - //} + for (Player player : Repository.getPlayers()) { + player.getPacketDispatch().sendMessage(color + (tag ? "[Event Manager] " : "") + message); + } return this; } @@ -193,15 +190,8 @@ public class GlobalEventManager implements CallBack { public GlobalEventManager activate(String eventName, String name) { - Player p = Repository.getPlayerByDisplay(name); - if (getEvents().get(eventName) == null) { - System.out.println("Failed to activate event " + eventName + "."); - return this; - } - if (p == null && !eventName.equalsIgnoreCase("clone fest")) { - System.out.println("Couldnt activate event; " + name + " couldnt be found."); - return this; - } + Player player = Repository.getPlayerByDisplay(name); + Boolean eventStarted = false; Iterator> iterator = EVENTS.entrySet().iterator(); @@ -213,15 +203,18 @@ public class GlobalEventManager implements CallBack { notify("bank on world " + GameWorld.getSettings().getWorldId() + ".", false); } else { if (entry.getValue() != 0) { - message("The event " + eventName + " has been extended for another hour by " + (p == null ? " " : p.getUsername() + " ")); - message("on world " + GameWorld.getSettings().getWorldId() + ".", false); + message("The event " + eventName + " has been extended for another hour" + (player == null ? "" : " by " + player.getUsername()) + "."); } else { - message("The event " + eventName + " has been activated by " + (p == null ? " " : p.getUsername() + " ") + "on world " + GameWorld.getSettings().getWorldId() + "."); + message("The event " + eventName + " has been activated" + (player == null ? "" : " by " + player.getUsername()) + " on world " + GameWorld.getSettings().getWorldId() + "."); } } entry.setValue(entry.getValue() + 6000); + eventStarted = true; } } + if (!eventStarted) { + player.sendMessage("Failed to activate event " + eventName + "."); + } return this; } @@ -250,7 +243,7 @@ public class GlobalEventManager implements CallBack { player.getPacketDispatch().sendMessages("This event means you'll receive x2 items when harvesting with woodcutting, mining", "or fishing."); break; case "Thieves jackpot": - player.getPacketDispatch().sendMessages("This event means you'll receive 300% more coins when thieving."); + player.getPacketDispatch().sendMessages("This event means you'll receive 3x more coins when thieving."); break; case "Golden essence": player.getPacketDispatch().sendMessages("This event means you'll receive x3 more runes than normal when runecrafting."); @@ -294,14 +287,17 @@ public class GlobalEventManager implements CallBack { active = true; } } - if (active) - player.sendMessage("The following events are active:"); + if (!active) { + player.sendMessage("No events are currently active."); + return this; + } + player.sendMessage("The following events are active:"); Iterator> iterator = EVENTS.entrySet().iterator(); while(iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator.next(); if (entry.getValue() > 0) { - player.sendMessage(" [-] " + entry.getKey() + "."); + player.sendMessage(" [-] " + entry.getKey() + "."); } } return this; diff --git a/09HDscape-server/src/plugin/command/DeveloperCommandPlugin.java b/09HDscape-server/src/plugin/command/DeveloperCommandPlugin.java index ab89ed789..8ac20c6d2 100644 --- a/09HDscape-server/src/plugin/command/DeveloperCommandPlugin.java +++ b/09HDscape-server/src/plugin/command/DeveloperCommandPlugin.java @@ -177,22 +177,22 @@ public final class DeveloperCommandPlugin extends CommandPlugin { case "taskamount": player.sendMessage("You have " + player.getSkillTasks().getTaskAmount() + " more to go!"); break; - case "activatexp": - String target = ""; - for (int i = 1; i < args.length; i++) - target += args[i] + ((i == args.length - 1) ? "" : " "); - if (args.length > 1) - GlobalEventManager.get().activate("XP Fever", target); - else - GlobalEventManager.get().activate("XP Fever", target); + + case "eventactivate": + String[] eventNameArr = Arrays.copyOfRange(args, 1, args.length); + String eventName = String.join(" ", eventNameArr); + player.sendMessage("You have activated the " + eventName + " event!"); + GlobalEventManager.get().activate(eventName, null); break; + case "poison": player.getStateManager().set(EntityState.POISONED, 200, player); player.getConfigManager().set(102, 1); player.sendMessage("Poisoned..."); break; + case "activatecf": - target = "Developers"; + String target = ""; for (int i = 1; i < args.length; i++) target += args[i] + ((i == args.length - 1) ? "" : " "); GlobalEventManager.get().activate("Clone Fest", null); diff --git a/09HDscape-server/src/plugin/command/PlayerCommandPlugin.java b/09HDscape-server/src/plugin/command/PlayerCommandPlugin.java index 910849c1e..1342467f1 100644 --- a/09HDscape-server/src/plugin/command/PlayerCommandPlugin.java +++ b/09HDscape-server/src/plugin/command/PlayerCommandPlugin.java @@ -3,6 +3,7 @@ package plugin.command; import org.crandor.ServerConstants; import org.crandor.game.component.Component; import org.crandor.game.content.global.tutorial.TutorialStage; +import org.crandor.game.events.GlobalEventManager; import org.crandor.game.node.entity.player.Player; import org.crandor.game.node.entity.player.info.Rights; import org.crandor.game.node.entity.player.link.IronmanMode; @@ -188,6 +189,11 @@ public final class PlayerCommandPlugin extends CommandPlugin { sendDonationInfo(player); return true; + case "events": + GlobalEventManager.get().alert(player); + sendEvents(player); + return true; + case "reply": if(player.getInterfaceManager().isOpened()){ player.sendMessage("Please finish what you're doing first."); @@ -284,6 +290,17 @@ public final class PlayerCommandPlugin extends CommandPlugin { } } + /** + * Sends events list. + * @param player the player. + */ + private void sendEvents(Player player) { + if (player.getInterfaceManager().isOpened()) { + player.sendMessage("Finish what you're currently doing."); + return; + } + } + /** * Gets the yell prefix for the given player. * @param player The player.