summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/nemez/cmdmgr/Command.java18
-rw-r--r--src/main/java/com/nemez/cmdmgr/CommandManager.java553
-rw-r--r--src/main/java/com/nemez/cmdmgr/EmptyCommand.java14
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/ArgumentComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/BooleanComponent.java10
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/ByteComponent.java6
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/ChainComponent.java30
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/ConstantComponent.java6
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/DoubleComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/EmptyComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/FloatComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/ICommandComponent.java3
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/IntegerComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/LongComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/OptionalComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/ShortComponent.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/component/StringComponent.java4
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java29
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/BranchStack.java12
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/Executable.java324
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/ExecutableDefinition.java72
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/HelpPageCommand.java4
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/Property.java2
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/Type.java28
24 files changed, 552 insertions, 579 deletions
diff --git a/src/main/java/com/nemez/cmdmgr/Command.java b/src/main/java/com/nemez/cmdmgr/Command.java
index f9eaf49..2c9bba1 100644
--- a/src/main/java/com/nemez/cmdmgr/Command.java
+++ b/src/main/java/com/nemez/cmdmgr/Command.java
@@ -5,16 +5,14 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-@Target(ElementType.METHOD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Command
-{
- enum AsyncType
- {
- NEVER, ALWAYS;
- }
-
+@Target (ElementType.METHOD)
+@Retention (RetentionPolicy.RUNTIME)
+public @interface Command {
String hook();
-
+
AsyncType async() default AsyncType.NEVER;
+
+ enum AsyncType {
+ NEVER, ALWAYS;
+ }
}
diff --git a/src/main/java/com/nemez/cmdmgr/CommandManager.java b/src/main/java/com/nemez/cmdmgr/CommandManager.java
index d298ea1..a455a7b 100644
--- a/src/main/java/com/nemez/cmdmgr/CommandManager.java
+++ b/src/main/java/com/nemez/cmdmgr/CommandManager.java
@@ -1,11 +1,13 @@
//@noformat
package com.nemez.cmdmgr;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
+import com.nemez.cmdmgr.component.*;
+import com.nemez.cmdmgr.util.*;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandMap;
+import org.bukkit.plugin.java.JavaPlugin;
+
+import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -15,81 +17,50 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Level;
-import org.bukkit.Bukkit;
-import org.bukkit.command.CommandMap;
-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;
-import com.nemez.cmdmgr.component.DoubleComponent;
-import com.nemez.cmdmgr.component.EmptyComponent;
-import com.nemez.cmdmgr.component.FloatComponent;
-import com.nemez.cmdmgr.component.ICommandComponent;
-import com.nemez.cmdmgr.component.IntegerComponent;
-import com.nemez.cmdmgr.component.LongComponent;
-import com.nemez.cmdmgr.component.OptionalComponent;
-import com.nemez.cmdmgr.component.ShortComponent;
-import com.nemez.cmdmgr.component.StringComponent;
-import com.nemez.cmdmgr.util.BranchStack;
-import com.nemez.cmdmgr.util.Executable;
-import com.nemez.cmdmgr.util.HelpPageCommand;
-import com.nemez.cmdmgr.util.Property;
-import com.nemez.cmdmgr.util.Type;
-
/**
- * Example command.cmd
- *
- * command home:
- * set [string:name]:
- * run home_set name
- * help Set a new home
- * perm home.set
- * del [string:name]:
- * run home_del name
- * help Delete home\n&CCannot be undone!
- * perm home.del
- * list:
- * run home_list
- * help Show all homes
- * perm home.list
- * [string:name]:
- * run home_tp name
- * help Teleport to specified home
- * perm home.tp
+ * Example command.cmd
+ * <p>
+ * command home:
+ * set [string:name]:
+ * run home_set name
+ * help Set a new home
+ * perm home.set
+ * del [string:name]:
+ * run home_del name
+ * help Delete home\n&CCannot be undone!
+ * perm home.del
+ * list:
+ * run home_list
+ * help Show all homes
+ * perm home.list
+ * [string:name]:
+ * run home_tp name
+ * help Teleport to specified home
+ * perm home.tp
+ * <p>
+ * Generated in-game command structure:
+ * (will only show commands the user has permission to execute)
+ * <p>
+ * /home set <name>
+ * /home del <name>
+ * /home list
+ * /home <name>
+ * /home help
+ * <p>
+ * Java code:
*
- * Generated in-game command structure:
- * (will only show commands the user has permission to execute)
- *
- * /home set <name>
- * /home del <name>
- * /home list
- * /home <name>
- * /home help
- *
- * Java code:
- *
- * @Command(hook="home_set")
- * public void executeHomeSet(String name) {
- * ...
- * }
- *
- * @Command(hook="home_del")
- * public void executeHomeDelete(String name) {
- * ...
- * }
- *
- * @Command(hook="home_list")
- * public void executeHomeList() {
- * ...
- * }
- *
- * @Command(hook="home_tp")
- * public void executeHomeTeleport(String name) {
- * ...
- * }
+ * @Command(hook="home_set") public void executeHomeSet(String name) {
+ * ...
+ * }
+ * @Command(hook="home_del") public void executeHomeDelete(String name) {
+ * ...
+ * }
+ * @Command(hook="home_list") public void executeHomeList() {
+ * ...
+ * }
+ * @Command(hook="home_tp") public void executeHomeTeleport(String name) {
+ * ...
+ * }
*/
public class CommandManager {
@@ -97,27 +68,28 @@ public class CommandManager {
/* Debugging toggle to generate help pages with types, e.g: str, i8, i32, fp64, etc. */
public static boolean debugHelpMenu = false;
/* Internal boolean to keep track of errors during resolving */
- public static boolean errors = false;
+ public static boolean errors = false;
/* Switches for color and formatting in the built-in help message and pagination text */
public static String helpDescriptionFormatting = "&b";
- public static String helpUsageFormatting = "&6";
- public static String helpPageHeaderFormatting = "&a";
+ public static String helpUsageFormatting = "&6";
+ public static String helpPageHeaderFormatting = "&a";
public static String helpInvalidPageFormatting = "&c";
- public static String noPermissionFormatting = "&c";
- public static String notAllowedFormatting = "&c";
-
+ public static String noPermissionFormatting = "&c";
+ public static String notAllowedFormatting = "&c";
+
/* List of all commands that can be invoked async */
- public static ArrayList<Executable> asyncExecutables = new ArrayList<Executable>();
- public static HashMap<Object, ArrayList<String>> commands = new HashMap<Object, ArrayList<String>>();
+ public static ArrayList<Executable> asyncExecutables = new ArrayList<Executable>();
+ public static HashMap<Object, ArrayList<String>> commands = new HashMap<Object, ArrayList<String>>();
/* */
-
+
/**
* Registers a command from a String of source code
- *
- * @param cmdSourceCode source code
+ *
+ * @param cmdSourceCode source code
* @param commandHandler instance of a class where your java functions are located
- * @param plugin your plugin class
+ * @param plugin your plugin class
+ *
* @return success - if command was processed and registered successfully
*/
public static boolean registerCommand(String cmdSourceCode, Object commandHandler, JavaPlugin plugin) {
@@ -125,7 +97,7 @@ public class CommandManager {
return false;
}
/* get the class definition of the 'commandHandler' and get its functions */
- Method[] methods = commandHandler.getClass().getMethods();
+ Method[] methods = commandHandler.getClass().getMethods();
ArrayList<Method> finalMethods = new ArrayList<Method>();
/* extract all the functions annotated with @Command that are not static */
@@ -136,18 +108,19 @@ public class CommandManager {
}
return parse(cmdSourceCode, finalMethods, plugin, commandHandler);
}
-
+
/**
* Registers a command from a source File
- *
- * @param sourceFile file containing source code
+ *
+ * @param sourceFile file containing source code
* @param commandHandler instance of a class where your java functions are located
- * @param plugin your plugin class
+ * @param plugin your plugin class
+ *
* @return success - if command was processed and registered successfully
*/
public static boolean registerCommand(File sourceFile, Object commandHandler, JavaPlugin plugin) {
StringBuilder src = new StringBuilder();
- String buf = "";
+ String buf = "";
try {
BufferedReader reader = new BufferedReader(new FileReader(sourceFile));
while ((buf = reader.readLine()) != null) {
@@ -163,18 +136,19 @@ public class CommandManager {
}
return registerCommand(src.toString(), commandHandler, plugin);
}
-
+
/**
* Registers a command from an InputStream
- *
- * @param sourceStream input stream containing source code
+ *
+ * @param sourceStream input stream containing source code
* @param commandHandler instance of a class where your java functions are located
- * @param plugin your plugin class
+ * @param plugin your plugin class
+ *
* @return success - if command was processed and registered successfully
*/
public static boolean registerCommand(InputStream sourceStream, Object commandHandler, JavaPlugin plugin) {
StringBuilder src = new StringBuilder();
- String buf = "";
+ String buf = "";
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(sourceStream));
while ((buf = reader.readLine()) != null) {
@@ -189,16 +163,16 @@ public class CommandManager {
}
return registerCommand(src.toString(), commandHandler, plugin);
}
-
+
/**
* Unregisters all commands from a source File
- *
+ *
* @param sourceFile file containing source code
- * @param plugin your plugin class
+ * @param plugin your plugin class
*/
public static void unregisterCommands(File sourceFile, JavaPlugin plugin) {
StringBuilder src = new StringBuilder();
- String buf = "";
+ String buf = "";
try {
BufferedReader reader = new BufferedReader(new FileReader(sourceFile));
while ((buf = reader.readLine()) != null) {
@@ -212,33 +186,10 @@ public class CommandManager {
}
unregisterCommands(src.toString());
}
-
- /**
- * Unregisters all commands from an InputStream
- *
- * @param sourceStream input stream containing source code
- * @param plugin your plugin class
- */
- public static void unregisterCommands(InputStream sourceStream, JavaPlugin plugin) {
- StringBuilder src = new StringBuilder();
- String buf = "";
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(sourceStream));
- while ((buf = reader.readLine()) != null) {
- src.append(buf + '\n');
- }
- reader.close();
- } catch (Exception e) {
- plugin.getLogger().log(Level.WARNING, "Error while loading command file. (" + sourceStream.toString() + ")");
- plugin.getLogger().log(Level.WARNING, e.getCause().toString());
- return;
- }
- unregisterCommands(src.toString());
- }
-
+
/**
* Unregisters all commands from a String of source code
- *
+ *
* @param cmdSourceCode source code
*/
public static void unregisterCommands(String cmdSourceCode) {
@@ -247,15 +198,15 @@ public class CommandManager {
}
parseUnregister(cmdSourceCode);
}
-
+
public static void parseUnregister(String src) {
- char[] chars = src.toCharArray();
- StringBuilder buffer = new StringBuilder();
- int nesting = 0;
-
+ char[] chars = src.toCharArray();
+ StringBuilder buffer = new StringBuilder();
+ int nesting = 0;
+
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
-
+
if (c == ';') {
if (nesting == 1) {
String[] alias = buffer.toString().trim().split("\\ ");
@@ -264,7 +215,7 @@ public class CommandManager {
}
}
buffer = new StringBuilder();
- }else if (c == '{') {
+ } else if (c == '{') {
if (nesting == 0) {
String[] command = buffer.toString().trim().split("\\ ");
if (command.length == 2 && command[0].equals("command")) {
@@ -275,10 +226,10 @@ public class CommandManager {
nesting++;
}
buffer = new StringBuilder();
- }else if (c == '}') {
+ } else if (c == '}') {
nesting--;
buffer = new StringBuilder();
- }else {
+ } else {
buffer.append(c);
}
}
@@ -286,7 +237,7 @@ public class CommandManager {
/**
* Unregisters a command specified by its name or alias
- *
+ *
* @param name name or alias of command
*/
public static void unregisterCommand(String name) {
@@ -294,10 +245,10 @@ public class CommandManager {
try {
final Field mapField = Bukkit.getServer().getClass().getDeclaredField("commandMap");
mapField.setAccessible(true);
- CommandMap map = (CommandMap) mapField.get(Bukkit.getServer());
+ CommandMap map = (CommandMap) mapField.get(Bukkit.getServer());
final Field knownCommandsField = mapField.getClass().getSuperclass().getDeclaredField("knownCommands");
knownCommandsField.setAccessible(true);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings ("unchecked")
Map<String, Command> knownCommands = (Map<String, Command>) knownCommandsField.get(map);
knownCommands.remove(name);
map.register(name, empty);
@@ -305,19 +256,40 @@ public class CommandManager {
e.printStackTrace();
}
}
-
- public static void unregisterAll(String[] commands)
- {
- for (String name : commands)
- {
+
+ /**
+ * Unregisters all commands from an InputStream
+ *
+ * @param sourceStream input stream containing source code
+ * @param plugin your plugin class
+ */
+ public static void unregisterCommands(InputStream sourceStream, JavaPlugin plugin) {
+ StringBuilder src = new StringBuilder();
+ String buf = "";
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(sourceStream));
+ while ((buf = reader.readLine()) != null) {
+ src.append(buf + '\n');
+ }
+ reader.close();
+ } catch (Exception e) {
+ plugin.getLogger().log(Level.WARNING, "Error while loading command file. (" + sourceStream.toString() + ")");
+ plugin.getLogger().log(Level.WARNING, e.getCause().toString());
+ return;
+ }
+ unregisterCommands(src.toString());
+ }
+
+ public static void unregisterAll(String[] commands) {
+ for (String name : commands) {
EmptyCommand emptyCommand = new EmptyCommand(name);
try {
final Field cmdMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
cmdMap.setAccessible(true);
- CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
+ CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
final Field knownCommandsField = map.getClass().getSuperclass().getDeclaredField("knownCommands");
knownCommandsField.setAccessible(true);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings ("unchecked")
Map<String, Command> knownCommands = (Map<String, Command>) knownCommandsField.get(map);
knownCommands.remove(name);
map.register(name, emptyCommand);
@@ -326,26 +298,26 @@ public class CommandManager {
}
}
}
-
+
public static void unregisterAllWithFallback(String fallback) {
try {
final Field cmdMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
cmdMap.setAccessible(true);
- CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
+ CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
final Field knownCommandsField = map.getClass().getSuperclass().getDeclaredField("knownCommands");
knownCommandsField.setAccessible(true);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings ("unchecked")
Map<String, org.bukkit.command.Command> knownCommands = (Map<String, org.bukkit.command.Command>) knownCommandsField.get(map);
-
+
fallback = fallback.toLowerCase();
-
+
List<String> toRemove = new ArrayList<>();
- for (String key: knownCommands.keySet()) {
- org.bukkit.command.Command value = knownCommands.get(key);
- if ((value instanceof Executable) && ((Executable)value).getMethodContainerName().equals(fallback)) {
- toRemove.add(key);
- value.unregister(map);
+ for (String key : knownCommands.keySet()) {
+ org.bukkit.command.Command value = knownCommands.get(key);
+ if ((value instanceof Executable) && ((Executable) value).getMethodContainerName().equals(fallback)) {
+ toRemove.add(key);
+ value.unregister(map);
}
}
for (String key : toRemove) {
@@ -353,20 +325,21 @@ public class CommandManager {
knownCommands.remove(key);
map.register(key, emptyCommand);
}
-
-
+
+
} catch (Exception e) {
e.printStackTrace();
}
}
-
+
/**
* Parses the source code into an abstract command syntax
- *
- * @param source String containing command source code
- * @param methods ArrayList of methods gathered from the plugin's handler class
- * @param plugin plugin to register commands as
+ *
+ * @param source String containing command source code
+ * @param methods ArrayList of methods gathered from the plugin's handler class
+ * @param plugin plugin to register commands as
* @param methodContainer class containing method handles
+ *
* @return success - if command parsing and registration was successful
*/
private static boolean parse(String source, ArrayList<Method> methods, JavaPlugin plugin, Object methodContainer) {
@@ -398,7 +371,7 @@ public class CommandManager {
int line = 0;
// buffer for '...' and '"' properties of string types
StringBuilder sideBuffer = new StringBuilder();
-
+
/* iterate over all characters */
for (int i = 0; i < chars.length; i++) {
/* get current char */
@@ -421,7 +394,7 @@ public class CommandManager {
plugin.getLogger().log(Level.WARNING, "Syntax error at line " + line + ": Already defining a type.");
errors = true;
return false;
- }else{
+ } else {
/* okay, resolve what type this is */
currentArgComp = resolveComponentType(buffer.toString());
buffer = new StringBuilder();
@@ -432,18 +405,18 @@ public class CommandManager {
return false;
}
}
- }else{
+ } else {
/* not inside a type, probably just a string in the help property */
buffer.append(':');
}
- /* current is a semicolon, we just finished a property line */
- /* help this is an example; */
- /* ^ */
- }else if (current == ';') {
+ /* current is a semicolon, we just finished a property line */
+ /* help this is an example; */
+ /* ^ */
+ } else if (current == ';') {
/* semicolon is backslash escaped, treat it as a normal character */
if (previous == '\\') {
buffer.append(';');
- }else{
+ } else {
/* there is nothing on the stack, we are defining properties of 'nothing', throw an error */
if (stack.get() == null) {
plugin.getLogger().log(Level.WARNING, "Syntax error at line " + line + ": Not in code section.");
@@ -454,25 +427,27 @@ public class CommandManager {
if (gettingAlias) {
stack.get().aliases.add(buffer.toString());
gettingAlias = false;
- }else if (currentProp == Property.HELP) {
+ } else if (currentProp == Property.HELP) {
stack.get().help = buffer.toString();
- /* same as above, except its the function to run */
- }else if (currentProp == Property.EXECUTE) {
+ /* same as above, except its the function to run */
+ } else if (currentProp == Property.EXECUTE) {
stack.get().execute = buffer.toString();
- /* same again, but with the permission, and as that should not contain spaces, trim it */
- }else if (currentProp == Property.PERMISSION) {
+ /* same again, but with the permission, and as that should not contain spaces, trim it */
+ } else if (currentProp == Property.PERMISSION) {
stack.get().permission = buffer.toString().trim();
- /* execution type, check if its a valid one and set it */
- }else if (currentProp == Property.TYPE) {
+ /* execution type, check if its a valid one and set it */
+ } else if (currentProp == Property.TYPE) {
stack.get().type = resolveExecutionType(buffer.toString().trim());
/* not a valid type, throw an error */
if (stack.get().type == null) {
- plugin.getLogger().log(Level.WARNING, "Attribute error at line " + line + ": Invalid attribute value. (" + buffer.toString().trim() + ").");
+ plugin
+ .getLogger()
+ .log(Level.WARNING, "Attribute error at line " + line + ": Invalid attribute value. (" + buffer.toString().trim() + ").");
errors = true;
return false;
}
- /* currently not defining anything, throw an error */
- }else{
+ /* currently not defining anything, throw an error */
+ } else {
plugin.getLogger().log(Level.WARNING, "Attribute error at line " + line + ": Invalid attribute type.");
errors = true;
return false;
@@ -481,8 +456,8 @@ public class CommandManager {
currentProp = Property.NONE;
buffer = new StringBuilder();
}
- /* current is an opening curly bracket, we just entered a sub-command property definition */
- }else if (current == '{') {
+ /* current is an opening curly bracket, we just entered a sub-command property definition */
+ } else if (current == '{') {
/* increment bracket counter */
bracketCounter++;
/* are we getting the name of the command? */
@@ -490,14 +465,14 @@ public class CommandManager {
/* set the command name to what we just gathered (trimmed) */
cmdName = buffer.toString().trim();
gettingName = false;
- }else{
+ } else {
/* are we currently in an argument? */
if (currentArgComp == null) {
/* no, but if there is something that looks like text, put it into the current subcommand as a constant */
if (buffer.toString().trim().length() > 0) {
currentChain.append(new ConstantComponent(buffer.toString().trim()));
}
- }else{
+ } else {
/* yes, put it into the current subcommand */
/* could happen when there are no 'spaces' */
/* [str:example]{ */
@@ -518,8 +493,8 @@ public class CommandManager {
stack.push(currentChain);
/* reset our current sub-command */
currentChain = new ChainComponent();
- /* current is a closing curly bracket, we just finished a property section */
- }else if (current == '}') {
+ /* current is a closing curly bracket, we just finished a property section */
+ } else if (current == '}') {
/* decrement the bracket counter */
bracketCounter--;
/* pop whatever was on the stack */
@@ -558,42 +533,42 @@ public class CommandManager {
continue;
}
currentChain = new ChainComponent();
- /* current is a space, we just finished defining which property we are about to set */
- }else if (current == ' ') {
+ /* current is a space, we just finished defining which property we are about to set */
+ } else if (current == ' ') {
/* we are already defining a property, append it as text */
if (currentProp != Property.NONE) {
buffer.append(' ');
- }else{
+ } else {
/* we got the 'command' definition, the name of the command will follow */
if (buffer.toString().equals("command") && !gettingName && !gettingAlias && cmdName == null) {
gettingName = true;
- /* we got other properties, their values will follow */
- }else if (buffer.toString().equals("alias") && !gettingAlias && !gettingName) {
+ /* we got other properties, their values will follow */
+ } else if (buffer.toString().equals("alias") && !gettingAlias && !gettingName) {
gettingAlias = true;
- }else if (buffer.toString().equals("help")) {
+ } else if (buffer.toString().equals("help")) {
currentProp = Property.HELP;
- }else if (buffer.toString().equals("run")) {
+ } else if (buffer.toString().equals("run")) {
currentProp = Property.EXECUTE;
- }else if (buffer.toString().equals("perm")) {
+ } else if (buffer.toString().equals("perm")) {
currentProp = Property.PERMISSION;
- }else if (buffer.toString().equals("type")) {
+ } else if (buffer.toString().equals("type")) {
currentProp = Property.TYPE;
- /* we didn't get any of those, we are probably in the middle of a sub-command definition */
- /* example [int:value] { */
- /* ^ ^ */
- }else{
+ /* we didn't get any of those, we are probably in the middle of a sub-command definition */
+ /* example [int:value] { */
+ /* ^ ^ */
+ } else {
/* we are getting the name and we didn't set it yet, set it */
if (gettingName && cmdName == null) {
cmdName = buffer.toString().trim();
gettingName = false;
- }else{
+ } else {
/* we aren't defining a type, put the current text into the sub-command as a constant */
if (currentArgComp == null) {
if (buffer.toString().trim().length() > 0) {
currentChain.append(new ConstantComponent(buffer.toString().trim()));
}
/* we are defining a command, put it into the sub-command */
- }else{
+ } else {
currentChain.append(currentArgComp);
currentArgComp = null;
}
@@ -602,41 +577,41 @@ public class CommandManager {
/* reset the buffer */
buffer = new StringBuilder();
}
- /* current is an opening square bracket, we just started a type definition */
- }else if (current == '[') {
+ /* current is an opening square bracket, we just started a type definition */
+ } else if (current == '[') {
/* we are defining a property, treat it as text */
if (currentProp != Property.NONE) {
buffer.append('[');
- /* we are already inside of a type definition, throw an error */
- }else if (insideType) {
+ /* we are already inside of a type definition, throw an error */
+ } else if (insideType) {
plugin.getLogger().log(Level.WARNING, "Syntax error at line " + line + ": Invalid type declaration.");
errors = true;
return false;
- }else{
+ } else {
/* we just entered a type definition */
insideType = true;
}
- /* current is a closing square bracket, we just finished a type definition */
- }else if (current == ']') {
+ /* current is a closing square bracket, we just finished a type definition */
+ } else if (current == ']') {
/* we are defining a property, treat it as text */
if (currentProp != Property.NONE) {
buffer.append(']');
- /* we are inside of a type */
- }else if (insideType) {
+ /* we are inside of a type */
+ } else if (insideType) {
insideType = false;
/* current argument type is null, throw an error */
if (currentArgComp == null) {
currentArgComp = resolveComponentType(buffer.toString());
buffer = new StringBuilder();
if (currentArgComp instanceof EmptyComponent) {
-
- }else{
+
+ } else {
/* should never happen */
plugin.getLogger().log(Level.WARNING, "Type error at line " + line + ": Type has no type?");
errors = true;
return false;
}
- }else{
+ } else {
/* set the value of the current type and reset the buffer */
currentArgComp.argName = buffer.toString();
buffer = new StringBuilder();
@@ -646,109 +621,111 @@ public class CommandManager {
}
sideBuffer = new StringBuilder();
}
- }else{
+ } else {
/* we are not defining a type, throw an error */
plugin.getLogger().log(Level.WARNING, "Syntax error at line " + line + ": Not in type declaration.");
errors = true;
return false;
}
- /* typical escape sequences and such */
- }else if (current == 'n' && currentProp == Property.HELP) {
+ /* typical escape sequences and such */
+ } else if (current == 'n' && currentProp == Property.HELP) {
if (previous == '\\') {
buffer.append('\n');
- }else{
+ } else {
buffer.append('n');
}
- }else if (current == 't' && currentProp == Property.HELP) {
+ } else if (current == 't' && currentProp == Property.HELP) {
if (previous == '\\') {
buffer.append('\t');
- }else{
+ } else {
buffer.append('t');
}
- }else if (current == '\\' && currentProp == Property.HELP) {
+ } else if (current == '\\' && currentProp == Property.HELP) {
if (previous == '\\') {
buffer.append('\\');
}
- }else if (current != '\r' && current != '\n' && current != '\t') {
+ } else if (current != '\r' && current != '\n' && current != '\t') {
if (currentArgComp != null && current == '.') {
if (currentArgComp instanceof StringComponent) {
sideBuffer.append(current);
- }else{
+ } else {
plugin.getLogger().log(Level.WARNING, "Syntax error at line " + line + ": '...' is invalid for non-string types.");
errors = true;
return false;
}
- }else{
+ } else {
buffer.append(current);
}
}
previous = current;
}
-
+
return true;
}
-
+
/**
* Resolves the string into a type, or null if invalid
- *
+ *
* @param type string you want to evaluate
+ *
* @return the type class or null if invalid
*/
private static ArgumentComponent resolveComponentType(String type) {
switch (type) {
- case "string":
- return new StringComponent();
- case "int":
- case "integer":
- return new IntegerComponent();
- case "short":
- return new ShortComponent();
- case "long":
- return new LongComponent();
- case "byte":
- return new ByteComponent();
- case "float":
- return new FloatComponent();
- case "double":
- return new DoubleComponent();
- case "bool":
- case "boolean":
- return new BooleanComponent();
- case "optional":
- case "opt":
- case "flag":
- return new OptionalComponent();
- case "empty":
- case "null":
- return new EmptyComponent();
+ case "string":
+ return new StringComponent();
+ case "int":
+ case "integer":
+ return new IntegerComponent();
+ case "short":
+ return new ShortComponent();
+ case "long":
+ return new LongComponent();
+ case "byte":
+ return new ByteComponent();
+ case "float":
+ return new FloatComponent();
+ case "double":
+ return new DoubleComponent();
+ case "bool":
+ case "boolean":
+ return new BooleanComponent();
+ case "optional":
+ case "opt":
+ case "flag":
+ return new OptionalComponent();
+ case "empty":
+ case "null":
+ return new EmptyComponent();
}
return null;
}
-
+
/**
* Resolves the string into a property, or null if invalid
- *
+ *
* @param type string you want to evaluate
+ *
* @return the property enum or null if invalid
*/
private static Type resolveExecutionType(String type) {
switch (type) {
- case "player":
- return Type.PLAYER;
- case "both":
- case "any":
- case "all":
- return Type.BOTH;
- case "server":
- case "console":
- return Type.CONSOLE;
- case "none":
- case "nobody":
- return Type.NOBODY;
+ case "player":
+ return Type.PLAYER;
+ case "both":
+ case "any":
+ case "all":
+ return Type.BOTH;
+ case "server":
+ case "console":
+ return Type.CONSOLE;
+ case "none":
+ case "nobody":
+ return Type.NOBODY;
}
return null;
}
-
+
private static void postProcess(String cmdName, ChainComponent components, ArrayList<Method> methods, JavaPlugin plugin, Object methodContainer) {
components.execute = null;
components.help = null;
@@ -757,21 +734,21 @@ public class CommandManager {
Executable cmd = new Executable(cmdName, constructHelpPages(cmdName, components), methodContainer.getClass().getSimpleName());
cmd.register(methods, plugin, methodContainer, components.getAliases());
}
-
+
private static ArrayList<HelpPageCommand[]> constructHelpPages(String cmdName, ChainComponent root) {
- String[] rawLines = constructHelpPagesRecursive(root).split("\r");
- ArrayList<HelpPageCommand[]> pages = new ArrayList<HelpPageCommand[]>();
- ArrayList<String> lines = new ArrayList<String>();
- HelpPageCommand[] page = new HelpPageCommand[5];
-
+ String[] rawLines = constructHelpPagesRecursive(root).split("\r");
+ ArrayList<HelpPageCommand[]> pages = new ArrayList<HelpPageCommand[]>();
+ ArrayList<String> lines = new ArrayList<String>();
+ HelpPageCommand[] page = new HelpPageCommand[5];
+
for (int i = 0; i < rawLines.length; i++) {
if (rawLines[i].length() > 0 && !rawLines[i].equals("\0null\0null\0null\0null\0")) {
lines.add(rawLines[i]);
}
}
-
+
boolean firstPass = true;
- int i;
+ int i;
for (i = 0; i < lines.size(); i++) {
if (i % 5 == 0 && !firstPass) {
pages.add(page);
@@ -787,35 +764,37 @@ public class CommandManager {
}
page[i % 5] = new HelpPageCommand(cmdName + ".help", "/" + cmdName + " help <page:i32>", "Shows help.", null, Type.BOTH);
pages.add(page);
-
+
return pages;
}
-
+
private static String constructHelpPagesRecursive(ICommandComponent component) {
String data = "";
-
+
if (component instanceof ChainComponent) {
- ChainComponent comp = (ChainComponent) component;
+ ChainComponent comp = (ChainComponent) component;
ArrayList<String> leaves = new ArrayList<String>();
- String chain = "";
+ String chain = "";
data += "\r";
for (ICommandComponent c : comp.getComponents()) {
String temp = constructHelpPagesRecursive(c);
if (c instanceof ChainComponent) {
temp = temp.replaceAll("\r", "\r" + chain);
leaves.add(temp);
- }else{
+ } else {
chain += temp;
}
}
- data += chain + "\0" + ((comp.permission == null || comp.permission.equals("-none-")) ? null : comp.permission) + "\0" + comp.execute + "\0" + comp.help + "\0" + Type.get(comp.type) + "\0";
+ data += chain + "\0" + ((comp.permission == null || comp.permission.equals("-none-"))
+ ? null
+ : comp.permission) + "\0" + comp.execute + "\0" + comp.help + "\0" + Type.get(comp.type) + "\0";
for (String s : leaves) {
data += s;
}
- }else{
+ } else {
data += component.getComponentInfo() + " ";
}
-
+
return data;
}
}//@format
diff --git a/src/main/java/com/nemez/cmdmgr/EmptyCommand.java b/src/main/java/com/nemez/cmdmgr/EmptyCommand.java
index 770ed77..51a4907 100644
--- a/src/main/java/com/nemez/cmdmgr/EmptyCommand.java
+++ b/src/main/java/com/nemez/cmdmgr/EmptyCommand.java
@@ -1,19 +1,15 @@
package com.nemez.cmdmgr;
-import org.bukkit.command.CommandSender;
-
import com.nemez.cmdmgr.util.Executable;
+import org.bukkit.command.CommandSender;
-public class EmptyCommand extends Executable
-{
- public EmptyCommand(String name)
- {
+public class EmptyCommand extends Executable {
+ public EmptyCommand(String name) {
super(name, null, "");
}
-
+
@Override
- public boolean execute(CommandSender sender, String name, String[] args_)
- {
+ public boolean execute(CommandSender sender, String name, String[] args_) {
sender.sendMessage("§cCommand no longer Exists. Use §e/help§c, §e/plugins§c or ask a mod.");
return true;
}
diff --git a/src/main/java/com/nemez/cmdmgr/component/ArgumentComponent.java b/src/main/java/com/nemez/cmdmgr/component/ArgumentComponent.java
index 939d9cb..80a9319 100644
--- a/src/main/java/com/nemez/cmdmgr/component/ArgumentComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/ArgumentComponent.java
@@ -3,7 +3,7 @@ package com.nemez.cmdmgr.component;
public abstract class ArgumentComponent implements ICommandComponent {
public String argName;
- public int position;
+ public int position;
@Override
public String argName() {
diff --git a/src/main/java/com/nemez/cmdmgr/component/BooleanComponent.java b/src/main/java/com/nemez/cmdmgr/component/BooleanComponent.java
index 8290fc5..715ae57 100644
--- a/src/main/java/com/nemez/cmdmgr/component/BooleanComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/BooleanComponent.java
@@ -1,7 +1,7 @@
package com.nemez.cmdmgr.component;
public class BooleanComponent extends ArgumentComponent {
-
+
@Override
public Object get(String input) {
if (input.toLowerCase().equals("true") || input.toLowerCase().equals("yes")) {
@@ -12,14 +12,16 @@ public class BooleanComponent extends ArgumentComponent {
@Override
public boolean valid(String input) {
- if (input.toLowerCase().equals("true") || input.toLowerCase().equals("false") || input.toLowerCase().equals("yes") || input.toLowerCase().equals("no")) {
+ if (input.toLowerCase().equals("true") || input.toLowerCase().equals("false") || input.toLowerCase().equals("yes") || input
+ .toLowerCase()
+ .equals("no")) {
return true;
}
return false;
}
-
+
@Override
public String getComponentInfo() {
- return "<" + argName + ":bool>";
+ return "<" + argName + ":bool>";
}
}
diff --git a/src/main/java/com/nemez/cmdmgr/component/ByteComponent.java b/src/main/java/com/nemez/cmdmgr/component/ByteComponent.java
index f0e8d74..9c4a163 100644
--- a/src/main/java/com/nemez/cmdmgr/component/ByteComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/ByteComponent.java
@@ -1,7 +1,7 @@
package com.nemez.cmdmgr.component;
public class ByteComponent extends ArgumentComponent {
-
+
@Override
public Object get(String input) {
try {
@@ -20,9 +20,9 @@ public class ByteComponent extends ArgumentComponent {
return false;
}
}
-
+
@Override
public String getComponentInfo() {
- return "<" + argName + ":i8>";
+ return "<" + argName + ":i8>";
}
}
diff --git a/src/main/java/com/nemez/cmdmgr/component/ChainComponent.java b/src/main/java/com/nemez/cmdmgr/component/ChainComponent.java
index 691a85d..72e4cd5 100644
--- a/src/main/java/com/nemez/cmdmgr/component/ChainComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/ChainComponent.java
@@ -1,22 +1,22 @@
package com.nemez.cmdmgr.component;
-import java.util.ArrayList;
-
import com.nemez.cmdmgr.util.Type;
+import java.util.ArrayList;
+
public class ChainComponent implements ICommandComponent {
+ public String permission;
+ public String help;
+ public String execute;
+ public Type type;
+ public ArrayList<String> aliases = new ArrayList<String>();
private ArrayList<ICommandComponent> components;
- public String permission;
- public String help;
- public String execute;
- public Type type;
- public ArrayList<String> aliases = new ArrayList<String>();
-
+
public ChainComponent() {
components = new ArrayList<ICommandComponent>();
}
-
+
public void append(ICommandComponent comp) {
components.add(comp);
}
@@ -35,21 +35,21 @@ public class ChainComponent implements ICommandComponent {
public String argName() {
return null;
}
-
+
@Override
public String getComponentInfo() {
return "chain[" + components.size() + "]";
}
-
+
public int capacity() {
return components.size();
}
-
+
public ArrayList<ICommandComponent> getComponents() {
return components;
}
-
+
public ArrayList<String> getAliases() {
- return aliases;
- }
+ return aliases;
+ }
}
diff --git a/src/main/java/com/nemez/cmdmgr/component/ConstantComponent.java b/src/main/java/com/nemez/cmdmgr/component/ConstantComponent.java
index 00e255e..205c424 100644
--- a/src/main/java/com/nemez/cmdmgr/component/ConstantComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/ConstantComponent.java
@@ -3,11 +3,11 @@ package com.nemez.cmdmgr.component;
public class ConstantComponent implements ICommandComponent {
private String component;
-
+
public ConstantComponent(String comp) {
component = comp;
}
-
+
@Override
public Object get(String input) {
if (input.equals(component)) {
@@ -25,7 +25,7 @@ public class ConstantComponent implements ICommandComponent {
public String argName() {
return null;
}
-
+
@Override
public String getComponentInfo() {
return component;
diff --git a/src/main/java/com/nemez/cmdmgr/component/DoubleComponent.java b/src/main/java/com/nemez/cmdmgr/component/DoubleComponent.java
index 28a5398..19c3f3c 100644
--- a/src/main/java/com/nemez/cmdmgr/component/DoubleComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/DoubleComponent.java
@@ -20,7 +20,7 @@ public class DoubleComponent extends ArgumentComponent {
return false;
}
}
-
+
@Override
public String getComponentInfo() {
return "<" + argName + ":fp64>";
diff --git a/src/main/java/com/nemez/cmdmgr/component/EmptyComponent.java b/src/main/java/com/nemez/cmdmgr/component/EmptyComponent.java
index 35e4d26..cec7c04 100644
--- a/src/main/java/com/nemez/cmdmgr/component/EmptyComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/EmptyComponent.java
@@ -11,7 +11,7 @@ public class EmptyComponent extends ArgumentComponent {
public boolean valid(String input) {
return true;
}
-
+
@Override
public String getComponentInfo() {
return "<empty>";
diff --git a/src/main/java/com/nemez/cmdmgr/component/FloatComponent.java b/src/main/java/com/nemez/cmdmgr/component/FloatComponent.java
index 039378a..e9c0ce6 100644
--- a/src/main/java/com/nemez/cmdmgr/component/FloatComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/FloatComponent.java
@@ -20,7 +20,7 @@ public class FloatComponent extends ArgumentComponent {
return false;
}
}
-
+
@Override
public String getComponentInfo() {
return "<" + argName + ":fp32>";
diff --git a/src/main/java/com/nemez/cmdmgr/component/ICommandComponent.java b/src/main/java/com/nemez/cmdmgr/component/ICommandComponent.java
index 5dbb17b..b236fc3 100644
--- a/src/main/java/com/nemez/cmdmgr/component/ICommandComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/ICommandComponent.java
@@ -3,7 +3,10 @@ package com.nemez.cmdmgr.component;
public interface ICommandComponent {
public Object get(String input);
+
public boolean valid(String input);
+
public String argName();
+
public String getComponentInfo();
}
diff --git a/src/main/java/com/nemez/cmdmgr/component/IntegerComponent.java b/src/main/java/com/nemez/cmdmgr/component/IntegerComponent.java
index aafab8d..cdf670f 100644
--- a/src/main/java/com/nemez/cmdmgr/component/IntegerComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/IntegerComponent.java
@@ -20,7 +20,7 @@ public class IntegerComponent extends ArgumentComponent {
return false;
}
}
-
+
@Override
public String getComponentInfo() {
return "<" + argName + ":i32>";
diff --git a/src/main/java/com/nemez/cmdmgr/component/LongComponent.java b/src/main/java/com/nemez/cmdmgr/component/LongComponent.java
index d97f1bb..16dc524 100644
--- a/src/main/java/com/nemez/cmdmgr/component/LongComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/LongComponent.java
@@ -20,7 +20,7 @@ public class LongComponent extends ArgumentComponent {
return false;
}
}
-
+
@Override
public String getComponentInfo() {
return "<" + argName + ":i64>";
diff --git a/src/main/java/com/nemez/cmdmgr/component/OptionalComponent.java b/src/main/java/com/nemez/cmdmgr/component/OptionalComponent.java
index 1d1c839..33ef302 100644
--- a/src/main/java/com/nemez/cmdmgr/component/OptionalComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/OptionalComponent.java
@@ -1,7 +1,7 @@
package com.nemez.cmdmgr.component;
public class OptionalComponent extends ArgumentComponent {
-
+
@Override
public Object get(String input) {
return input.equals(argName);
diff --git a/src/main/java/com/nemez/cmdmgr/component/ShortComponent.java b/src/main/java/com/nemez/cmdmgr/component/ShortComponent.java
index cad6719..cce4b19 100644
--- a/src/main/java/com/nemez/cmdmgr/component/ShortComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/ShortComponent.java
@@ -20,7 +20,7 @@ public class ShortComponent extends ArgumentComponent {
return false;
}
}
-
+
@Override
public String getComponentInfo() {
return "<" + argName + ":i16>";
diff --git a/src/main/java/com/nemez/cmdmgr/component/StringComponent.java b/src/main/java/com/nemez/cmdmgr/component/StringComponent.java
index 9b7a717..e871c5b 100644
--- a/src/main/java/com/nemez/cmdmgr/component/StringComponent.java
+++ b/src/main/java/com/nemez/cmdmgr/component/StringComponent.java
@@ -3,7 +3,7 @@ package com.nemez.cmdmgr.component;
public class StringComponent extends ArgumentComponent {
public boolean infinite = false;
-
+
@Override
public Object get(String input) {
return input;
@@ -13,7 +13,7 @@ public class StringComponent extends ArgumentComponent {
public boolean valid(String input) {
return true;
}
-
+
@Override
public String getComponentInfo() {
return "<" + (infinite ? "..." : "") + argName + ":str>";
diff --git a/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java b/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
index 7e97705..eab856a 100644
--- a/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
+++ b/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
@@ -1,29 +1,23 @@
package com.nemez.cmdmgr.util;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
+import com.nemez.cmdmgr.component.ICommandComponent;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
-import com.nemez.cmdmgr.component.ICommandComponent;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
-public class AsyncExecutableDefinition extends ExecutableDefinition
-{
+public class AsyncExecutableDefinition extends ExecutableDefinition {
public AsyncExecutableDefinition(ArrayList<ICommandComponent> cmd, ArrayList<Integer> paramLinks, String perm,
- Method method, Object methodContainer, Type type)
- {
+ Method method, Object methodContainer, Type type) {
super(cmd, paramLinks, perm, method, methodContainer, type);
}
-
+
@Override
- public boolean invoke(Object[] args, CommandSender sender, JavaPlugin plugin)
- {
- Thread t = new Thread(new Runnable()
- {
+ public boolean invoke(Object[] args, CommandSender sender, JavaPlugin plugin) {
+ Thread t = new Thread(new Runnable() {
@Override
- public void run()
- {
+ public void run() {
invokeFromThread(args, sender, plugin);
}
});
@@ -31,9 +25,8 @@ public class AsyncExecutableDefinition extends ExecutableDefinition
t.start();
return true;
}
-
- private final void invokeFromThread(Object[] args, CommandSender sender, JavaPlugin plugin)
- {
+
+ private final void invokeFromThread(Object[] args, CommandSender sender, JavaPlugin plugin) {
super.invoke(args, sender, plugin);
}
}
diff --git a/src/main/java/com/nemez/cmdmgr/util/BranchStack.java b/src/main/java/com/nemez/cmdmgr/util/BranchStack.java
index f89094f..95457fc 100644
--- a/src/main/java/com/nemez/cmdmgr/util/BranchStack.java
+++ b/src/main/java/com/nemez/cmdmgr/util/BranchStack.java
@@ -1,21 +1,21 @@
package com.nemez.cmdmgr.util;
-import java.util.ArrayList;
-
import com.nemez.cmdmgr.component.ChainComponent;
+import java.util.ArrayList;
+
public class BranchStack {
private ArrayList<ChainComponent> components;
-
+
public BranchStack() {
components = new ArrayList<ChainComponent>();
}
-
+
public void push(ChainComponent comp) {
components.add(comp);
}
-
+
public ChainComponent pop() {
if (components.size() > 0) {
ChainComponent toPop = components.remove(components.size() - 1);
@@ -23,7 +23,7 @@ public class BranchStack {
}
return null;
}
-
+
public ChainComponent get() {
if (components.size() > 0) {
return components.get(components.size() - 1);
diff --git a/src/main/java/com/nemez/cmdmgr/util/Executable.java b/src/main/java/com/nemez/cmdmgr/util/Executable.java
index 9f39100..d7549b2 100644
--- a/src/main/java/com/nemez/cmdmgr/util/Executable.java
+++ b/src/main/java/com/nemez/cmdmgr/util/Executable.java
@@ -1,13 +1,10 @@
//@noformat
package com.nemez.cmdmgr.util;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Level;
-
+import com.nemez.cmdmgr.Command;
+import com.nemez.cmdmgr.Command.AsyncType;
+import com.nemez.cmdmgr.CommandManager;
+import com.nemez.cmdmgr.component.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandMap;
@@ -15,29 +12,21 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
-import com.nemez.cmdmgr.Command;
-import com.nemez.cmdmgr.Command.AsyncType;
-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;
-import com.nemez.cmdmgr.component.FloatComponent;
-import com.nemez.cmdmgr.component.ICommandComponent;
-import com.nemez.cmdmgr.component.IntegerComponent;
-import com.nemez.cmdmgr.component.LongComponent;
-import com.nemez.cmdmgr.component.OptionalComponent;
-import com.nemez.cmdmgr.component.ShortComponent;
-import com.nemez.cmdmgr.component.StringComponent;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
public class Executable extends org.bukkit.command.Command {
private ArrayList<ExecutableDefinition> commands;
- private ArrayList<HelpPageCommand[]> help;
- private String name;
- private String methodContainerName;
- private JavaPlugin plugin;
-
+ private ArrayList<HelpPageCommand[]> help;
+ private String name;
+ private String methodContainerName;
+ private JavaPlugin plugin;
+
public Executable(String name, ArrayList<HelpPageCommand[]> help, String methodContainerName) {
super(name);
this.help = help;
@@ -45,43 +34,43 @@ public class Executable extends org.bukkit.command.Command {
this.commands = new ArrayList<ExecutableDefinition>();
this.methodContainerName = methodContainerName;
}
-
+
public String getMethodContainerName() {
return methodContainerName;
}
-
+
public void register(ArrayList<Method> methods, JavaPlugin plugin, Object methodContainer, ArrayList<String> aliases) {
methodContainerName = methodContainer.getClass().getSimpleName().toLowerCase();
for (HelpPageCommand[] page : help) {
for (HelpPageCommand cmd : page) {
if (cmd != null) {
processLine(cmd.usage.split("\\ "), cmd.permission, cmd.method, methods, methodContainer, plugin, cmd.type);
- String newUsage = "";
- String buffer = "";
- String typeBuffer = "";
- boolean ignore = false;
- boolean toBuffer = false;
+ String newUsage = "";
+ String buffer = "";
+ String typeBuffer = "";
+ boolean ignore = false;
+ boolean toBuffer = false;
for (char c : cmd.usage.toCharArray()) {
if (c == '<') {
toBuffer = true;
- }else if (c == ':') {
+ } else if (c == ':') {
toBuffer = false;
ignore = true;
- }else if (c == '>') {
+ } else if (c == '>') {
ignore = false;
if (typeBuffer.equals("flag")) {
newUsage += '[' + buffer + (CommandManager.debugHelpMenu ? ':' + typeBuffer : "") + ']';
- }else{
+ } else {
newUsage += '<' + buffer + (CommandManager.debugHelpMenu ? ':' + typeBuffer : "") + '>';
}
buffer = "";
typeBuffer = "";
- }else{
+ } else {
if (toBuffer) {
buffer += c;
- }else if (ignore) {
+ } else if (ignore) {
typeBuffer += c;
- }else{
+ } else {
newUsage += c;
}
}
@@ -90,37 +79,38 @@ public class Executable extends org.bukkit.command.Command {
}
}
}
-
+
this.plugin = plugin;
try {
final Field cmdMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
cmdMap.setAccessible(true);
- CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
+ CommandMap map = (CommandMap) cmdMap.get(Bukkit.getServer());
final Field knownCommandsField = map.getClass().getSuperclass().getDeclaredField("knownCommands");
knownCommandsField.setAccessible(true);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings ("unchecked")
Map<String, Command> knownCommands = (Map<String, Command>) knownCommandsField.get(map);
knownCommands.remove(name);
map.register(methodContainerName, this);
for (String alias : aliases) {
- Executable cmd = new Executable(alias, this.help, methodContainerName);
- cmd.commands = this.commands;
- cmd.plugin = this.plugin;
- knownCommands.remove(alias);
- map.register(methodContainerName, cmd);
+ Executable cmd = new Executable(alias, this.help, methodContainerName);
+ cmd.commands = this.commands;
+ cmd.plugin = this.plugin;
+ knownCommands.remove(alias);
+ map.register(methodContainerName, cmd);
}
} catch (Exception e) {
plugin.getLogger().log(Level.SEVERE, "Failed to register command '" + name + "'!");
e.printStackTrace();
}
-
+
if (CommandManager.errors) {
plugin.getLogger().log(Level.WARNING, "There were parser errors, some commands may not function properly!");
CommandManager.errors = false;
}
}
-
- private void processLine(String[] line, String permission, String method, ArrayList<Method> methods, Object methodContainer, JavaPlugin plugin, Type etype) {
+
+ private void processLine(String[] line, String permission, String method, ArrayList<Method> methods, Object methodContainer, JavaPlugin plugin,
+ Type etype) {
ArrayList<ICommandComponent> command = new ArrayList<ICommandComponent>();
if (method == null && line[1].equals("help")) {
command.add(new ConstantComponent("help"));
@@ -133,75 +123,75 @@ public class Executable extends org.bukkit.command.Command {
}
HashMap<Integer, ICommandComponent> methodParams = new HashMap<Integer, ICommandComponent>();
method = method.trim() + " ";
- String[] methodArray = method.split(" ");
- Method target = null;
- ArrayList<Integer> links = new ArrayList<Integer>();
-
+ String[] methodArray = method.split(" ");
+ Method target = null;
+ ArrayList<Integer> links = new ArrayList<Integer>();
+
for (String s : line) {
if (s.contains("/")) {
continue;
}
if (s.contains(":")) {
- String[] type = s.split(":");
- String paramName = "";
+ String[] type = s.split(":");
+ String paramName = "";
switch (type[1].substring(0, type[1].length() - 1)) {
- case "i8":
- ByteComponent comp1 = new ByteComponent();
- comp1.argName = type[0].substring(1);
- paramName = comp1.argName;
- command.add(comp1);
- break;
- case "i16":
- ShortComponent comp2 = new ShortComponent();
- comp2.argName = type[0].substring(1);
- paramName = comp2.argName;
- command.add(comp2);
- break;
- case "i32":
- IntegerComponent comp3 = new IntegerComponent();
- comp3.argName = type[0].substring(1);
- paramName = comp3.argName;
- command.add(comp3);
- break;
- case "i64":
- LongComponent comp4 = new LongComponent();
- comp4.argName = type[0].substring(1);
- paramName = comp4.argName;
- command.add(comp4);
- break;
- case "fp32":
- FloatComponent comp5 = new FloatComponent();
- comp5.argName = type[0].substring(1);
- paramName = comp5.argName;
- command.add(comp5);
- break;
- case "fp64":
- DoubleComponent comp6 = new DoubleComponent();
- comp6.argName = type[0].substring(1);
- paramName = comp6.argName;
- command.add(comp6);
- break;
- case "str":
- StringComponent comp7 = new StringComponent();
- comp7.argName = type[0].substring(1).replace("...", "");
- comp7.infinite = type[0].substring(1).contains("...");
- 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);
- break;
- case "flag":
- OptionalComponent comp9 = new OptionalComponent();
- comp9.argName = type[0].substring(1);
- paramName = comp9.argName;
- command.add(comp9);
- break;
- default:
- return;
+ case "i8":
+ ByteComponent comp1 = new ByteComponent();
+ comp1.argName = type[0].substring(1);
+ paramName = comp1.argName;
+ command.add(comp1);
+ break;
+ case "i16":
+ ShortComponent comp2 = new ShortComponent();
+ comp2.argName = type[0].substring(1);
+ paramName = comp2.argName;
+ command.add(comp2);
+ break;
+ case "i32":
+ IntegerComponent comp3 = new IntegerComponent();
+ comp3.argName = type[0].substring(1);
+ paramName = comp3.argName;
+ command.add(comp3);
+ break;
+ case "i64":
+ LongComponent comp4 = new LongComponent();
+ comp4.argName = type[0].substring(1);
+ paramName = comp4.argName;
+ command.add(comp4);
+ break;
+ case "fp32":
+ FloatComponent comp5 = new FloatComponent();
+ comp5.argName = type[0].substring(1);
+ paramName = comp5.argName;
+ command.add(comp5);
+ break;
+ case "fp64":
+ DoubleComponent comp6 = new DoubleComponent();
+ comp6.argName = type[0].substring(1);
+ paramName = comp6.argName;
+ command.add(comp6);
+ break;
+ case "str":
+ StringComponent comp7 = new StringComponent();
+ comp7.argName = type[0].substring(1).replace("...", "");
+ comp7.infinite = type[0].substring(1).contains("...");
+ 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);
+ break;
+ case "flag":
+ OptionalComponent comp9 = new OptionalComponent();
+ comp9.argName = type[0].substring(1);
+ paramName = comp9.argName;
+ command.add(comp9);
+ break;
+ default:
+ return;
}
int index = 0;
for (int i = 1; i < methodArray.length; i++) {
@@ -214,29 +204,29 @@ public class Executable extends org.bukkit.command.Command {
index++;
}
}
- }else{
+ } else {
if (s.equals("<empty>")) {
-
- }else{
+
+ } else {
command.add(new ConstantComponent(s));
}
}
}
-
+
for (Method m : methods) {
Command[] annotations = m.getAnnotationsByType(Command.class);
if (annotations == null || annotations.length != 1) {
plugin.getLogger().log(Level.WARNING, "Invalid method (" + methodArray[0] + ")");
CommandManager.errors = true;
return;
- }else{
+ } else {
if (annotations[0].hook().equals(methodArray[0])) {
Class<?>[] params = m.getParameterTypes();
- if (params.length -1 != methodParams.size()) {
+ if (params.length - 1 != methodParams.size()) {
plugin.getLogger().log(Level.WARNING, "Invalid method (" + methodArray[0] + "): Arguments don't match");
CommandManager.errors = true;
return;
- }else{
+ } else {
for (int i = 0; i < params.length; i++) {
if (i == 0) {
if (params[0] != CommandSender.class) {
@@ -244,27 +234,27 @@ public class Executable extends org.bukkit.command.Command {
CommandManager.errors = true;
return;
}
- }else{
+ } else {
ICommandComponent comp = methodParams.get(i - 1);
if (comp instanceof ByteComponent && params[i] == byte.class) {
-
- }else if (comp instanceof ShortComponent && params[i] == short.class) {
-
- }else if (comp instanceof IntegerComponent && params[i] == int.class) {
-
- }else if (comp instanceof LongComponent && params[i] == long.class) {
-
- }else if (comp instanceof FloatComponent && params[i] == float.class) {
-
- }else if (comp instanceof DoubleComponent && params[i] == double.class) {
-
- }else if (comp instanceof StringComponent && params[i] == String.class) {
-
- }else if (comp instanceof BooleanComponent && params[i] == boolean.class) {
-
- }else if (comp instanceof OptionalComponent && params[i] == boolean.class) {
-
- }else{
+
+ } else if (comp instanceof ShortComponent && params[i] == short.class) {
+
+ } else if (comp instanceof IntegerComponent && params[i] == int.class) {
+
+ } else if (comp instanceof LongComponent && params[i] == long.class) {
+
+ } else if (comp instanceof FloatComponent && params[i] == float.class) {
+
+ } else if (comp instanceof DoubleComponent && params[i] == double.class) {
+
+ } else if (comp instanceof StringComponent && params[i] == String.class) {
+
+ } else if (comp instanceof BooleanComponent && params[i] == boolean.class) {
+
+ } else if (comp instanceof OptionalComponent && params[i] == boolean.class) {
+
+ } else {
plugin.getLogger().log(Level.WARNING, "Invalid method (" + methodArray[0] + "): Invalid method arguments");
CommandManager.errors = true;
return;
@@ -286,7 +276,7 @@ public class Executable extends org.bukkit.command.Command {
etype = Type.BOTH;
}
ExecutableDefinition def;
- AsyncType type = target.getAnnotation(Command.class).async();
+ AsyncType type = target.getAnnotation(Command.class).async();
if (type == AsyncType.ALWAYS)
def = new AsyncExecutableDefinition(command, links, permission, target, methodContainer, etype);
else
@@ -295,27 +285,27 @@ public class Executable extends org.bukkit.command.Command {
if (def instanceof AsyncExecutableDefinition)
CommandManager.asyncExecutables.add(this);
}
-
+
@Override
public boolean execute(CommandSender sender, String name, String[] args_) {
String[] args;
if (args_.length == 0) {
args = new String[0];
- }else{
+ } else {
ArrayList<String> tempArgs = new ArrayList<String>();
- String temp = "";
- int counter = 0;
+ String temp = "";
+ int counter = 0;
for (String s : args_) {
if (s.endsWith("\\")) {
if ((s.length() > 1 && s.charAt(s.length() - 2) == '\\') || counter + 1 == args_.length) {
// escaped \
tempArgs.add(temp + s.replace("\\\\", "\\"));
temp = "";
- }else{
+ } else {
// unescaped \
temp += s.substring(0, s.length() - 1).replace("\\\\", "\\") + " ";
}
- }else{
+ } else {
tempArgs.add(temp + s);
temp = "";
}
@@ -327,7 +317,7 @@ public class Executable extends org.bukkit.command.Command {
}
}
ArrayList<ExecutableDefinition> defs = new ArrayList<ExecutableDefinition>();
-
+
if (args.length == 0) {
for (ExecutableDefinition d : commands) {
if (d.getLength(0) == 0) {
@@ -335,9 +325,10 @@ public class Executable extends org.bukkit.command.Command {
break;
}
}
- }else{
+ } else {
defs.addAll(commands);
- defLoop: for (int j = 0; j < defs.size(); j++) {
+ defLoop:
+ for (int j = 0; j < defs.size(); j++) {
if (defs.get(j).getLength(args.length) == 0) {
defs.remove(j);
j--;
@@ -350,7 +341,7 @@ public class Executable extends org.bukkit.command.Command {
defs.remove(j);
j--;
continue defLoop;
- }else{
+ } else {
i--;
continue;
}
@@ -364,7 +355,7 @@ public class Executable extends org.bukkit.command.Command {
}
if (defs.size() == 0) {
printPage(sender, 1);
- }else{
+ } else {
ExecutableDefinition def = defs.get(0);
for (ExecutableDefinition d : defs) {
if (d.isHelp() && args[0].equals("help")) {
@@ -378,20 +369,24 @@ public class Executable extends org.bukkit.command.Command {
}
}
if (def.getPermission() != null && !def.getPermission().equals("null") && !sender.hasPermission(def.getPermission())) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.noPermissionFormatting + "You do not have permission to execute this command."));
+ sender.sendMessage(ChatColor.translateAlternateColorCodes('&',
+ CommandManager.noPermissionFormatting + "You do not have permission to execute this command."
+ ));
return true;
}
if (def.getExecType() == Type.PLAYER) {
if (!(sender instanceof Player)) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.notAllowedFormatting + "Only players are allowed to run this command."));
+ sender.sendMessage(
+ ChatColor.translateAlternateColorCodes('&', CommandManager.notAllowedFormatting + "Only players are allowed to run this command."));
return true;
}
- }else if (def.getExecType() == Type.CONSOLE) {
+ } else if (def.getExecType() == Type.CONSOLE) {
if (sender instanceof Player) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.notAllowedFormatting + "Only console is allowed to run this command."));
+ sender.sendMessage(
+ ChatColor.translateAlternateColorCodes('&', CommandManager.notAllowedFormatting + "Only console is allowed to run this command."));
return true;
}
- }else if (def.getExecType() == Type.NOBODY) {
+ } else if (def.getExecType() == Type.NOBODY) {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.notAllowedFormatting + "Nobody can run this command."));
return true;
}
@@ -400,7 +395,7 @@ public class Executable extends org.bukkit.command.Command {
if (def.isArgument(j)) {
if (def.valid(j, args[i])) {
arguments.add(def.get(j, args[i]));
- }else if (def.isOptional(j)) {
+ } else if (def.isOptional(j)) {
arguments.add(false);
i--;
}
@@ -411,7 +406,7 @@ public class Executable extends org.bukkit.command.Command {
int link = def.getLink(i) + 1;
if (linkedArgs[link] != null) {
linkedArgs[link] = linkedArgs[link].toString() + " " + arguments.get(i).toString();
- }else{
+ } else {
linkedArgs[link] = arguments.get(i);
}
}
@@ -421,14 +416,19 @@ public class Executable extends org.bukkit.command.Command {
}
return true;
}
-
+
private void printPage(CommandSender sender, int page) {
page--;
if (page < 0 || page >= help.size()) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.helpInvalidPageFormatting + "Non-existant page (" + (page + 1) + ").\nThere are " + help.size() + " pages."));
- }else{
+ sender.sendMessage(ChatColor.translateAlternateColorCodes('&',
+ CommandManager.helpInvalidPageFormatting + "Non-existant page (" + (page + 1) + ").\nThere are " + help
+ .size() + " pages."
+ ));
+ } else {
HelpPageCommand[] pageData = help.get(page);
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.helpPageHeaderFormatting + "### Help Page " + (page + 1) + "/" + (help.size()) + " ###"));
+ sender.sendMessage(ChatColor.translateAlternateColorCodes('&',
+ CommandManager.helpPageHeaderFormatting + "### Help Page " + (page + 1) + "/" + (help.size()) + " ###"
+ ));
for (HelpPageCommand c : pageData) {
if (c != null) {
if (c.type == null || c.type == Type.BOTH || (c.type == Type.CONSOLE && !(sender instanceof Player)) || (c.type == Type.PLAYER && sender instanceof Player)) {
diff --git a/src/main/java/com/nemez/cmdmgr/util/ExecutableDefinition.java b/src/main/java/com/nemez/cmdmgr/util/ExecutableDefinition.java
index 4e00e9d..53e659b 100644
--- a/src/main/java/com/nemez/cmdmgr/util/ExecutableDefinition.java
+++ b/src/main/java/com/nemez/cmdmgr/util/ExecutableDefinition.java
@@ -1,29 +1,29 @@
package com.nemez.cmdmgr.util;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.logging.Level;
-
-import org.bukkit.ChatColor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.plugin.java.JavaPlugin;
-
import com.nemez.cmdmgr.CommandManager;
import com.nemez.cmdmgr.component.ArgumentComponent;
import com.nemez.cmdmgr.component.ICommandComponent;
import com.nemez.cmdmgr.component.OptionalComponent;
import com.nemez.cmdmgr.component.StringComponent;
+import org.bukkit.ChatColor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.plugin.java.JavaPlugin;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.logging.Level;
public class ExecutableDefinition {
private ArrayList<ICommandComponent> components;
- private String permission;
- private Method target;
- private Object methodContainer;
- private Type type;
- private ArrayList<Integer> paramLinks;
-
- public ExecutableDefinition(ArrayList<ICommandComponent> cmd, ArrayList<Integer> paramLinks, String perm, Method method, Object methodContainer, Type type) {
+ private String permission;
+ private Method target;
+ private Object methodContainer;
+ private Type type;
+ private ArrayList<Integer> paramLinks;
+
+ public ExecutableDefinition(ArrayList<ICommandComponent> cmd, ArrayList<Integer> paramLinks, String perm, Method method, Object methodContainer,
+ Type type) {
this.components = cmd;
this.permission = perm;
this.target = method;
@@ -31,7 +31,7 @@ public class ExecutableDefinition {
this.type = type;
this.paramLinks = paramLinks;
}
-
+
public boolean valid(int index, String arg) {
if (index < 0) {
return false;
@@ -41,10 +41,10 @@ public class ExecutableDefinition {
StringComponent strComp = (StringComponent) components.get(components.size() - 1);
if (strComp.infinite) {
return strComp.valid(arg);
- }else{
+ } else {
return false;
}
- }else{
+ } else {
return false;
}
}
@@ -60,16 +60,16 @@ public class ExecutableDefinition {
StringComponent strComp = (StringComponent) components.get(components.size() - 1);
if (strComp.infinite) {
return strComp.get(arg);
- }else{
+ } else {
return null;
}
- }else{
+ } else {
return null;
}
}
return components.get(index).get(arg);
}
-
+
public boolean isArgument(int index) {
if (index < 0) {
return false;
@@ -79,35 +79,35 @@ public class ExecutableDefinition {
StringComponent strComp = (StringComponent) components.get(components.size() - 1);
if (strComp.infinite) {
return true;
- }else{
+ } else {
return false;
}
- }else{
+ } else {
return false;
}
}
return components.get(index) instanceof ArgumentComponent;
}
-
+
public boolean isOptional(int index) {
if (index < 0 || index >= components.size()) {
return false;
}
return components.get(index) instanceof OptionalComponent;
}
-
+
public boolean isHelp() {
return target == null && components.get(0).valid("help") && components.get(1).getComponentInfo().equals("<page:i32>");
}
-
+
public String getPermission() {
return permission;
}
-
+
public Type getExecType() {
return type;
}
-
+
public int getLength(int argSize) {
if (components.size() == 0) {
return 0;
@@ -122,7 +122,7 @@ public class ExecutableDefinition {
}
return components.size();
}
-
+
public int getNumOfArgs() {
int counter = 0;
for (ICommandComponent c : components) {
@@ -132,7 +132,7 @@ public class ExecutableDefinition {
}
return counter;
}
-
+
public int getLink(int i) {
if (i < 0) {
return i;
@@ -142,16 +142,16 @@ public class ExecutableDefinition {
StringComponent strComp = (StringComponent) components.get(components.size() - 1);
if (strComp.infinite) {
return paramLinks.get(paramLinks.size() - 1);
- }else{
+ } else {
return i;
}
- }else{
+ } else {
return i;
}
}
return paramLinks.get(i);
}
-
+
public boolean invoke(Object[] args, CommandSender sender, JavaPlugin plugin) {
if (target == null) {
return false;
@@ -161,11 +161,13 @@ public class ExecutableDefinition {
if (target.getReturnType() == void.class) {
target.invoke(methodContainer, args);
return true;
- }else if (target.getReturnType() == boolean.class) {
+ } else if (target.getReturnType() == boolean.class) {
return (boolean) target.invoke(methodContainer, args);
}
} catch (Exception e) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandManager.helpInvalidPageFormatting + "An internal error occured, please contact the server administrator and/or report a bug."));
+ sender.sendMessage(ChatColor.translateAlternateColorCodes('&',
+ CommandManager.helpInvalidPageFormatting + "An internal error occured, please contact the server administrator and/or report a bug."
+ ));
plugin.getLogger().log(Level.WARNING, "Runtime Error: invalid method");
e.printStackTrace();
return true;
diff --git a/src/main/java/com/nemez/cmdmgr/util/HelpPageCommand.java b/src/main/java/com/nemez/cmdmgr/util/HelpPageCommand.java
index 2229672..ee277ef 100644
--- a/src/main/java/com/nemez/cmdmgr/util/HelpPageCommand.java
+++ b/src/main/java/com/nemez/cmdmgr/util/HelpPageCommand.java
@@ -6,8 +6,8 @@ public class HelpPageCommand {
public String usage;
public String description;
public String method;
- public Type type;
-
+ public Type type;
+
public HelpPageCommand(String perm, String usage, String description, String method, Type type) {
this.permission = perm;
this.usage = usage.replaceAll("<empty>", "");
diff --git a/src/main/java/com/nemez/cmdmgr/util/Property.java b/src/main/java/com/nemez/cmdmgr/util/Property.java
index 4d681b0..02ff16d 100644
--- a/src/main/java/com/nemez/cmdmgr/util/Property.java
+++ b/src/main/java/com/nemez/cmdmgr/util/Property.java
@@ -3,5 +3,5 @@ package com.nemez.cmdmgr.util;
public enum Property {
NONE, PERMISSION, HELP, EXECUTE, TYPE;
-
+
}
diff --git a/src/main/java/com/nemez/cmdmgr/util/Type.java b/src/main/java/com/nemez/cmdmgr/util/Type.java
index f2fc37b..4f766b3 100644
--- a/src/main/java/com/nemez/cmdmgr/util/Type.java
+++ b/src/main/java/com/nemez/cmdmgr/util/Type.java
@@ -3,34 +3,34 @@ package com.nemez.cmdmgr.util;
public enum Type {
BOTH, PLAYER, CONSOLE, NOBODY;
-
+
public static Type parse(String string) {
if (string.equals("both")) {
return BOTH;
- }else if (string.equals("player")) {
+ } else if (string.equals("player")) {
return PLAYER;
- }else if (string.equals("console")) {
+ } else if (string.equals("console")) {
return CONSOLE;
- }else if (string.equals("nobody")) {
+ } else if (string.equals("nobody")) {
return NOBODY;
- }else{
+ } else {
return null;
}
}
-
+
public static String get(Type t) {
if (t == null) {
return "null";
}
switch (t) {
- case BOTH:
- return "both";
- case PLAYER:
- return "player";
- case CONSOLE:
- return "console";
- case NOBODY:
- return "nobody";
+ case BOTH:
+ return "both";
+ case PLAYER:
+ return "player";
+ case CONSOLE:
+ return "console";
+ case NOBODY:
+ return "nobody";
}
return "null";
}