diff --git a/src/main/java/modtweaker/ModTweaker.java b/src/main/java/modtweaker/ModTweaker.java index 9af23e1..96196e2 100644 --- a/src/main/java/modtweaker/ModTweaker.java +++ b/src/main/java/modtweaker/ModTweaker.java @@ -4,6 +4,9 @@ import minetweaker.MineTweakerAPI; import minetweaker.api.player.IPlayer; import minetweaker.api.server.ICommandFunction; import modtweaker.mods.botania.Botania; +import modtweaker.mods.botania.lexicon.commands.LexiconCategoryLogger; +import modtweaker.mods.botania.lexicon.commands.LexiconEntryLogger; +import modtweaker.mods.botania.lexicon.commands.LexiconPageLogger; import modtweaker.mods.exnihilo.ExNihilo; import modtweaker.mods.extendedworkbench.ExtendedWorkbench; import modtweaker.mods.factorization.Factorization; @@ -79,5 +82,12 @@ public class ModTweaker { if (TweakerPlugin.isLoaded("TConstruct")) { MineTweakerAPI.server.addMineTweakerCommand("materials", new String[] { "/minetweaker materials", " Outputs a list of all Tinker's Construct material names in the game to the minetweaker log" }, new MaterialLogger()); } + + if (TweakerPlugin.isLoaded("Botania")) { + MineTweakerAPI.server.addMineTweakerCommand("lexiconCategories", new String[] { "/minetweaker lexiconCategories", " Outputs a list of lexicon categories" }, new LexiconCategoryLogger()); + MineTweakerAPI.server.addMineTweakerCommand("lexiconEntries", new String[] { "/minetweaker lexiconEntries", "/minetweaker lexiconEntries [CATEGORY]", " Outputs a list of lexicon entries" }, new LexiconEntryLogger()); + MineTweakerAPI.server.addMineTweakerCommand("lexiconPages", new String[] { "/minetweaker lexiconPages", "/minetweaker lexiconPages [ENTRY]", " Outputs a list of lexicon pages for the entry" }, new LexiconPageLogger()); + } + } } diff --git a/src/main/java/modtweaker/mods/botania/Botania.java b/src/main/java/modtweaker/mods/botania/Botania.java index 861f755..d486742 100644 --- a/src/main/java/modtweaker/mods/botania/Botania.java +++ b/src/main/java/modtweaker/mods/botania/Botania.java @@ -3,6 +3,7 @@ package modtweaker.mods.botania; import minetweaker.MineTweakerAPI; import modtweaker.mods.botania.handlers.Apothecary; import modtweaker.mods.botania.handlers.ElvenTrade; +import modtweaker.mods.botania.handlers.Lexicon; import modtweaker.mods.botania.handlers.ManaInfusion; import modtweaker.mods.botania.handlers.Orechid; import modtweaker.mods.botania.handlers.RuneAltar; @@ -16,6 +17,7 @@ public class Botania { MineTweakerAPI.registerClass(ManaInfusion.class); MineTweakerAPI.registerClass(Orechid.class); MineTweakerAPI.registerClass(RuneAltar.class); + MineTweakerAPI.registerClass(Lexicon.class); } public static boolean isSubtile(ItemStack stack) { diff --git a/src/main/java/modtweaker/mods/botania/BotaniaHelper.java b/src/main/java/modtweaker/mods/botania/BotaniaHelper.java new file mode 100644 index 0000000..2b654d9 --- /dev/null +++ b/src/main/java/modtweaker/mods/botania/BotaniaHelper.java @@ -0,0 +1,41 @@ +package modtweaker.mods.botania; + +import java.util.ArrayList; +import java.util.List; + +import minetweaker.api.item.IIngredient; +import vazkii.botania.api.BotaniaAPI; +import vazkii.botania.api.lexicon.KnowledgeType; +import vazkii.botania.api.lexicon.LexiconCategory; +import vazkii.botania.api.lexicon.LexiconEntry; + +public class BotaniaHelper { + public static LexiconCategory findCatagory(String name) + { + List catagories=BotaniaAPI.getAllCategories(); + for(int i=0;i entries=BotaniaAPI.getAllEntries(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i recipes=new ArrayList(); + for(int i=0;i categories=BotaniaAPI.getAllCategories(); + System.out.println("Categories: " + categories.size()); + for (LexiconCategory category : categories) { + System.out.println("Category " + category.getUnlocalizedName()); + MineTweakerAPI.logCommand(category.getUnlocalizedName()); + } + + 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/botania/lexicon/commands/LexiconEntryLogger.java b/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconEntryLogger.java new file mode 100644 index 0000000..a581bb8 --- /dev/null +++ b/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconEntryLogger.java @@ -0,0 +1,36 @@ +package modtweaker.mods.botania.lexicon.commands; + +import java.util.Collections; +import java.util.List; + +import vazkii.botania.api.BotaniaAPI; +import vazkii.botania.api.lexicon.LexiconCategory; +import vazkii.botania.api.lexicon.LexiconEntry; +import minetweaker.MineTweakerAPI; +import minetweaker.MineTweakerImplementationAPI; +import minetweaker.api.player.IPlayer; +import minetweaker.api.server.ICommandFunction; +import modtweaker.mods.botania.BotaniaHelper; + +public class LexiconEntryLogger implements ICommandFunction{ + + @Override + public void execute(String[] arguments, IPlayer player) { + LexiconCategory category=null; + if(arguments.length>0) + category=BotaniaHelper.findCatagory(arguments[0]); + List entries=BotaniaAPI.getAllEntries(); + System.out.println("Entries: " + entries.size()); + for (LexiconEntry entry : entries) { + if(category==null || entry.category==category) + { + System.out.println("Entry " + entry.getUnlocalizedName()); + MineTweakerAPI.logCommand(entry.getUnlocalizedName()); + } + } + + 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/botania/lexicon/commands/LexiconPageLogger.java b/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconPageLogger.java new file mode 100644 index 0000000..baa49fc --- /dev/null +++ b/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconPageLogger.java @@ -0,0 +1,34 @@ +package modtweaker.mods.botania.lexicon.commands; + +import java.util.Collections; +import java.util.List; + +import vazkii.botania.api.BotaniaAPI; +import vazkii.botania.api.lexicon.LexiconCategory; +import vazkii.botania.api.lexicon.LexiconEntry; +import vazkii.botania.api.lexicon.LexiconPage; +import minetweaker.MineTweakerAPI; +import minetweaker.MineTweakerImplementationAPI; +import minetweaker.api.player.IPlayer; +import minetweaker.api.server.ICommandFunction; +import modtweaker.mods.botania.BotaniaHelper; + +public class LexiconPageLogger implements ICommandFunction{ + + @Override + public void execute(String[] arguments, IPlayer player) { + LexiconEntry entry=null; + if(arguments.length>0) + entry=BotaniaHelper.findEntry(arguments[0]); + List pages=entry.pages; + System.out.println("Pages: " + pages.size()); + for (LexiconPage page : pages) { + System.out.println("Page " + page.getUnlocalizedName() + " (" + page.getClass() + ")"); + MineTweakerAPI.logCommand(page.getUnlocalizedName() + " (" + page.getClass() + ")"); + } + + if (player != null) { + player.sendChat(MineTweakerImplementationAPI.platform.getMessage("List generated; see minetweaker.log in your minecraft dir")); + } + } +}