From 07f4bf82ea9de2e25f776372235dd3429161b09e Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Sun, 28 Jul 2013 17:31:41 -0400 Subject: [PATCH] Incomplete - /debug command --- .../Commands/Command_debug.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_debug.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_debug.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_debug.java new file mode 100644 index 00000000..13b6e346 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_debug.java @@ -0,0 +1,70 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.lang.reflect.Field; +import me.StevenLawson.TotalFreedomMod.TFM_Log; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE) +@CommandParameters(description = "For developers only - debug things via reflection.", usage = "/") +public class Command_debug extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + setStaticValue("me.StevenLawson.TotalFreedomMod.TotalFreedomMod", args[0], null); + return true; + } + + public static void setStaticValue(final String className, final String fieldName, final Object newValue) + { + try + { + Class forName = Class.forName(className); + if (forName != null) + { + final Field field = forName.getDeclaredField(fieldName); + if (field != null) + { + Class type = field.getType(); + + TFM_Log.info("type.toString() = " + type.toString() + ", type.isPrimitive() = " + type.isPrimitive()); + +// TFM_Log.info(type.toString()); +// +// if (Boolean.class.isAssignableFrom(type)) +// { +// TFM_Log.info("boolean"); +// } +// else if (Integer.class.isAssignableFrom(type)) +// { +// TFM_Log.info("integer"); +// } +// else if (Double.class.isAssignableFrom(type)) +// { +// TFM_Log.info("double"); +// } +// else if (String.class.isAssignableFrom(type)) +// { +// TFM_Log.info("string"); +// } + +// field.setAccessible(true); +// +// final Object oldValue = field.get(Class.forName(className)); +// if (oldValue != null) +// { +// field.set(oldValue, newValue); +// } +// +// field.setAccessible(false); + } + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); + } + } +}