diff options
author | Martin Robertz <dream-master@gmx.net> | 2020-02-23 21:05:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-23 21:05:10 +0100 |
commit | 1b4c89b696e6320d5f8e8d7e35429fb2031a732d (patch) | |
tree | bfe5b0376bfb81909426be12c49ab422af8cf351 /src/main/java | |
parent | 386d567ef92d25dd6416f1b88daca9041dcca7d0 (diff) | |
parent | e232d8968b8b09fa6b1c0b3f99270f87edde9c41 (diff) | |
download | GT5-Unofficial-1b4c89b696e6320d5f8e8d7e35429fb2031a732d.tar.gz GT5-Unofficial-1b4c89b696e6320d5f8e8d7e35429fb2031a732d.tar.bz2 GT5-Unofficial-1b4c89b696e6320d5f8e8d7e35429fb2031a732d.zip |
Merge pull request #243 from repo-alt/feature/debugCommand
OP command to toggle debug flags
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/GT_Mod.java | 5 | ||||
-rw-r--r-- | src/main/java/gregtech/api/objects/GT_ChunkManager.java | 20 | ||||
-rw-r--r-- | src/main/java/gregtech/common/misc/GT_Command.java | 108 |
3 files changed, 110 insertions, 23 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 7b29fb0355..2d0b7257d0 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -10,7 +10,6 @@ import gregtech.api.enchants.Enchantment_EnderDamage; import gregtech.api.enchants.Enchantment_Radioactivity; import gregtech.api.enums.*; import gregtech.api.interfaces.internal.IGT_Mod; -import gregtech.api.objects.GT_ChunkManager; import gregtech.api.objects.ItemData; import gregtech.api.objects.XSTR; import gregtech.api.util.*; @@ -23,6 +22,7 @@ import gregtech.common.entities.GT_Entity_Arrow_Potion; import gregtech.common.items.GT_MetaGenerated_Tool_01; import gregtech.common.items.armor.components.LoadArmorComponents; import gregtech.common.items.behaviors.Behaviour_DataOrb; +import gregtech.common.misc.GT_Command; import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator; import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalChestBase; import gregtech.loaders.load.GT_CoverBehaviorLoader; @@ -1179,8 +1179,7 @@ public class GT_Mod implements IGT_Mod { tRunnable.run(); } } catch (Throwable e) {e.printStackTrace(GT_Log.err);} - if (GT_Values.debugChunkloaders) - aEvent.registerServerCommand(new GT_ChunkManager.DebugCommand()); + aEvent.registerServerCommand(new GT_Command()); } @Mod.EventHandler diff --git a/src/main/java/gregtech/api/objects/GT_ChunkManager.java b/src/main/java/gregtech/api/objects/GT_ChunkManager.java index 2d99310a8a..0012bc78f4 100644 --- a/src/main/java/gregtech/api/objects/GT_ChunkManager.java +++ b/src/main/java/gregtech/api/objects/GT_ChunkManager.java @@ -139,8 +139,6 @@ public class GT_ChunkManager implements ForgeChunkManager.OrderedLoadingCallback } public static void printTickets() { - if (!GT_Values.debugChunkloaders) - return; GT_Log.out.println("GT_ChunkManager: Start forced chunks dump:"); instance.registeredTickets.forEach((machine, ticket) -> { GT_Log.out.print("GT_ChunkManager: Chunks forced by the machine at (" + machine.xCoord + ", " + machine.yCoord + ", " + machine.zCoord + ")"); @@ -157,22 +155,4 @@ public class GT_ChunkManager implements ForgeChunkManager.OrderedLoadingCallback }); GT_Log.out.println("GT_ChunkManager: End forced chunks dump:"); } - public static class DebugCommand extends CommandBase { - @Override - public String getCommandName() { - return "gt5u:dump_chunks"; - } - @Override - public int getRequiredPermissionLevel() { - return 0; - } - @Override - public String getCommandUsage(ICommandSender sender) { - return "/" + getCommandName(); - } - @Override - public void processCommand(ICommandSender sender, String[] args) { - printTickets(); - } - } } diff --git a/src/main/java/gregtech/common/misc/GT_Command.java b/src/main/java/gregtech/common/misc/GT_Command.java new file mode 100644 index 0000000000..1f00e315dc --- /dev/null +++ b/src/main/java/gregtech/common/misc/GT_Command.java @@ -0,0 +1,108 @@ +package gregtech.common.misc; + +import gregtech.api.enums.GT_Values; +import gregtech.api.objects.GT_ChunkManager; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.util.ChatComponentText; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +public final class GT_Command extends CommandBase { + + @Override + public String getCommandName() { + return "gt"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "Usage: gt <subcommand>. Valid subcommands are: toggle, chunks."; + } + private void printHelp(ICommandSender sender) { + sender.addChatMessage(new ChatComponentText("Usage: gt <toggle|chunks>")); + sender.addChatMessage(new ChatComponentText("\"toggle D1\" - toggles general.Debug (D1)")); + sender.addChatMessage(new ChatComponentText("\"toggle D2\" - toggles general.Debug2 (D2)")); + sender.addChatMessage(new ChatComponentText("\"toggle debugCleanroom\" - toggles cleanroom debug log")); + sender.addChatMessage(new ChatComponentText("\"toggle debugDriller\" - toggles oil drill debug log")); + sender.addChatMessage(new ChatComponentText("\"toggle debugWorldGen\" - toggles generic worldgen debug")); + sender.addChatMessage(new ChatComponentText("\"toggle debugOrevein\" - toggles worldgen ore vein debug")); + sender.addChatMessage(new ChatComponentText("\"toggle debugSmallOres\" - toggles worldgen small vein debug")); + sender.addChatMessage(new ChatComponentText("\"toggle debugStones\" - toggles worldgen stones debug")); + sender.addChatMessage(new ChatComponentText("\"toggle debugChunkloaders\" - toggles chunkloaders debug")); + sender.addChatMessage(new ChatComponentText("\"chunks\" - print a list of the force loaded chunks")); + } + + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] ss) { + List<String> l = new ArrayList<>(); + if (ss.length == 0 || ss.length == 1 && (ss[0].trim().isEmpty() || "toggle".startsWith(ss[0]) || "chunks".startsWith(ss[0]))) { + if ("toggle".startsWith(ss[0])) + l.add("toggle"); + else if ("chunks".startsWith(ss[0])) + l.add("chunks"); + else { + l.add("toggle"); + l.add("chunks"); + } + } else if (ss[0].equals("toggle")) { + if (ss.length == 1 || ss[1].trim().isEmpty()) { + l.add("D1"); + l.add("D2"); + l.add("debugCleanroom"); + l.add("debugDriller"); + l.add("debugWorldGen"); + l.add("debugOrevein"); + l.add("debugSmallOres"); + l.add("debugStones"); + l.add("debugChunkloaders"); + } else if (ss[1].startsWith("D")) { + l.add("D1"); + l.add("D2"); + } else if (ss[1].startsWith("d")) { + l.add("debugCleanroom"); + l.add("debugDriller"); + l.add("debugWorldGen"); + l.add("debugOrevein"); + l.add("debugSmallOres"); + l.add("debugStones"); + l.add("debugChunkloaders"); + } + } + return l; + } + + @Override + public void processCommand(ICommandSender sender, String[] strings) { + if (strings.length < 1 || (!strings[0].equals("toggle") && !strings[0].equals("chunks"))) { + printHelp(sender); + return; + } + switch (strings[0]) { + case "toggle": + if (strings.length < 2) { + printHelp(sender); + return; + } + try { + Field field = GT_Values.class.getDeclaredField(strings[1]); + if (field.getType() != boolean.class) { + sender.addChatMessage(new ChatComponentText("Wrong variable: " + strings[1])); + return; + } + boolean b = !field.getBoolean(null); + field.setBoolean(null, b); + sender.addChatMessage(new ChatComponentText(strings[1] + " = " + (b ? "true" : "false"))); + } catch (Exception e) { + sender.addChatMessage(new ChatComponentText("No such variable: " + strings[0])); + } + break; + case "chunks": + GT_ChunkManager.printTickets(); + sender.addChatMessage(new ChatComponentText("Forced chunks logged to GregTech.log")); + break; + } + } +} |