diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2021-08-13 16:49:36 -0400 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2021-08-13 16:49:36 -0400 |
commit | 173d4b0e6a1eca9d088b0bcf8b81c82494d658d6 (patch) | |
tree | 0ea188aae579b99336b0df331422868cc9279e22 /src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java | |
download | kenshinshideandseek-173d4b0e6a1eca9d088b0bcf8b81c82494d658d6.tar.gz kenshinshideandseek-173d4b0e6a1eca9d088b0bcf8b81c82494d658d6.tar.bz2 kenshinshideandseek-173d4b0e6a1eca9d088b0bcf8b81c82494d658d6.zip |
1.0.0
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java new file mode 100644 index 0000000..b50247a --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java @@ -0,0 +1,60 @@ +package net.tylermurphy.hideAndSeek.manager; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import net.tylermurphy.hideAndSeek.ICommand; +import net.tylermurphy.hideAndSeek.commands.*; + +import static net.tylermurphy.hideAndSeek.Store.*; + +public class CommandManager implements CommandExecutor { + + public static Map<String,ICommand> COMMAND_REGISTER = new LinkedHashMap<String,ICommand>(); + + private static void registerCommand(ICommand command) { + if(!COMMAND_REGISTER.containsKey(command.getLabel())) { + COMMAND_REGISTER.put(command.getLabel().toLowerCase(), command); + } + } + + public static void registerCommands() { + registerCommand(new About()); + registerCommand(new Help()); + registerCommand(new Start()); + registerCommand(new Stop()); + registerCommand(new SetSeeker()); + registerCommand(new SetSpawnLocation()); + registerCommand(new SetBorder()); + registerCommand(new EnableBorder()); + } + + public static boolean handleCommand(CommandSender sender, Command cmd, String label, String[] args) { + if(sender instanceof Player == false) { + sender.sendMessage(errorPrefix + "This command can only be run as a player."); + } else if(args.length < 1) { + COMMAND_REGISTER.get("about").execute(sender, new String[0]); + } else if(!COMMAND_REGISTER.containsKey(args[0].toLowerCase())) { + COMMAND_REGISTER.get("about").execute(sender, Arrays.copyOfRange(args, 1, args.length)); + } else { + try { + COMMAND_REGISTER.get(args[0].toLowerCase()).execute(sender,Arrays.copyOfRange(args, 1, args.length)); + } catch (Exception e) { + sender.sendMessage(errorPrefix + "An error has occured."); + e.printStackTrace(); + } + } + return true; + } + + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + return CommandManager.handleCommand(sender, command, label, args); + } + +} |