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.