diff options
| author | repo_alt <wvk17@yandex.ru> | 2020-02-23 22:21:13 +0300 | 
|---|---|---|
| committer | repo_alt <wvk17@yandex.ru> | 2020-02-23 22:21:13 +0300 | 
| commit | e232d8968b8b09fa6b1c0b3f99270f87edde9c41 (patch) | |
| tree | 9bf90a27dbc757f8a8e41b2f13fae1d040515eeb /src/main/java | |
| parent | add3853f937615437dc8644d1bd116541951f432 (diff) | |
| download | GT5-Unofficial-e232d8968b8b09fa6b1c0b3f99270f87edde9c41.tar.gz GT5-Unofficial-e232d8968b8b09fa6b1c0b3f99270f87edde9c41.tar.bz2 GT5-Unofficial-e232d8968b8b09fa6b1c0b3f99270f87edde9c41.zip | |
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; +        } +    } +} | 
