0

Added boolean args

This commit is contained in:
NEMESIS13cz
2016-08-06 14:22:39 +02:00
parent d4388b9fd7
commit 4c49adc127
4 changed files with 47 additions and 3 deletions

View File

@@ -13,6 +13,7 @@ import java.util.logging.Level;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import com.nemez.cmdmgr.component.ArgumentComponent; import com.nemez.cmdmgr.component.ArgumentComponent;
import com.nemez.cmdmgr.component.BooleanComponent;
import com.nemez.cmdmgr.component.ByteComponent; import com.nemez.cmdmgr.component.ByteComponent;
import com.nemez.cmdmgr.component.ChainComponent; import com.nemez.cmdmgr.component.ChainComponent;
import com.nemez.cmdmgr.component.ConstantComponent; import com.nemez.cmdmgr.component.ConstantComponent;
@@ -353,6 +354,9 @@ public class CommandManager {
return new FloatComponent(); return new FloatComponent();
case "double": case "double":
return new DoubleComponent(); return new DoubleComponent();
case "bool":
case "boolean":
return new BooleanComponent();
} }
return null; return null;
} }

View File

@@ -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>";
}
}

View File

@@ -11,6 +11,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import com.nemez.cmdmgr.Command; import com.nemez.cmdmgr.Command;
import com.nemez.cmdmgr.CommandManager; import com.nemez.cmdmgr.CommandManager;
import com.nemez.cmdmgr.component.BooleanComponent;
import com.nemez.cmdmgr.component.ByteComponent; import com.nemez.cmdmgr.component.ByteComponent;
import com.nemez.cmdmgr.component.ConstantComponent; import com.nemez.cmdmgr.component.ConstantComponent;
import com.nemez.cmdmgr.component.DoubleComponent; import com.nemez.cmdmgr.component.DoubleComponent;
@@ -26,6 +27,7 @@ public class Executable implements CommandExecutor {
private ArrayList<ExecutableDefinition> commands; private ArrayList<ExecutableDefinition> commands;
private ArrayList<HelpPageCommand[]> help; private ArrayList<HelpPageCommand[]> help;
private String name; private String name;
private JavaPlugin plugin;
public Executable(String name, ArrayList<HelpPageCommand[]> help) { public Executable(String name, ArrayList<HelpPageCommand[]> help) {
this.help = help; this.help = help;
@@ -42,6 +44,7 @@ public class Executable implements CommandExecutor {
} }
} }
this.plugin = plugin;
plugin.getCommand(name).setExecutor(this); plugin.getCommand(name).setExecutor(this);
if (CommandManager.errors) { if (CommandManager.errors) {
@@ -116,6 +119,11 @@ public class Executable implements CommandExecutor {
paramName = comp7.argName; paramName = comp7.argName;
command.add(comp7); command.add(comp7);
break; break;
case "bool":
BooleanComponent comp8 = new BooleanComponent();
comp8.argName = type[0].substring(1);
paramName = comp8.argName;
command.add(comp8);
default: default:
return; return;
} }
@@ -170,6 +178,8 @@ public class Executable implements CommandExecutor {
}else if (comp instanceof StringComponent && params[i] == String.class) { }else if (comp instanceof StringComponent && params[i] == String.class) {
}else if (comp instanceof BooleanComponent && params[i] == boolean.class) {
}else{ }else{
plugin.getLogger().log(Level.WARNING, "Invalid method (" + methodArray[0] + "): Invalid method arguments"); plugin.getLogger().log(Level.WARNING, "Invalid method (" + methodArray[0] + "): Invalid method arguments");
CommandManager.errors = true; CommandManager.errors = true;
@@ -229,7 +239,7 @@ public class Executable implements CommandExecutor {
} catch (Exception e) { } catch (Exception e) {
printPage(sender, 1); printPage(sender, 1);
} }
}else if (!def.invoke(arguments, sender)) { }else if (!def.invoke(arguments, sender, plugin)) {
printPage(sender, 1); printPage(sender, 1);
} }
} }

View File

@@ -2,8 +2,10 @@ package com.nemez.cmdmgr.util;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.logging.Level;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
import com.nemez.cmdmgr.component.ArgumentComponent; import com.nemez.cmdmgr.component.ArgumentComponent;
import com.nemez.cmdmgr.component.ICommandComponent; import com.nemez.cmdmgr.component.ICommandComponent;
@@ -55,7 +57,7 @@ public class ExecutableDefinition {
return components.size(); return components.size();
} }
public boolean invoke(ArrayList<Object> args, CommandSender sender) { public boolean invoke(ArrayList<Object> args, CommandSender sender, JavaPlugin plugin) {
if (target == null) { if (target == null) {
return false; return false;
} }
@@ -72,7 +74,7 @@ public class ExecutableDefinition {
return (boolean) target.invoke(methodContainer, arguments); return (boolean) target.invoke(methodContainer, arguments);
} }
} catch (Exception e) { } catch (Exception e) {
System.err.println("M8 you're missing a function..."); plugin.getLogger().log(Level.WARNING, "Runtime Error: invalid method");
e.printStackTrace(); e.printStackTrace();
return true; return true;
} }