Add event related commands

This commit is contained in:
RedSparr0w 2019-09-21 17:54:35 +12:00
parent 59e205f4aa
commit 4b7c33e76a
3 changed files with 50 additions and 37 deletions

View file

@ -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, "<col=027fc7>");
return message(message, true, "<col=3498db>");
}
public GlobalEventManager message(String message, boolean tag) {
return message(message, tag, "<col=027fc7>");
return message(message, tag, "<col=3498db>");
}
public GlobalEventManager notify(String message) {
return message(message, true, "<col=800000>");
return message(message, true, "<col=c0392b>");
}
public GlobalEventManager notify(String message, boolean tag) {
return message(message, tag, "<col=800000>");
return message(message, tag, "<col=c0392b>");
}
public GlobalEventManager message(String message, boolean tag, String color) {
/*if (WorldCommunicator.isEnabled()) {
MSPacketRepository.sendWorldMessage((tag ? "<col=027fc7>[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<Entry<String, Long>> 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("<col=027fc7>The following events are active:");
if (!active) {
player.sendMessage("<col=3498db>No events are currently active.");
return this;
}
player.sendMessage("<col=3498db>The following events are active:");
Iterator<Entry<String, Long>> iterator = EVENTS.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry<String, Long> entry = (Map.Entry<String, Long>) iterator.next();
if (entry.getValue() > 0) {
player.sendMessage("<col=027fc7> [-] " + entry.getKey() + ".");
player.sendMessage("<col=3498db> [-] " + entry.getKey() + ".");
}
}
return this;

View file

@ -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);

View file

@ -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("<col=e74c3c>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.