From df85abd8c4bf2857adeda34b14e98309b35ef474 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 20 Jan 2015 18:02:21 -0600 Subject: [PATCH] Improved error handling for the lexicon commands and functions --- .../mods/botania/handlers/Lexicon.java | 136 ++++++++++++++++-- .../lexicon/commands/LexiconEntryLogger.java | 7 + .../lexicon/commands/LexiconPageLogger.java | 17 ++- 3 files changed, 144 insertions(+), 16 deletions(-) diff --git a/src/main/java/modtweaker/mods/botania/handlers/Lexicon.java b/src/main/java/modtweaker/mods/botania/handlers/Lexicon.java index 8c05724..d033f0d 100644 --- a/src/main/java/modtweaker/mods/botania/handlers/Lexicon.java +++ b/src/main/java/modtweaker/mods/botania/handlers/Lexicon.java @@ -64,8 +64,16 @@ public class Lexicon { @ZenMethod public static void addCraftingPage(String name, String entry, int page_number, IItemStack[] outputs, IIngredient[][][] inputs) { LexiconEntry lexiconEntry=BotaniaHelper.findEntry(entry); + if(lexiconEntry==null) + { + MineTweakerAPI.getLogger().logError("Cannot find lexicon entry "+entry); + return; + } if(outputs.length!=inputs.length) - throw new IllegalArgumentException("Length of input and output must match"); + { + MineTweakerAPI.getLogger().logError("Length of input and output must match"); + return; + } List 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;i0) + { category=BotaniaHelper.findCatagory(arguments[0]); + if(category==null) + { + MineTweakerAPI.getLogger().logError("Category not found (" + arguments[0]+")"); + return; + } + } List entries=BotaniaAPI.getAllEntries(); System.out.println("Entries: " + entries.size()); for (LexiconEntry entry : entries) { diff --git a/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconPageLogger.java b/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconPageLogger.java index baa49fc..a4d3b0d 100644 --- a/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconPageLogger.java +++ b/src/main/java/modtweaker/mods/botania/lexicon/commands/LexiconPageLogger.java @@ -1,5 +1,6 @@ package modtweaker.mods.botania.lexicon.commands; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -19,9 +20,23 @@ public class LexiconPageLogger implements ICommandFunction{ public void execute(String[] arguments, IPlayer player) { LexiconEntry entry=null; if(arguments.length>0) + { entry=BotaniaHelper.findEntry(arguments[0]); - List pages=entry.pages; + if(entry==null) + { + MineTweakerAPI.getLogger().logError("Entry not found (" + arguments[0]+")"); + return; + } + } + List entries; + List pages=new ArrayList(); + if(entry!=null) + pages.addAll(entry.pages); + else + for (LexiconEntry current_Entry : BotaniaAPI.getAllEntries()) + pages.addAll(current_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() + ")");