aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2020-02-23 21:05:10 +0100
committerGitHub <noreply@github.com>2020-02-23 21:05:10 +0100
commit1b4c89b696e6320d5f8e8d7e35429fb2031a732d (patch)
treebfe5b0376bfb81909426be12c49ab422af8cf351 /src/main/java
parent386d567ef92d25dd6416f1b88daca9041dcca7d0 (diff)
parente232d8968b8b09fa6b1c0b3f99270f87edde9c41 (diff)
downloadGT5-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.java5
-rw-r--r--src/main/java/gregtech/api/objects/GT_ChunkManager.java20
-rw-r--r--src/main/java/gregtech/common/misc/GT_Command.java108
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;
+ }
+ }
+}