aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-25 23:57:04 +0100
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-25 23:57:04 +0100
commit7e09b5381593a23aeff0a0bab03926a8c1e2b87d (patch)
treec815e6de403ede869dde352c9d62eddab73b8551 /src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java
parente617124ba171bdf0a5aa8165c63715634de3f3c3 (diff)
downloadGT5-Unofficial-7e09b5381593a23aeff0a0bab03926a8c1e2b87d.tar.gz
GT5-Unofficial-7e09b5381593a23aeff0a0bab03926a8c1e2b87d.tar.bz2
GT5-Unofficial-7e09b5381593a23aeff0a0bab03926a8c1e2b87d.zip
+ Added 'DebugChunks' function.
+ Added ASM Config.
Diffstat (limited to 'src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java')
-rw-r--r--src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java b/src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java
new file mode 100644
index 0000000000..8e86bcdcd6
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/commands/CommandDebugChunks.java
@@ -0,0 +1,152 @@
+package gtPlusPlus.core.commands;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.minecraft.command.ICommand;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.world.World;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.Pair;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.preloader.ChunkDebugger;
+import gtPlusPlus.preloader.asm.AsmConfig;
+
+
+public class CommandDebugChunks implements ICommand
+{
+ private final List<String> aliases;
+
+ protected String fullEntityName;
+ protected Entity conjuredEntity;
+
+ public CommandDebugChunks(){
+ this.aliases = new ArrayList<>();
+ aliases.add("debugchunks");
+ aliases.add("DC");
+ }
+
+ @Override
+ public int compareTo(final Object o){
+ return 0;
+
+ }
+
+ @Override
+ public String getCommandName(){
+ return "DebugChunks";
+
+ }
+
+ @Override
+ public String getCommandUsage(final ICommandSender var1){
+ return "/DebugChunks";
+
+ }
+
+ @Override
+ public List<String> getCommandAliases(){
+ return this.aliases;
+
+ }
+
+ @Override
+ public void processCommand(final ICommandSender S, final String[] argString){
+ Logger.INFO("Debug Command");
+
+ final World W = S.getEntityWorld();
+ final EntityPlayer P = CommandUtils.getPlayer(S);
+
+ if (!AsmConfig.enableChunkDebugging) {
+ PlayerUtils.messagePlayer(P, "Chunk Debugging is disabled.");
+ return;
+ }
+
+
+ Map<String, Integer> aTicketCounter = new LinkedHashMap<String, Integer>();
+ for (Pair<String, String> f : ChunkDebugger.mChunkTicketsMap.values()) {
+ String aMod = f.getKey();
+ String aDim = f.getValue();
+ if (aMod != null) {
+ if (aTicketCounter.containsKey(aMod)) {
+ int aModTicketCount = aTicketCounter.get(aMod);
+ aModTicketCount++;
+ aTicketCounter.put(aMod, aModTicketCount);
+ }
+ else {
+ aTicketCounter.put(aMod, 1);
+ }
+ }
+ }
+ if (aTicketCounter.isEmpty()) {
+ PlayerUtils.messagePlayer(P, "No forced chunk tickets active.");
+ }
+ for (String x : aTicketCounter.keySet()) {
+ PlayerUtils.messagePlayer(P, x+" has "+aTicketCounter.get(x)+" tickets active.");
+ }
+
+
+ Map<String, Integer> aChunkCounter = new LinkedHashMap<String, Integer>();
+ for (Pair<String, String> f : ChunkDebugger.mChunksLoadedByModsMap.values()) {
+ String aMod = f.getKey();
+ String aDim = f.getValue();
+ if (aMod == null) {
+ aMod = "Bad ModId";
+ }
+
+ if (aMod != null) {
+ //PlayerUtils.messagePlayer(P, aMod+" has "+aDim+" active.");
+ if (aChunkCounter.containsKey(aMod)) {
+ int aModTicketCount = aChunkCounter.get(aMod);
+ aModTicketCount = aModTicketCount + 1;
+ aChunkCounter.put(aMod, aModTicketCount);
+ Logger.INFO("Counting +1 for "+aMod+", total of "+aModTicketCount);
+ }
+ else {
+ aChunkCounter.put(aMod, 1);
+ Logger.INFO("Counting +1 for "+aMod);
+ }
+ }
+ }
+ if (aChunkCounter.isEmpty()) {
+ PlayerUtils.messagePlayer(P, "No chunks force loaded.");
+ }
+ for (String x : aChunkCounter.keySet()) {
+ PlayerUtils.messagePlayer(P, x+" has "+aChunkCounter.get(x)+" chunks active.");
+ }
+
+ }
+
+ @Override
+ public boolean canCommandSenderUseCommand(final ICommandSender var1){
+ final EntityPlayer P = CommandUtils.getPlayer(var1);
+ if (P == null){
+ return false;
+ }
+ if (PlayerUtils.isPlayerOP(P)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public List<?> addTabCompletionOptions(final ICommandSender var1, final String[] var2){
+ return new ArrayList<>();
+ }
+
+ @Override
+ public boolean isUsernameIndex(final String[] var1, final int var2){
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean playerUsesCommand(final World W, final EntityPlayer P, final int cost){
+ return true;
+ }
+
+} \ No newline at end of file