From c50f58b48136ee52a0498f5c3b1a162c08ec4bec Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 23 Jan 2015 15:03:28 -0600 Subject: [PATCH] Added /mt AspectList which lists items/entities and their aspects. I also moved the thaumcraft research command to .command for standardization. --- src/main/java/modtweaker/ModTweaker.java | 4 +- .../mods/thaumcraft/ThaumcraftHelper.java | 13 +++- .../thaumcraft/commands/AspectLogger.java | 59 +++++++++++++++++++ .../{ => commands}/ResearchLogger.java | 2 +- 4 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/main/java/modtweaker/mods/thaumcraft/commands/AspectLogger.java rename src/main/java/modtweaker/mods/thaumcraft/research/{ => commands}/ResearchLogger.java (96%) diff --git a/src/main/java/modtweaker/ModTweaker.java b/src/main/java/modtweaker/ModTweaker.java index 4281aa3..c16d523 100644 --- a/src/main/java/modtweaker/ModTweaker.java +++ b/src/main/java/modtweaker/ModTweaker.java @@ -33,7 +33,8 @@ import modtweaker.mods.railcraft.Railcraft; import modtweaker.mods.tconstruct.MaterialLogger; import modtweaker.mods.tconstruct.TConstruct; import modtweaker.mods.thaumcraft.Thaumcraft; -import modtweaker.mods.thaumcraft.research.ResearchLogger; +import modtweaker.mods.thaumcraft.commands.AspectLogger; +import modtweaker.mods.thaumcraft.research.commands.ResearchLogger; import modtweaker.mods.thermalexpansion.ThermalExpansion; import modtweaker.util.TweakerPlugin; import net.minecraftforge.common.MinecraftForge; @@ -101,6 +102,7 @@ public class ModTweaker { if (TweakerPlugin.isLoaded("Thaumcraft")) { MineTweakerAPI.server.addMineTweakerCommand("research", new String[] { "/minetweaker research", "/minetweaker research [CATEGORY]", " Outputs a list of all category names in the game to the minetweaker log," + " or outputs a list of all research keys in a category to the log." }, new ResearchLogger()); + MineTweakerAPI.server.addMineTweakerCommand("aspectList", new String[] { "/minetweaker aspectList", " Outputs a list of all aspects registered to entities and items"}, new AspectLogger()); } if (TweakerPlugin.isLoaded("TConstruct")) { diff --git a/src/main/java/modtweaker/mods/thaumcraft/ThaumcraftHelper.java b/src/main/java/modtweaker/mods/thaumcraft/ThaumcraftHelper.java index d0dd41f..205a189 100644 --- a/src/main/java/modtweaker/mods/thaumcraft/ThaumcraftHelper.java +++ b/src/main/java/modtweaker/mods/thaumcraft/ThaumcraftHelper.java @@ -85,5 +85,16 @@ public class ThaumcraftHelper { ThaumcraftApi.scanEntities.remove(tag); } } - + + public static String aspectsToString(AspectList aspects) + { + System.out.println(aspects); + String output=""; + for(Aspect aspect : aspects.getAspectsSortedAmount()) + { + if(aspect!=null) + output+=aspect.getName()+" "+aspects.getAmount(aspect)+","; + } + return output; + } } diff --git a/src/main/java/modtweaker/mods/thaumcraft/commands/AspectLogger.java b/src/main/java/modtweaker/mods/thaumcraft/commands/AspectLogger.java new file mode 100644 index 0000000..1a87f65 --- /dev/null +++ b/src/main/java/modtweaker/mods/thaumcraft/commands/AspectLogger.java @@ -0,0 +1,59 @@ +package modtweaker.mods.thaumcraft.commands; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; + +import thaumcraft.api.ThaumcraftApi; +import thaumcraft.api.ThaumcraftApi.EntityTags; +import thaumcraft.api.ThaumcraftApi.EntityTagsNBT; +import thaumcraft.api.aspects.AspectList; +import net.minecraft.entity.EntityList; +import net.minecraft.item.Item; +import minetweaker.MineTweakerAPI; +import minetweaker.MineTweakerImplementationAPI; +import minetweaker.api.player.IPlayer; +import minetweaker.api.server.ICommandFunction; +import modtweaker.mods.thaumcraft.ThaumcraftHelper; + +public class AspectLogger implements ICommandFunction{ + + @Override + public void execute(String[] arguments, IPlayer player) { + List lines=new ArrayList(); + for(Entry entry : ThaumcraftApi.objectTags.entrySet()) + { + List itemList=new ArrayList(); + for(int i=0;i"); + } + lines.add(itemList.toString()+": "+ThaumcraftHelper.aspectsToString(entry.getValue())); + } + for (EntityTags tags : ThaumcraftApi.scanEntities) + { + List tagsList=new ArrayList(); + for(EntityTagsNBT tag : tags.nbts) + { + tagsList.add(tag.name+":"+tag.value); + } + String stringTags=""; + if(tags.nbts.length!=0) + stringTags=":"+tagsList.toString(); + lines.add("<"+tags.entityName+stringTags+">"+": "+ThaumcraftHelper.aspectsToString(tags.aspects)); + } + System.out.println("Aspects: " + lines.size()); + for (String line : lines) { + System.out.println("Aspect " + line); + MineTweakerAPI.logCommand(line); + } + + if (player != null) { + player.sendChat(MineTweakerImplementationAPI.platform.getMessage("List generated; see minetweaker.log in your minecraft dir")); + } + } +} diff --git a/src/main/java/modtweaker/mods/thaumcraft/research/ResearchLogger.java b/src/main/java/modtweaker/mods/thaumcraft/research/commands/ResearchLogger.java similarity index 96% rename from src/main/java/modtweaker/mods/thaumcraft/research/ResearchLogger.java rename to src/main/java/modtweaker/mods/thaumcraft/research/commands/ResearchLogger.java index 796548c..082a9ef 100644 --- a/src/main/java/modtweaker/mods/thaumcraft/research/ResearchLogger.java +++ b/src/main/java/modtweaker/mods/thaumcraft/research/commands/ResearchLogger.java @@ -1,4 +1,4 @@ -package modtweaker.mods.thaumcraft.research; +package modtweaker.mods.thaumcraft.research.commands; import static modtweaker.helpers.LogHelper.log; import static modtweaker.helpers.LogHelper.logPrinted;