From 4c49adc12740826171d2ad90493ae1bc44a6d48f Mon Sep 17 00:00:00 2001 From: NEMESIS13cz Date: Sat, 6 Aug 2016 14:22:39 +0200 Subject: Added boolean args --- com/nemez/cmdmgr/CommandManager.java | 4 ++++ com/nemez/cmdmgr/component/BooleanComponent.java | 28 ++++++++++++++++++++++++ com/nemez/cmdmgr/util/Executable.java | 12 +++++++++- com/nemez/cmdmgr/util/ExecutableDefinition.java | 6 +++-- 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 com/nemez/cmdmgr/component/BooleanComponent.java diff --git a/com/nemez/cmdmgr/CommandManager.java b/com/nemez/cmdmgr/CommandManager.java index 913be59..e761aab 100644 --- a/com/nemez/cmdmgr/CommandManager.java +++ b/com/nemez/cmdmgr/CommandManager.java @@ -13,6 +13,7 @@ import java.util.logging.Level; import org.bukkit.plugin.java.JavaPlugin; import com.nemez.cmdmgr.component.ArgumentComponent; +import com.nemez.cmdmgr.component.BooleanComponent; import com.nemez.cmdmgr.component.ByteComponent; import com.nemez.cmdmgr.component.ChainComponent; import com.nemez.cmdmgr.component.ConstantComponent; @@ -353,6 +354,9 @@ public class CommandManager { return new FloatComponent(); case "double": return new DoubleComponent(); + case "bool": + case "boolean": + return new BooleanComponent(); } return null; } diff --git a/com/nemez/cmdmgr/component/BooleanComponent.java b/com/nemez/cmdmgr/component/BooleanComponent.java new file mode 100644 index 0000000..ab2088a --- /dev/null +++ b/com/nemez/cmdmgr/component/BooleanComponent.java @@ -0,0 +1,28 @@ +package com.nemez.cmdmgr.component; + +public class BooleanComponent extends ArgumentComponent { + + @Override + public Object get(String input) { + try { + return Boolean.parseBoolean(input); + } catch (NumberFormatException e) { + return null; + } + } + + @Override + public boolean valid(String input) { + try { + Boolean.parseBoolean(input); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + @Override + public String getComponentInfo() { + return "<" + argName + ":bool>"; + } +} diff --git a/com/nemez/cmdmgr/util/Executable.java b/com/nemez/cmdmgr/util/Executable.java index 3ee0dcb..df396fc 100644 --- a/com/nemez/cmdmgr/util/Executable.java +++ b/com/nemez/cmdmgr/util/Executable.java @@ -11,6 +11,7 @@ import org.bukkit.plugin.java.JavaPlugin; import com.nemez.cmdmgr.Command; import com.nemez.cmdmgr.CommandManager; +import com.nemez.cmdmgr.component.BooleanComponent; import com.nemez.cmdmgr.component.ByteComponent; import com.nemez.cmdmgr.component.ConstantComponent; import com.nemez.cmdmgr.component.DoubleComponent; @@ -26,6 +27,7 @@ public class Executable implements CommandExecutor { private ArrayList commands; private ArrayList help; private String name; + private JavaPlugin plugin; public Executable(String name, ArrayList help) { this.help = help; @@ -42,6 +44,7 @@ public class Executable implements CommandExecutor { } } + this.plugin = plugin; plugin.getCommand(name).setExecutor(this); if (CommandManager.errors) { @@ -116,6 +119,11 @@ public class Executable implements CommandExecutor { paramName = comp7.argName; command.add(comp7); break; + case "bool": + BooleanComponent comp8 = new BooleanComponent(); + comp8.argName = type[0].substring(1); + paramName = comp8.argName; + command.add(comp8); default: return; } @@ -170,6 +178,8 @@ public class Executable implements CommandExecutor { }else if (comp instanceof StringComponent && params[i] == String.class) { + }else if (comp instanceof BooleanComponent && params[i] == boolean.class) { + }else{ plugin.getLogger().log(Level.WARNING, "Invalid method (" + methodArray[0] + "): Invalid method arguments"); CommandManager.errors = true; @@ -229,7 +239,7 @@ public class Executable implements CommandExecutor { } catch (Exception e) { printPage(sender, 1); } - }else if (!def.invoke(arguments, sender)) { + }else if (!def.invoke(arguments, sender, plugin)) { printPage(sender, 1); } } diff --git a/com/nemez/cmdmgr/util/ExecutableDefinition.java b/com/nemez/cmdmgr/util/ExecutableDefinition.java index f04b65a..71aacbf 100644 --- a/com/nemez/cmdmgr/util/ExecutableDefinition.java +++ b/com/nemez/cmdmgr/util/ExecutableDefinition.java @@ -2,8 +2,10 @@ package com.nemez.cmdmgr.util; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.logging.Level; import org.bukkit.command.CommandSender; +import org.bukkit.plugin.java.JavaPlugin; import com.nemez.cmdmgr.component.ArgumentComponent; import com.nemez.cmdmgr.component.ICommandComponent; @@ -55,7 +57,7 @@ public class ExecutableDefinition { return components.size(); } - public boolean invoke(ArrayList args, CommandSender sender) { + public boolean invoke(ArrayList args, CommandSender sender, JavaPlugin plugin) { if (target == null) { return false; } @@ -72,7 +74,7 @@ public class ExecutableDefinition { return (boolean) target.invoke(methodContainer, arguments); } } catch (Exception e) { - System.err.println("M8 you're missing a function..."); + plugin.getLogger().log(Level.WARNING, "Runtime Error: invalid method"); e.printStackTrace(); return true; } -- cgit v1.2.3