From e24498413220eb67754a223098a470d3c69c82d0 Mon Sep 17 00:00:00 2001 From: Daniil Z Date: Mon, 18 Sep 2023 12:47:53 +0300 Subject: [PATCH 01/44] Back to work on commands --- pom.xml | 4 + reactions/pom.xml | 13 +- .../java/fun/reactions/ReActionsPlugin.java | 45 +++++- .../main/java/fun/reactions/commands/Cmd.java | 69 -------- .../java/fun/reactions/commands/CmdAdd.java | 100 ------------ .../java/fun/reactions/commands/CmdCheck.java | 46 ------ .../java/fun/reactions/commands/CmdClear.java | 34 ---- .../java/fun/reactions/commands/CmdCopy.java | 72 --------- .../fun/reactions/commands/CmdCreate.java | 96 ----------- .../java/fun/reactions/commands/CmdDebug.java | 25 --- .../fun/reactions/commands/CmdDefine.java | 22 --- .../java/fun/reactions/commands/CmdExec.java | 22 --- .../java/fun/reactions/commands/CmdGroup.java | 26 --- .../java/fun/reactions/commands/CmdHelp.java | 36 ----- .../java/fun/reactions/commands/CmdInfo.java | 87 ---------- .../java/fun/reactions/commands/CmdList.java | 83 ---------- .../fun/reactions/commands/CmdReload.java | 68 -------- .../fun/reactions/commands/CmdRemove.java | 86 ---------- .../java/fun/reactions/commands/CmdRun.java | 20 --- .../fun/reactions/commands/CmdSelect.java | 17 -- .../java/fun/reactions/commands/CmdSet.java | 52 ------ .../fun/reactions/commands/Commander.java | 76 --------- .../fun/reactions/commands/RaCommand.java | 15 ++ .../commands/RaCommandException.java | 31 ++++ .../reactions/commands/impl/ActivatorSub.java | 102 ++++++++++++ .../reactions/commands/impl/CreateSub.java | 135 ++++++++++++++++ .../reactions/commands/nodes/CommandNode.java | 88 +++++++++++ .../commands/nodes/DoubleArgNode.java | 99 ++++++++++++ .../commands/nodes/IntegerArgNode.java | 99 ++++++++++++ .../reactions/commands/nodes/LiteralNode.java | 81 ++++++++++ .../fun/reactions/commands/nodes/Node.java | 26 +++ .../commands/nodes/StringArgNode.java | 149 ++++++++++++++++++ .../commands/user/UserCommandsManager.java | 2 +- .../fun/reactions/holders/LocationHolder.java | 4 +- .../fun/reactions/menu/InventoryMenu.java | 2 +- .../model/activity/ActivitiesRegistry.java | 11 ++ .../reactions/util/parameter/Parameters.java | 5 + reactions/src/main/resources/plugin.yml | 2 +- 38 files changed, 903 insertions(+), 1047 deletions(-) delete mode 100644 reactions/src/main/java/fun/reactions/commands/Cmd.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdAdd.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdCheck.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdClear.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdCopy.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdCreate.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdDebug.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdDefine.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdExec.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdGroup.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdHelp.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdInfo.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdList.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdReload.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdRemove.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdRun.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdSelect.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/CmdSet.java delete mode 100644 reactions/src/main/java/fun/reactions/commands/Commander.java create mode 100644 reactions/src/main/java/fun/reactions/commands/RaCommand.java create mode 100644 reactions/src/main/java/fun/reactions/commands/RaCommandException.java create mode 100644 reactions/src/main/java/fun/reactions/commands/impl/ActivatorSub.java create mode 100644 reactions/src/main/java/fun/reactions/commands/impl/CreateSub.java create mode 100644 reactions/src/main/java/fun/reactions/commands/nodes/CommandNode.java create mode 100644 reactions/src/main/java/fun/reactions/commands/nodes/DoubleArgNode.java create mode 100644 reactions/src/main/java/fun/reactions/commands/nodes/IntegerArgNode.java create mode 100644 reactions/src/main/java/fun/reactions/commands/nodes/LiteralNode.java create mode 100644 reactions/src/main/java/fun/reactions/commands/nodes/Node.java create mode 100644 reactions/src/main/java/fun/reactions/commands/nodes/StringArgNode.java diff --git a/pom.xml b/pom.xml index a14b28d6..6fbdfc2a 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,10 @@ glowingink https://repo.glowing.ink/releases/ + + minecraft-repo + https://libraries.minecraft.net/ + diff --git a/reactions/pom.xml b/reactions/pom.xml index 9ed1ebde..81c9d95f 100644 --- a/reactions/pom.xml +++ b/reactions/pom.xml @@ -37,7 +37,7 @@ org.quartz - fun.reactions.external.time + fun.reactions.external.quartz ink.glowing.math @@ -48,8 +48,8 @@ fun.reactions.external.text - org.spongepowered.configurate - fun.reactions.external.config + me.lucko.commodore + fun.reactions.external.commodore false @@ -94,6 +94,13 @@ compile true + + me.lucko + commodore + 2.2 + compile + true + net.milkbowl.vault diff --git a/reactions/src/main/java/fun/reactions/ReActionsPlugin.java b/reactions/src/main/java/fun/reactions/ReActionsPlugin.java index e2454953..5e0de5c7 100644 --- a/reactions/src/main/java/fun/reactions/ReActionsPlugin.java +++ b/reactions/src/main/java/fun/reactions/ReActionsPlugin.java @@ -22,7 +22,9 @@ package fun.reactions; -import fun.reactions.commands.Commander; +import fun.reactions.commands.impl.ActivatorSub; +import fun.reactions.commands.impl.CreateSub; +import fun.reactions.commands.nodes.StringArgNode; import fun.reactions.commands.user.UserCommandsManager; import fun.reactions.events.listeners.BukkitListener; import fun.reactions.events.listeners.GodModeListener; @@ -50,14 +52,23 @@ import fun.reactions.time.wait.WaitingManager; import fun.reactions.util.message.Messenger; import fun.reactions.util.message.Msg; +import me.lucko.commodore.Commodore; +import me.lucko.commodore.CommodoreProvider; import net.kyori.adventure.text.logger.slf4j.ComponentLogger; import org.bstats.bukkit.Metrics; import org.bstats.charts.SimplePie; +import org.bukkit.command.PluginCommand; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; +import java.util.Objects; + +import static fun.reactions.commands.nodes.CommandNode.command; +import static fun.reactions.commands.nodes.LiteralNode.literal; +import static fun.reactions.commands.nodes.StringArgNode.stringArg; + public class ReActionsPlugin extends JavaPlugin implements ReActions.Platform { private ActivitiesRegistry activitiesRegistry; private ActivatorTypesRegistry typesRegistry; @@ -121,7 +132,6 @@ public void onEnable() { getDataFolder().mkdirs(); - Commander.init(this); TimersManager.init(); CooldownManager.load(); if (!Cfg.playerSelfVarFile) variablesManager.load(); @@ -138,6 +148,7 @@ public void onEnable() { MoveListener.init(); GodModeListener.init(); Metrics metrics = new Metrics(this, 19363); + manageCommands(); metrics.addCustomChart(new SimplePie("placeholders_manager", () -> Cfg.modernPlaceholders ? "Modern" : "Legacy")); getServer().getScheduler().runTask(this, () -> { modulesRegistry.registerPluginDepended(); @@ -145,6 +156,36 @@ public void onEnable() { }); } + private void manageCommands() { + Commodore commodore = CommodoreProvider.getCommodore(this); + PluginCommand reactionsCommand = Objects.requireNonNull(getCommand("reactions")); + + command(commodore, reactionsCommand, (p, s) -> s.sendMessage("help"), + new CreateSub(this).asNode(), + new ActivatorSub(this).asNode(), + literal("location", (p, s) -> s.sendMessage("loc help"), + stringArg("name", StringArgNode.Type.WORD, (p, s) -> s.sendMessage("loc specific help"), + literal("info", (p, s) -> s.sendMessage("loc info")), + literal("delete", (p, s) -> s.sendMessage("loc delete")), + literal("tp", (p, s) -> s.sendMessage("loc tp")), + literal("move", (p, s) -> s.sendMessage("loc move")) + ) + ), + literal("list", (p, s) -> s.sendMessage("list help"), + literal("activators", (p, s) -> s.sendMessage("list activators"), + stringArg("group", StringArgNode.Type.WORD, (p, s) -> s.sendMessage("list activators " + p)) + ), + literal("locations", (p, s) -> s.sendMessage("list locations"), + stringArg("world", StringArgNode.Type.WORD, (p, s) -> s.sendMessage("list locations " + p)) + ), + literal("menus", (p, s) -> s.sendMessage("list menus")) + ), + literal("reload", (p, s) -> s.sendMessage("reload all"), + stringArg("options", StringArgNode.Type.WORD, (p, s) -> s.sendMessage("reload specific " + p)) + ) + ); + } + @Override public void onDisable() { getServer().getLogger().removeHandler(logHandler); diff --git a/reactions/src/main/java/fun/reactions/commands/Cmd.java b/reactions/src/main/java/fun/reactions/commands/Cmd.java deleted file mode 100644 index dc5cde36..00000000 --- a/reactions/src/main/java/fun/reactions/commands/Cmd.java +++ /dev/null @@ -1,69 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.util.message.Msg; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public abstract class Cmd { - - private String command; - private String[] subCommands; - private String permission; - private boolean allowConsole; - private Msg description; - private String shortDescription; - - - public Cmd() { - if (this.getClass().isAnnotationPresent(CmdDefine.class)) { - CmdDefine cd = this.getClass().getAnnotation(CmdDefine.class); - this.command = cd.command(); - this.subCommands = cd.subCommands(); - this.permission = cd.permission(); - this.allowConsole = cd.allowConsole(); - this.description = cd.description(); - this.shortDescription = cd.shortDescription(); - } - } - - public boolean canExecute(CommandSender sender) { - Player player = (sender instanceof Player) ? (Player) sender : null; - if (player == null) return this.allowConsole; - if (this.permission == null || this.permission.isEmpty()) return true; - return player.hasPermission(this.permission); - } - - public boolean checkParams(String[] params) { - if (this.subCommands == null) return true; - if (this.subCommands.length == 0) return true; - if (params.length < this.subCommands.length) return false; - for (int i = 0; i < this.subCommands.length; i++) { - if (!params[i].matches(this.subCommands[i])) return false; - } - return true; - } - - public boolean executeCommand(CommandSender sender, String[] params) { - if (!canExecute(sender)) return false; - if (!this.checkParams(params)) return false; - if (this.allowConsole) return execute(sender, params); - else return execute((Player) sender, params); - } - - public boolean execute(Player player, String[] params) { - Commander.getPlugin().getLogger().info("Command \"" + this.getCommand() + "\" executed but method \"public boolean execute(Player player, String [] params)\" was not overrided"); - return false; - } - - public boolean execute(CommandSender sender, String[] params) { - Commander.getPlugin().getLogger().info("Command \"" + this.getCommand() + "\" executed but method \"public boolean execute(CommandSender sender, String [] params)\" was not overrided"); - return false; - } - - public String getFullDescription() { - return this.description.getText(this.shortDescription); - - } - - public String getCommand() {return this.command;} -} diff --git a/reactions/src/main/java/fun/reactions/commands/CmdAdd.java b/reactions/src/main/java/fun/reactions/commands/CmdAdd.java deleted file mode 100644 index f533ee72..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdAdd.java +++ /dev/null @@ -1,100 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.ReActions; -import fun.reactions.model.activators.Activator; -import fun.reactions.model.activity.actions.Action; -import fun.reactions.model.activity.flags.Flag; -import fun.reactions.util.location.LocationUtils; -import fun.reactions.util.message.Msg; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CmdDefine(command = "reactions", description = Msg.CMD_ADD, permission = "reactions.config", - subCommands = {"add"}, allowConsole = true, - shortDescription = "&3/react add [f | ]") -public class CmdAdd extends Cmd { - - @Override - public boolean execute(CommandSender sender, String[] args) { - if (args.length == 1) return false; - Player player = (sender instanceof Player) ? (Player) sender : null; - String arg1 = args[1]; - String arg2 = args.length >= 3 ? args[2] : ""; - String arg3 = args.length >= 4 ? args[3] : ""; - StringBuilder arg4 = new StringBuilder(args.length >= 5 ? args[4] : ""); - if (args.length > 5) { - for (int i = 5; i < args.length; i++) - arg4.append(" ").append(args[i]); - arg4 = new StringBuilder(arg4.toString().trim()); - } - if (ReActions.getActivators().containsActivator(arg1)) { - String param = LocationUtils.parsePlaceholders(player, arg4.toString()); // используется в addActions - Activator act = ReActions.getActivators().getActivator(arg1); - switch (arg2) { - case "a": - case "action": - if (addAction(act, arg3, param)) { - Msg.CMD_ACTADDED.print(sender, arg3 + " (" + param + ")"); - break; - } else { - Msg.CMD_ACTNOTADDED.print(sender, arg3 + " (" + param + ")"); - return true; - } - case "r": - case "reaction": - if (addReaction(act, arg3, param)) { - Msg.CMD_REACTADDED.print(sender, arg3 + " (" + param + ")"); - break; - } else { - Msg.CMD_REACTNOTADDED.print(sender, arg3 + " (" + param + ")"); - return true; - } - case "f": - case "flag": - if (addFlag(act, arg3, param)) { - Msg.CMD_FLAGADDED.print(sender, arg3 + " (" + param + ")"); - break; - } else { - Msg.CMD_FLAGNOTADDED.print(sender, arg3 + " (" + param + ")"); - return true; - } - default: - Msg.CMD_UNKNOWNBUTTON.print(sender, arg2); - return true; - } - ReActions.getActivators().saveGroup(act.getLogic().getGroup()); - } else { - Msg.CMD_UNKNOWNADD.print(sender, 'c'); - } - return true; - } - - private boolean addAction(Activator activator, String act, String param) { - Action action = ReActions.getActivities().getAction(act); - if (action != null) { - activator.getLogic().addAction(action, param); - return true; - } - return false; - } - - private boolean addReaction(Activator activator, String act, String param) { - Action action = ReActions.getActivities().getAction(act); - if (action != null) { - activator.getLogic().addReaction(action, param); - return true; - } - return false; - } - - private boolean addFlag(Activator activator, String fl, String param) { - boolean invert = fl.startsWith("!"); - Flag flag = ReActions.getActivities().getFlag(invert ? fl.substring(1) : fl); - if (flag != null) { - activator.getLogic().addFlag(flag, param, invert); - return true; - } - return false; - } - -} diff --git a/reactions/src/main/java/fun/reactions/commands/CmdCheck.java b/reactions/src/main/java/fun/reactions/commands/CmdCheck.java deleted file mode 100644 index bdcc1996..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdCheck.java +++ /dev/null @@ -1,46 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.ReActions; -import fun.reactions.model.activators.Activator; -import fun.reactions.util.NumberUtils; -import fun.reactions.util.NumberUtils.Is; -import fun.reactions.util.message.Msg; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@CmdDefine(command = "reactions", description = Msg.CMD_CHECK, permission = "reactions.config", - subCommands = {"check"}, shortDescription = "&3/react check [radius]") -public class CmdCheck extends Cmd { - - @Override - public boolean execute(Player player, String[] args) { - int radius = args.length > 1 && NumberUtils.isNumber(args[1], Is.POSITIVE_NATURAL) ? Integer.parseInt(args[1]) : 8; - printActivatorsAround(player, radius); - return true; - } - - private void printActivatorsAround(Player player, int radius) { - int playerX = player.getLocation().getBlockX(); - int playerY = player.getLocation().getBlockY(); - int playerZ = player.getLocation().getBlockZ(); - World world = player.getWorld(); - Bukkit.getScheduler().runTaskAsynchronously(ReActions.getPlugin(), () -> { - List total = new ArrayList<>(); - for (int x = playerX - radius; x <= playerX + radius; x++) { - for (int y = playerY - radius; y <= playerY + radius; y++) { - for (int z = playerZ - radius; z <= playerZ + radius; z++) { - Collection found = ReActions.getActivators().search().byRawLocation(world, x, y, z); - if (found.isEmpty()) continue; - found.forEach(a -> total.add(a.toString())); - } - } - } - Bukkit.getScheduler().runTask(ReActions.getPlugin(), () -> Msg.printPage(player, total, Msg.MSG_CHECK, 1, 100, true)); - }); - } -} \ No newline at end of file diff --git a/reactions/src/main/java/fun/reactions/commands/CmdClear.java b/reactions/src/main/java/fun/reactions/commands/CmdClear.java deleted file mode 100644 index e53d0927..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdClear.java +++ /dev/null @@ -1,34 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.ReActions; -import fun.reactions.model.Logic; -import fun.reactions.model.activators.Activator; -import fun.reactions.util.message.Msg; -import org.bukkit.command.CommandSender; - -@CmdDefine(command = "reactions", description = Msg.CMD_CLEAR, permission = "reactions.config", - subCommands = {"clear"}, allowConsole = true, shortDescription = "&3/react clear [f|a|r]") -public class CmdClear extends Cmd { - @Override - public boolean execute(CommandSender sender, String[] args) { - String activatorId = args.length >= 2 ? args[1] : ""; - if (activatorId.isEmpty()) return false; - String arg2 = args.length >= 3 ? args[2] : ""; - Activator activator = ReActions.getActivators().getActivator(activatorId); - if (activator != null) { - Logic logic = activator.getLogic(); - if (arg2.equalsIgnoreCase("f") || arg2.equalsIgnoreCase("flag")) { - logic.clearFlags(); - Msg.MSG_CLEARFLAG.print(sender, activatorId); - } else if (arg2.equalsIgnoreCase("a") || arg2.equalsIgnoreCase("action")) { - logic.clearActions(); - Msg.MSG_CLEARACT.print(sender, activatorId); - } else if (arg2.equalsIgnoreCase("r") || arg2.equalsIgnoreCase("reaction")) { - logic.clearReactions(); - Msg.MSG_CLEARREACT.print(sender, activatorId); - } - ReActions.getActivators().saveGroup(logic.getGroup()); - } else return Msg.CMD_UNKNOWNBUTTON.print(sender, activatorId); - return false; - } -} diff --git a/reactions/src/main/java/fun/reactions/commands/CmdCopy.java b/reactions/src/main/java/fun/reactions/commands/CmdCopy.java deleted file mode 100644 index f15b7000..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdCopy.java +++ /dev/null @@ -1,72 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.ReActions; -import fun.reactions.model.activators.Activator; -import fun.reactions.model.activators.ActivatorsManager; -import fun.reactions.util.message.Msg; -import org.bukkit.command.CommandSender; - -import java.util.List; -import java.util.Locale; - -@CmdDefine(command = "reactions", description = Msg.CMD_COPY, permission = "reactions.config", - subCommands = {"copy"}, allowConsole = true, shortDescription = "&3/react copy [f|a|r] ") -public class CmdCopy extends Cmd { - @Override - public boolean execute(CommandSender sender, String[] args) { - if (args.length != 3 && args.length != 4) return false; - String id1 = args.length == 4 ? args[2] : args[1]; - String id2 = args.length == 4 ? args[3] : args[2]; - String copyMode = args.length == 3 ? "all" : args[1]; - ActivatorsManager activators = ReActions.getActivators(); - Activator actFrom = activators.getActivator(id1); - Activator actTo = activators.getActivator(id2); - boolean fail = actFrom == null || actTo == null; - switch (copyMode.toLowerCase(Locale.ROOT)) { - case "f": case "flag": case "flags": - if (fail) { - Msg.printMSG(sender, "msg_copyflagsfailed", 'c', '4', id1, id2); - } else { - copy(actFrom.getLogic().getFlags(), actTo.getLogic().getFlags()); - Msg.printMSG(sender, "msg_copyflags", id1, id2); - } - break; - - case "a": case "action": case "actions": - if (fail) { - Msg.printMSG(sender, "msg_copyactionsfailed", 'c', '4', id1, id2); - } else { - copy(actFrom.getLogic().getActions(), actTo.getLogic().getActions()); - Msg.printMSG(sender, "msg_copyactions", id1, id2); - } - break; - - case "r": case "reaction": case "reactions": - if (fail) { - Msg.printMSG(sender, "msg_copyreactionsfailed", 'c', '4', id1, id2); - } else { - copy(actFrom.getLogic().getReactions(), actTo.getLogic().getReactions()); - Msg.printMSG(sender, "msg_copyreactions", id1, id2); - } - break; - - default: - if (fail) { - Msg.printMSG(sender, "msg_copyallfailed", 'c', '4', id1, id2); - } else { - copy(actFrom.getLogic().getFlags(), actTo.getLogic().getFlags()); - copy(actFrom.getLogic().getActions(), actTo.getLogic().getActions()); - copy(actFrom.getLogic().getReactions(), actTo.getLogic().getReactions()); - Msg.printMSG(sender, "msg_copyall", id1, id2); - } - break; - } - if (!fail) activators.saveGroup(actTo.getLogic().getGroup()); - return true; - } - - private static void copy(List from, List to) { - to.clear(); - to.addAll(from); - } -} diff --git a/reactions/src/main/java/fun/reactions/commands/CmdCreate.java b/reactions/src/main/java/fun/reactions/commands/CmdCreate.java deleted file mode 100644 index 74e0f871..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdCreate.java +++ /dev/null @@ -1,96 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.ReActions; -import fun.reactions.holders.LocationHolder; -import fun.reactions.menu.InventoryMenu; -import fun.reactions.model.Logic; -import fun.reactions.model.activators.Activator; -import fun.reactions.model.activators.ActivatorsManager; -import fun.reactions.model.activators.type.ActivatorType; -import fun.reactions.time.timers.TimersManager; -import fun.reactions.util.NumberUtils; -import fun.reactions.util.NumberUtils.Is; -import fun.reactions.util.location.LocationUtils; -import fun.reactions.util.message.Msg; -import fun.reactions.util.parameter.BlockParameters; -import fun.reactions.util.parameter.Parameters; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.Locale; - -@CmdDefine(command = "reactions", description = Msg.CMD_CREATE, permission = "reactions.config", - subCommands = {"create"}, allowConsole = true, - shortDescription = "&3/react create [param]") -public class CmdCreate extends Cmd { - // TODO: Commands creation - // TODO: Cuboids creation - @Override - public boolean execute(CommandSender sender, String[] args) { - if (args.length < 3) return false; - Player player = (sender instanceof Player) ? (Player) sender : null; - String type = args[1].toLowerCase(Locale.ROOT); - String id = args[2]; - StringBuilder param = new StringBuilder(args.length >= 4 ? args[3] : ""); - if (args.length > 4) { - for (int i = 4; i < args.length; i++) - param.append(" ").append(args[i]); - param = new StringBuilder(param.toString().trim()); - } - switch (type) { - case "loc": - if (player == null) return false; - if (!LocationHolder.addTpLoc(id, player.getLocation())) return false; - LocationHolder.saveLocs(); - Msg.CMD_ADDTPADDED.print(sender, id); - return true; - case "timer": - if (param.length() == 0) return false; - return TimersManager.addTimer(sender, id, Parameters.fromString(param.toString()), true); - case "menu": - // TODO: Create menu from chest - if (param.length() == 0) return false; - String arg3 = args[3]; - if (InventoryMenu.add(id, - NumberUtils.isNumber(arg3, Is.NATURAL) ? Integer.parseInt(arg3) : 9, - (param.length() == 1) ? "" : param.substring(arg3.length()))) { - Msg.CMD_ADDMENUADDED.print(sender, id); - return true; - } - Msg.CMD_ADDMENUADDFAIL.print(sender, id); - return false; - default: - return addActivator(sender, type, id, param.toString()); - } - } - - private boolean addActivator(CommandSender sender, String typeStr, String name, String param) { - ActivatorsManager activators = ReActions.getActivators(); - ActivatorType type = ReActions.getActivatorTypes().get(typeStr); - if (type == null) return false; - Parameters params; - if (sender instanceof Player player) { - param = LocationUtils.parsePlaceholders(player, param); - if (type.isNeedBlock()) - params = new BlockParameters(param, player.getTargetBlock(null, 100)); - else - params = Parameters.fromString(param); - } else { - if (type.isNeedBlock()) return false; - params = Parameters.fromString(param); - } - Logic logic = new Logic(ReActions.getPlatform(), type.getName().toUpperCase(Locale.ROOT), name); - Activator activator = type.createActivator(logic, params); - if (activator == null || !activator.isValid()) { - Msg.CMD_NOTADDBADDEDSYNTAX.print(sender, name, type); - return true; - } - if (activators.addActivator(activator, true)) { - activators.saveGroup(activator.getLogic().getGroup()); - Msg.CMD_ADDBADDED.print(sender, activator.toString()); - } else { - Msg.CMD_NOTADDBADDED.print(sender, activator.toString()); - } - return true; - } -} diff --git a/reactions/src/main/java/fun/reactions/commands/CmdDebug.java b/reactions/src/main/java/fun/reactions/commands/CmdDebug.java deleted file mode 100644 index 0a8a7899..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdDebug.java +++ /dev/null @@ -1,25 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.util.message.Msg; -import fun.reactions.util.message.RaDebug; -import org.bukkit.entity.Player; - -@CmdDefine(command = "reactions", description = Msg.CMD_DEBUG, permission = "reactions.debug", - subCommands = {"debug", "off|true|false"}, shortDescription = "&3/react debug [true|false|off]") -public class CmdDebug extends Cmd { - @Override - public boolean execute(Player player, String[] args) { - String arg = args.length >= 2 ? args[1] : "off"; - if (arg.equalsIgnoreCase("false")) { - RaDebug.setPlayerDebug(player, false); - Msg.printMSG(player, "cmd_debugfalse"); - } else if (arg.equalsIgnoreCase("true")) { - RaDebug.setPlayerDebug(player, true); - Msg.printMSG(player, "cmd_debugtrue"); - } else { - RaDebug.offPlayerDebug(player); - Msg.printMSG(player, "cmd_debugoff"); - } - return true; - } -} diff --git a/reactions/src/main/java/fun/reactions/commands/CmdDefine.java b/reactions/src/main/java/fun/reactions/commands/CmdDefine.java deleted file mode 100644 index b7df06d2..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdDefine.java +++ /dev/null @@ -1,22 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.util.message.Msg; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -@Retention(RetentionPolicy.RUNTIME) -public @interface CmdDefine { - String command(); - - String[] subCommands(); - - String permission(); - - boolean allowConsole() default false; - - Msg description(); - - String shortDescription(); -} - diff --git a/reactions/src/main/java/fun/reactions/commands/CmdExec.java b/reactions/src/main/java/fun/reactions/commands/CmdExec.java deleted file mode 100644 index 13ee16df..00000000 --- a/reactions/src/main/java/fun/reactions/commands/CmdExec.java +++ /dev/null @@ -1,22 +0,0 @@ -package fun.reactions.commands; - -import fun.reactions.module.basic.ContextManager; -import fun.reactions.util.message.Msg; -import fun.reactions.util.parameter.Parameters; -import org.bukkit.command.CommandSender; - -@CmdDefine(command = "exec", description = Msg.CMD_EXEC, permission = "reactions.run", - subCommands = {}, allowConsole = true, - shortDescription = "&3/exec [player:] [delay: