diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index ee5b1699a..4dba7fd44 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -149,21 +149,27 @@ public final class Registration public static void addBlockToRegister( Block b ) { if( blocksToRegister == null ) + { throw new IllegalStateException( "Past the registration phase already!" ); + } blocksToRegister.add( b ); } public static void addRecipeToRegister( IRecipe r ) { if( recipesToRegister == null ) + { throw new IllegalStateException( "Past the registration phase already!" ); + } recipesToRegister.add( r ); } public static void addItemToRegister( Item i ) { if( itemsToRegister == null ) + { throw new IllegalStateException( "Past the registration phase already!" ); + } itemsToRegister.add( i ); } diff --git a/src/main/java/appeng/debug/TileItemGen.java b/src/main/java/appeng/debug/TileItemGen.java index b59003742..5b9b8571c 100644 --- a/src/main/java/appeng/debug/TileItemGen.java +++ b/src/main/java/appeng/debug/TileItemGen.java @@ -82,7 +82,9 @@ public class TileItemGen extends AEBaseTile implements IInventory // Safeguard for crash ItemStack testStack = POSSIBLE_ITEMS.peek(); if( testStack.isEmpty() ) + { testStack = new ItemStack( Blocks.COBBLESTONE, 1 ); + } return testStack; } diff --git a/src/main/java/appeng/items/AEBaseItem.java b/src/main/java/appeng/items/AEBaseItem.java index 34965b59b..35dd7b9a6 100644 --- a/src/main/java/appeng/items/AEBaseItem.java +++ b/src/main/java/appeng/items/AEBaseItem.java @@ -59,7 +59,9 @@ public abstract class AEBaseItem extends Item public final void getSubItems( final CreativeTabs creativeTab, final NonNullList itemStacks ) { if( isInCreativeTab( creativeTab ) ) + { this.getCheckedSubItems( creativeTab, itemStacks ); + } } @Override diff --git a/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java b/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java index f6430e415..bb0e7ec16 100644 --- a/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java +++ b/src/main/java/appeng/parts/misc/ItemHandlerAdapter.java @@ -175,10 +175,14 @@ class ItemHandlerAdapter implements IMEInventory, IBaseMonitor cachedStacks.length ) + { return ItemStack.EMPTY; + } if( cachedStacks[pos] == null ) + { return ItemStack.EMPTY; + } return cachedStacks[pos]; } diff --git a/src/main/java/appeng/recipes/helpers/PartShapedCraftingFactory.java b/src/main/java/appeng/recipes/helpers/PartShapedCraftingFactory.java index 1ee3b7a28..cac0cbc94 100644 --- a/src/main/java/appeng/recipes/helpers/PartShapedCraftingFactory.java +++ b/src/main/java/appeng/recipes/helpers/PartShapedCraftingFactory.java @@ -67,9 +67,13 @@ public class PartShapedCraftingFactory extends ShapedOreRecipe for( Map.Entry entry : JsonUtils.getJsonObject( json, "key" ).entrySet() ) { if( entry.getKey().length() != 1 ) + { throw new JsonSyntaxException( "Invalid key entry: '" + entry.getKey() + "' is an invalid symbol (must be 1 character only)." ); + } if( " ".equals( entry.getKey() ) ) + { throw new JsonSyntaxException( "Invalid key entry: ' ' is a reserved symbol." ); + } ingMap.put( entry.getKey().toCharArray()[0], CraftingHelper.getIngredient( entry.getValue(), context ) ); } @@ -79,14 +83,18 @@ public class PartShapedCraftingFactory extends ShapedOreRecipe JsonArray patternJ = JsonUtils.getJsonArray( json, "pattern" ); if( patternJ.size() == 0 ) + { throw new JsonSyntaxException( "Invalid pattern: empty pattern not allowed" ); + } String[] pattern = new String[patternJ.size()]; for( int x = 0; x < pattern.length; ++x ) { String line = JsonUtils.getString( patternJ.get( x ), "pattern[" + x + "]" ); if( x > 0 && pattern[0].length() != line.length() ) + { throw new JsonSyntaxException( "Invalid pattern: each row must be the same width" ); + } pattern[x] = line; } @@ -106,14 +114,18 @@ public class PartShapedCraftingFactory extends ShapedOreRecipe { net.minecraft.item.crafting.Ingredient ing = ingMap.get( chr ); if( ing == null ) + { throw new JsonSyntaxException( "Pattern references symbol '" + chr + "' but it's not defined in the key" ); + } primer.input.set( x++, ing ); keys.remove( chr ); } } if( !keys.isEmpty() ) + { throw new JsonSyntaxException( "Key defines symbols that aren't used in pattern: " + keys ); + } JsonObject resultObject = (JsonObject) json.get( "result" ); int count = JsonUtils.getInt( resultObject, "count", 1 ); diff --git a/src/main/java/appeng/recipes/helpers/PartShapelessCraftingFactory.java b/src/main/java/appeng/recipes/helpers/PartShapelessCraftingFactory.java index bc4e60e0f..10ca687b3 100644 --- a/src/main/java/appeng/recipes/helpers/PartShapelessCraftingFactory.java +++ b/src/main/java/appeng/recipes/helpers/PartShapelessCraftingFactory.java @@ -60,10 +60,14 @@ public class PartShapelessCraftingFactory extends ShapelessOreRecipe NonNullList ings = NonNullList.create(); for( JsonElement ele : JsonUtils.getJsonArray( json, "ingredients" ) ) + { ings.add( CraftingHelper.getIngredient( ele, context ) ); + } if( ings.isEmpty() ) + { throw new JsonParseException( "No ingredients for shapeless recipe" ); + } JsonObject resultObject = (JsonObject) json.get( "result" ); int count = JsonUtils.getInt( resultObject, "count", 1 ); diff --git a/src/main/java/appeng/tile/inventory/AppEngInternalInventory.java b/src/main/java/appeng/tile/inventory/AppEngInternalInventory.java index 385a340ae..ba9a314ed 100644 --- a/src/main/java/appeng/tile/inventory/AppEngInternalInventory.java +++ b/src/main/java/appeng/tile/inventory/AppEngInternalInventory.java @@ -116,7 +116,9 @@ public class AppEngInternalInventory implements IInventory, Iterable private ItemStack getOldStack( int slot ) { if( this.inv[slot] == null ) + { return ItemStack.EMPTY; + } return this.inv[slot]; }