Sort files and make 4 new options in the disguise class viewable with commands
This commit is contained in:
		| @@ -157,7 +157,7 @@ public class DisguiseHelpCommand extends BaseDisguiseCommand { | ||||
|                     Class watcher = type.getWatcherClass(); | ||||
|                     int ignored = 0; | ||||
|                     try { | ||||
|                         for (Method method : watcher.getMethods()) { | ||||
|                         for (Method method : this.getDisguiseWatcherMethods(watcher)) { | ||||
|                             if (!method.getName().startsWith("get") && method.getParameterTypes().length == 1 | ||||
|                                     && method.getAnnotation(Deprecated.class) == null) { | ||||
|                                 if (args.length < 2 || !args[1].equalsIgnoreCase("show")) { | ||||
|   | ||||
| @@ -157,6 +157,10 @@ public class FlagWatcher { | ||||
|         return armor; | ||||
|     } | ||||
|  | ||||
|     public String getCustomName() { | ||||
|         return (String) getValue(10, null); | ||||
|     } | ||||
|  | ||||
|     protected TargetedDisguise getDisguise() { | ||||
|         return disguise; | ||||
|     } | ||||
| @@ -190,6 +194,10 @@ public class FlagWatcher { | ||||
|         return watchableObjects; | ||||
|     } | ||||
|  | ||||
|     public boolean hasCustomName() { | ||||
|         return getCustomName() != null; | ||||
|     } | ||||
|  | ||||
|     protected boolean hasValue(int no) { | ||||
|         return entityValues.containsKey(no); | ||||
|     } | ||||
| @@ -198,6 +206,10 @@ public class FlagWatcher { | ||||
|         return getFlag(0); | ||||
|     } | ||||
|  | ||||
|     public boolean isCustomNameVisible() { | ||||
|         return (Byte) getValue(11, (byte) 0) == 1; | ||||
|     } | ||||
|  | ||||
|     public boolean isEntityAnimationsAdded() { | ||||
|         return addEntityAnimations; | ||||
|     } | ||||
| @@ -206,31 +218,6 @@ public class FlagWatcher { | ||||
|         return getFlag(5); | ||||
|     } | ||||
|  | ||||
|     public String getCustomName() { | ||||
|         return (String) getValue(10, null); | ||||
|     } | ||||
|  | ||||
|     public boolean hasCustomName() { | ||||
|         return getCustomName() != null; | ||||
|     } | ||||
|  | ||||
|     public boolean isCustomNameVisible() { | ||||
|         return (Byte) getValue(11, (byte) 0) == 1; | ||||
|     } | ||||
|  | ||||
|     public void setCustomName(String name) { | ||||
|         if (name != null && name.length() > 64) { | ||||
|             name = name.substring(0, 64); | ||||
|         } | ||||
|         setValue(10, name); | ||||
|         sendData(10); | ||||
|     } | ||||
|  | ||||
|     public void setCustomNameVisible(boolean display) { | ||||
|         setValue(11, (byte) (display ? 1 : 0)); | ||||
|         sendData(11); | ||||
|     } | ||||
|  | ||||
|     public boolean isRightClicking() { | ||||
|         return getFlag(4); | ||||
|     } | ||||
| @@ -305,6 +292,19 @@ public class FlagWatcher { | ||||
|         sendData(0); | ||||
|     } | ||||
|  | ||||
|     public void setCustomName(String name) { | ||||
|         if (name != null && name.length() > 64) { | ||||
|             name = name.substring(0, 64); | ||||
|         } | ||||
|         setValue(10, name); | ||||
|         sendData(10); | ||||
|     } | ||||
|  | ||||
|     public void setCustomNameVisible(boolean display) { | ||||
|         setValue(11, (byte) (display ? 1 : 0)); | ||||
|         sendData(11); | ||||
|     } | ||||
|  | ||||
|     private void setFlag(int byteValue, boolean flag) { | ||||
|         modifiedEntityAnimations.add(byteValue); | ||||
|         byte b0 = (Byte) getValue(0, (byte) 0); | ||||
|   | ||||
| @@ -2,12 +2,14 @@ package me.libraryaddict.disguise.utilities; | ||||
|  | ||||
| import java.lang.reflect.Method; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.Collections; | ||||
| import java.util.HashMap; | ||||
|  | ||||
| import me.libraryaddict.disguise.disguisetypes.AnimalColor; | ||||
| import me.libraryaddict.disguise.disguisetypes.Disguise; | ||||
| import me.libraryaddict.disguise.disguisetypes.DisguiseType; | ||||
| import me.libraryaddict.disguise.disguisetypes.FlagWatcher; | ||||
| import me.libraryaddict.disguise.disguisetypes.MiscDisguise; | ||||
| import me.libraryaddict.disguise.disguisetypes.MobDisguise; | ||||
| import me.libraryaddict.disguise.disguisetypes.PlayerDisguise; | ||||
| @@ -68,6 +70,21 @@ public abstract class BaseDisguiseCommand implements CommandExecutor { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     protected Method[] getDisguiseWatcherMethods(Class<? extends FlagWatcher> watcherClass) { | ||||
|         Method[] methods = watcherClass.getMethods(); | ||||
|         methods = Arrays.copyOf(methods, methods.length + 4); | ||||
|         int i = 4; | ||||
|         for (String methodName : new String[] { "setViewSelfDisguise", "setHideHeldItemFromSelf", "setHideArmorFromSelf", | ||||
|                 "setHearSelfDisguise" }) { | ||||
|             try { | ||||
|                 methods[methods.length - i--] = Disguise.class.getMethod(methodName, boolean.class); | ||||
|             } catch (Exception ex) { | ||||
|                 ex.printStackTrace(); | ||||
|             } | ||||
|         } | ||||
|         return methods; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get perms for the node. Returns a hashmap of allowed disguisetypes and their options | ||||
|      */ | ||||
| @@ -432,12 +449,13 @@ public abstract class BaseDisguiseCommand implements CommandExecutor { | ||||
|         String[] newArgs = new String[args.length - toSkip]; | ||||
|         System.arraycopy(args, toSkip, newArgs, 0, args.length - toSkip); | ||||
|         args = newArgs; | ||||
|         Method[] methods = this.getDisguiseWatcherMethods(disguise.getWatcher().getClass()); | ||||
|         for (int i = 0; i < args.length; i += 2) { | ||||
|             String methodName = args[i]; | ||||
|             String valueString = (args.length - 1 == i ? null : args[i + 1]); | ||||
|             Method methodToUse = null; | ||||
|             Object value = null; | ||||
|             for (Method method : disguise.getWatcher().getClass().getMethods()) { | ||||
|             for (Method method : methods) { | ||||
|                 if (!method.getName().startsWith("get") && method.getName().equalsIgnoreCase(methodName) | ||||
|                         && method.getAnnotation(Deprecated.class) == null && method.getParameterTypes().length == 1) { | ||||
|                     methodToUse = method; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user