diff --git a/src/main/java/net/minecraftforge/client/event/RenderItemInFrameEvent.java b/src/main/java/net/minecraftforge/client/event/RenderItemInFrameEvent.java index dd49c1db1..dfea1b23e 100644 --- a/src/main/java/net/minecraftforge/client/event/RenderItemInFrameEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RenderItemInFrameEvent.java @@ -25,6 +25,8 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; +import javax.annotation.Nonnull; + /** * This event is called when an item is rendered in an item frame. * @@ -44,6 +46,7 @@ public class RenderItemInFrameEvent extends Event renderer = renderItemFrame; } + @Nonnull public ItemStack getItem() { return item; diff --git a/src/main/java/net/minecraftforge/client/event/RenderSpecificHandEvent.java b/src/main/java/net/minecraftforge/client/event/RenderSpecificHandEvent.java index 2ca18893c..072dad814 100644 --- a/src/main/java/net/minecraftforge/client/event/RenderSpecificHandEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RenderSpecificHandEvent.java @@ -5,6 +5,7 @@ import net.minecraft.util.EnumHand; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; +import javax.annotation.Nonnull; import javax.annotation.Nullable; /** @@ -23,7 +24,7 @@ public class RenderSpecificHandEvent extends Event private final float equipProgress; private final ItemStack stack; - public RenderSpecificHandEvent(EnumHand hand, float partialTicks, float interpolatedPitch, float swingProgress, float equipProgress, ItemStack stack) + public RenderSpecificHandEvent(EnumHand hand, float partialTicks, float interpolatedPitch, float swingProgress, float equipProgress, @Nonnull ItemStack stack) { this.hand = hand; this.partialTicks = partialTicks; @@ -70,7 +71,7 @@ public class RenderSpecificHandEvent extends Event /** * @return The ItemStack to be rendered, or null. */ - @Nullable + @Nonnull public ItemStack getItemStack() { return stack; diff --git a/src/main/java/net/minecraftforge/client/event/RenderTooltipEvent.java b/src/main/java/net/minecraftforge/client/event/RenderTooltipEvent.java index 858bec78b..34eef9183 100644 --- a/src/main/java/net/minecraftforge/client/event/RenderTooltipEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RenderTooltipEvent.java @@ -32,7 +32,7 @@ public abstract class RenderTooltipEvent extends Event protected int y; protected FontRenderer fr; - public RenderTooltipEvent(@Nullable ItemStack stack, @Nonnull List lines, int x, int y, @Nonnull FontRenderer fr) + public RenderTooltipEvent(@Nonnull ItemStack stack, @Nonnull List lines, int x, int y, @Nonnull FontRenderer fr) { this.stack = stack; this.lines = Collections.unmodifiableList(lines); // Leave editing to ItemTooltipEvent @@ -44,7 +44,7 @@ public abstract class RenderTooltipEvent extends Event /** * @return The stack which the tooltip is being rendered for. As tooltips can be drawn without itemstacks, this return is {@link Nullable}. */ - @Nullable + @Nonnull public ItemStack getStack() { return stack; diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 699b6e21d..60b790f99 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -142,6 +142,7 @@ public class ForgeHooks } static final List seedList = new ArrayList(); + @Nonnull public static ItemStack getGrassSeed(Random rand, int fortune) { SeedEntry entry = WeightedRandom.getRandomItem(rand, seedList); @@ -207,7 +208,7 @@ public class ForgeHooks } } - public static boolean isToolEffective(IBlockAccess world, BlockPos pos, ItemStack stack) + public static boolean isToolEffective(IBlockAccess world, BlockPos pos, @Nonnull ItemStack stack) { IBlockState state = world.getBlockState(pos); state = state.getBlock().getActualState(state, world, pos); @@ -792,7 +793,7 @@ public class ForgeHooks return event.isCanceled() ? -1 : event.getExpToDrop(); } - public static EnumActionResult onPlaceItemIntoWorld(ItemStack itemstack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) + public static EnumActionResult onPlaceItemIntoWorld(@Nonnull ItemStack itemstack, EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) { // handle all placement events here int meta = itemstack.getItemDamage(); @@ -883,7 +884,7 @@ public class ForgeHooks return ret; } - public static boolean onAnvilChange(ContainerRepair container, ItemStack left, ItemStack right, IInventory outputSlot, String name, int baseCost) + public static boolean onAnvilChange(ContainerRepair container, @Nonnull ItemStack left, @Nonnull ItemStack right, IInventory outputSlot, String name, int baseCost) { AnvilUpdateEvent e = new AnvilUpdateEvent(left, right, name, baseCost); if (MinecraftForge.EVENT_BUS.post(e)) return false; @@ -1061,7 +1062,7 @@ public class ForgeHooks MinecraftForge.EVENT_BUS.post(new PlayerInteractEvent.RightClickEmpty(player, hand)); } - public static void onEmptyLeftClick(EntityPlayer player, ItemStack stack) + public static void onEmptyLeftClick(EntityPlayer player, @Nonnull ItemStack stack) { MinecraftForge.EVENT_BUS.post(new PlayerInteractEvent.LeftClickEmpty(player, stack)); } diff --git a/src/main/java/net/minecraftforge/common/IShearable.java b/src/main/java/net/minecraftforge/common/IShearable.java index a43955f59..13b1a7ae4 100644 --- a/src/main/java/net/minecraftforge/common/IShearable.java +++ b/src/main/java/net/minecraftforge/common/IShearable.java @@ -25,6 +25,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; +import javax.annotation.Nonnull; + /** * * This allows for mods to create there own Shear-like items @@ -44,7 +46,7 @@ public interface IShearable * @param pos Block's position in world. * @return If this is shearable, and onSheared should be called. */ - public boolean isShearable(ItemStack item, IBlockAccess world, BlockPos pos); + public boolean isShearable(@Nonnull ItemStack item, IBlockAccess world, BlockPos pos); /** * Performs the shear function on this object. @@ -64,5 +66,5 @@ public interface IShearable * @param fortune The fortune level of the shears being used * @return A ArrayList containing all items from this shearing. Possible to be null. */ - public List onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune); + public List onSheared(@Nonnull ItemStack item, IBlockAccess world, BlockPos pos, int fortune); } diff --git a/src/main/java/net/minecraftforge/common/ISpecialArmor.java b/src/main/java/net/minecraftforge/common/ISpecialArmor.java index 77cf3e4de..03204e7cf 100644 --- a/src/main/java/net/minecraftforge/common/ISpecialArmor.java +++ b/src/main/java/net/minecraftforge/common/ISpecialArmor.java @@ -34,6 +34,8 @@ import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.util.NonNullList; +import javax.annotation.Nonnull; + /** * This interface is to be implemented by ItemArmor classes. It will allow to * modify computation of damage and health loss. Computation will be called @@ -60,7 +62,7 @@ public interface ISpecialArmor * @param slot The armor slot the item is in. * @return A ArmorProperties instance holding information about how the armor effects damage. */ - public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot); + public ArmorProperties getProperties(EntityLivingBase player, @Nonnull ItemStack armor, DamageSource source, double damage, int slot); /** * Get the displayed effective armor. @@ -70,7 +72,7 @@ public interface ISpecialArmor * @param slot The armor slot the item is in. * @return The number of armor points for display, 2 per shield. */ - public abstract int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot); + public abstract int getArmorDisplay(EntityPlayer player, @Nonnull ItemStack armor, int slot); /** * Applies damage to the ItemStack. The mod is responsible for reducing the @@ -84,7 +86,7 @@ public interface ISpecialArmor * @param damage The amount of damage being applied to the armor * @param slot The armor slot the item is in. */ - public abstract void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot); + public abstract void damageArmor(EntityLivingBase entity, @Nonnull ItemStack stack, DamageSource source, int damage, int slot); public static class ArmorProperties implements Comparable { diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index e65e5118f..146aa439d 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -41,6 +41,8 @@ import net.minecraftforge.common.ForgeHooks.SeedEntry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.oredict.OreDictionary; +import javax.annotation.Nonnull; + public class MinecraftForge { /** @@ -67,7 +69,7 @@ public class MinecraftForge * * Note: These functions may be going away soon, we're looking into loot tables.... */ - public static void addGrassSeed(ItemStack seed, int weight) + public static void addGrassSeed(@Nonnull ItemStack seed, int weight) { addGrassSeed(new SeedEntry(seed, weight)); } diff --git a/src/main/java/net/minecraftforge/common/brewing/AbstractBrewingRecipe.java b/src/main/java/net/minecraftforge/common/brewing/AbstractBrewingRecipe.java index 369703714..daf5b66fc 100644 --- a/src/main/java/net/minecraftforge/common/brewing/AbstractBrewingRecipe.java +++ b/src/main/java/net/minecraftforge/common/brewing/AbstractBrewingRecipe.java @@ -22,23 +22,20 @@ package net.minecraftforge.common.brewing; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; +import javax.annotation.Nonnull; + public abstract class AbstractBrewingRecipe implements IBrewingRecipe { private final ItemStack input; private final T ingredient; private final ItemStack output; - protected AbstractBrewingRecipe(ItemStack input, T ingredient, ItemStack output) + protected AbstractBrewingRecipe(@Nonnull ItemStack input, @Nonnull T ingredient, @Nonnull ItemStack output) { this.input = input; this.ingredient = ingredient; this.output = output; - if (this.getInput() == null || this.getIngredient() == null || this.getOutput() == null) - { - throw new IllegalArgumentException("A brewing recipe cannot have a null parameter."); - } - if (this.getInput().getMaxStackSize() != 1) { throw new IllegalArgumentException("Inputs must have a max size of 1 just like water bottles. Brewing Stands override the input with the output when the brewing is done, items that stack would end up getting lost."); @@ -46,27 +43,31 @@ public abstract class AbstractBrewingRecipe implements IBrewingRecipe { } @Override - public boolean isInput(ItemStack stack) + public boolean isInput(@Nonnull ItemStack stack) { return OreDictionary.itemMatches(this.getInput(), stack, false); } @Override - public ItemStack getOutput(ItemStack input, ItemStack ingredient) + @Nonnull + public ItemStack getOutput(@Nonnull ItemStack input, @Nonnull ItemStack ingredient) { - return isInput(input) && isIngredient(ingredient) ? getOutput().copy() : null; + return isInput(input) && isIngredient(ingredient) ? getOutput().copy() : ItemStack.field_190927_a; } + @Nonnull public ItemStack getInput() { return input; } + @Nonnull public T getIngredient() { return ingredient; } + @Nonnull public ItemStack getOutput() { return output; diff --git a/src/main/java/net/minecraftforge/common/brewing/BrewingOreRecipe.java b/src/main/java/net/minecraftforge/common/brewing/BrewingOreRecipe.java index 92b04ff45..d17e54d46 100644 --- a/src/main/java/net/minecraftforge/common/brewing/BrewingOreRecipe.java +++ b/src/main/java/net/minecraftforge/common/brewing/BrewingOreRecipe.java @@ -23,20 +23,22 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; +import javax.annotation.Nonnull; + public class BrewingOreRecipe extends AbstractBrewingRecipe> { - public BrewingOreRecipe(ItemStack input, String ingredient, ItemStack output) + public BrewingOreRecipe(@Nonnull ItemStack input, @Nonnull String ingredient, @Nonnull ItemStack output) { super(input, OreDictionary.getOres(ingredient), output); } - public BrewingOreRecipe(ItemStack input, List ingredient, ItemStack output) + public BrewingOreRecipe(@Nonnull ItemStack input, @Nonnull List ingredient, @Nonnull ItemStack output) { super(input, ingredient, output); } @Override - public boolean isIngredient(ItemStack stack) + public boolean isIngredient(@Nonnull ItemStack stack) { for (ItemStack target : this.getIngredient()) { diff --git a/src/main/java/net/minecraftforge/common/brewing/BrewingRecipe.java b/src/main/java/net/minecraftforge/common/brewing/BrewingRecipe.java index b8024a35c..f1e22d4f0 100644 --- a/src/main/java/net/minecraftforge/common/brewing/BrewingRecipe.java +++ b/src/main/java/net/minecraftforge/common/brewing/BrewingRecipe.java @@ -22,15 +22,17 @@ package net.minecraftforge.common.brewing; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; +import javax.annotation.Nonnull; + public class BrewingRecipe extends AbstractBrewingRecipe { - public BrewingRecipe(ItemStack input, ItemStack ingredient, ItemStack output) + public BrewingRecipe(@Nonnull ItemStack input, @Nonnull ItemStack ingredient, @Nonnull ItemStack output) { super(input, ingredient, output); } @Override - public boolean isIngredient(ItemStack stack) + public boolean isIngredient(@Nonnull ItemStack stack) { return OreDictionary.itemMatches(this.getIngredient(), stack, false); } diff --git a/src/main/java/net/minecraftforge/common/brewing/BrewingRecipeRegistry.java b/src/main/java/net/minecraftforge/common/brewing/BrewingRecipeRegistry.java index ad04b39b9..0119ece51 100644 --- a/src/main/java/net/minecraftforge/common/brewing/BrewingRecipeRegistry.java +++ b/src/main/java/net/minecraftforge/common/brewing/BrewingRecipeRegistry.java @@ -50,7 +50,7 @@ public class BrewingRecipeRegistry { * done. * @return true if the recipe was added. */ - public static boolean addRecipe(ItemStack input, ItemStack ingredient, ItemStack output) + public static boolean addRecipe(@Nonnull ItemStack input, @Nonnull ItemStack ingredient, @Nonnull ItemStack output) { return addRecipe(new BrewingRecipe(input, ingredient, output)); } @@ -69,7 +69,7 @@ public class BrewingRecipeRegistry { * done. * @return true if the recipe was added. */ - public static boolean addRecipe(ItemStack input, String ingredient, ItemStack output) + public static boolean addRecipe(@Nonnull ItemStack input, @Nonnull String ingredient, @Nonnull ItemStack output) { return addRecipe(new BrewingOreRecipe(input, ingredient, output)); } @@ -85,10 +85,10 @@ public class BrewingRecipeRegistry { /** * Returns the output ItemStack obtained by brewing the passed input and - * ingredient. Null if no matches are found. + * ingredient. */ @Nonnull - public static ItemStack getOutput(@Nonnull ItemStack input, ItemStack ingredient) + public static ItemStack getOutput(@Nonnull ItemStack input, @Nonnull ItemStack ingredient) { if (input.func_190926_b() || input.getMaxStackSize() != 1 || input.func_190916_E() != 1) return ItemStack.field_190927_a; if (ingredient.func_190926_b()) return ItemStack.field_190927_a; @@ -107,7 +107,7 @@ public class BrewingRecipeRegistry { /** * Returns true if the passed input and ingredient have an output */ - public static boolean hasOutput(ItemStack input, ItemStack ingredient) + public static boolean hasOutput(@Nonnull ItemStack input, @Nonnull ItemStack ingredient) { return !getOutput(input, ingredient).func_190926_b(); } diff --git a/src/main/java/net/minecraftforge/common/brewing/IBrewingRecipe.java b/src/main/java/net/minecraftforge/common/brewing/IBrewingRecipe.java index 598c6fb7a..8aa4027fe 100644 --- a/src/main/java/net/minecraftforge/common/brewing/IBrewingRecipe.java +++ b/src/main/java/net/minecraftforge/common/brewing/IBrewingRecipe.java @@ -21,6 +21,8 @@ package net.minecraftforge.common.brewing; import net.minecraft.item.ItemStack; +import javax.annotation.Nonnull; + public interface IBrewingRecipe { /** @@ -28,18 +30,18 @@ public interface IBrewingRecipe { * being the item that goes in one of the three bottom slots of the brewing * stand (e.g: water bottle) */ - public boolean isInput(ItemStack input); + public boolean isInput(@Nonnull ItemStack input); /** * Returns true if the passed ItemStack is an ingredient for this recipe. * "Ingredient" being the item that goes in the top slot of the brewing * stand (e.g: nether wart) */ - public boolean isIngredient(ItemStack ingredient); + public boolean isIngredient(@Nonnull ItemStack ingredient); /** * Returns the output when the passed input is brewed with the passed * ingredient. Null if invalid input or ingredient. */ - public ItemStack getOutput(ItemStack input, ItemStack ingredient); + public ItemStack getOutput(@Nonnull ItemStack input, @Nonnull ItemStack ingredient); } \ No newline at end of file diff --git a/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java b/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java index 87c1a7f22..9009cc151 100644 --- a/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java +++ b/src/main/java/net/minecraftforge/common/brewing/VanillaBrewingRecipe.java @@ -24,6 +24,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionHelper; +import javax.annotation.Nonnull; + /** * Used in BrewingRecipeRegistry to maintain the vanilla behaviour. * @@ -35,7 +37,7 @@ public class VanillaBrewingRecipe implements IBrewingRecipe { * Code adapted from TileEntityBrewingStand.isItemValidForSlot(int index, ItemStack stack) */ @Override - public boolean isInput(ItemStack stack) + public boolean isInput(@Nonnull ItemStack stack) { Item item = stack.getItem(); return item == Items.POTIONITEM || item == Items.SPLASH_POTION || item == Items.LINGERING_POTION || item == Items.GLASS_BOTTLE; @@ -45,7 +47,7 @@ public class VanillaBrewingRecipe implements IBrewingRecipe { * Code adapted from TileEntityBrewingStand.isItemValidForSlot(int index, ItemStack stack) */ @Override - public boolean isIngredient(ItemStack stack) + public boolean isIngredient(@Nonnull ItemStack stack) { return PotionHelper.isReagent(stack); } @@ -56,18 +58,18 @@ public class VanillaBrewingRecipe implements IBrewingRecipe { * or if the new potion is a splash potion when the old one wasn't. */ @Override - public ItemStack getOutput(ItemStack input, ItemStack ingredient) + public ItemStack getOutput(@Nonnull ItemStack input, @Nonnull ItemStack ingredient) { - if (ingredient != null && input != null && isIngredient(ingredient)) + if (!input.func_190926_b() && !ingredient.func_190926_b() && isIngredient(ingredient)) { ItemStack result = PotionHelper.doReaction(ingredient, input); if (result != input) { return result; } - return null; + return ItemStack.field_190927_a; } - return null; + return ItemStack.field_190927_a; } } diff --git a/src/main/java/net/minecraftforge/event/AttachCapabilitiesEvent.java b/src/main/java/net/minecraftforge/event/AttachCapabilitiesEvent.java index eb0dcc414..0c709560f 100644 --- a/src/main/java/net/minecraftforge/event/AttachCapabilitiesEvent.java +++ b/src/main/java/net/minecraftforge/event/AttachCapabilitiesEvent.java @@ -28,6 +28,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.fml.common.eventhandler.GenericEvent; +import javax.annotation.Nonnull; + /** * Fired whenever an object with Capabilities support {currently TileEntity/Item/Entity) * is created. Allowing for the attachment of arbitrary capability providers. @@ -126,10 +128,10 @@ public class AttachCapabilitiesEvent extends GenericEvent */ public static class Item extends AttachCapabilitiesEvent { - @Deprecated private final net.minecraft.item.ItemStack stack; + @Deprecated private final net.minecraft.item.Item item; - public Item(net.minecraft.item.Item item, net.minecraft.item.ItemStack stack) + public Item(net.minecraft.item.Item item, @Nonnull net.minecraft.item.ItemStack stack) { super(net.minecraft.item.Item.class, item); this.item = item; @@ -140,6 +142,7 @@ public class AttachCapabilitiesEvent extends GenericEvent { return this.item; } + @Nonnull public net.minecraft.item.ItemStack getItemStack() { return this.stack; diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index 638c4e0d1..92c22bca7 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -398,9 +398,9 @@ public class ForgeEventFactory return event; } - public static int onItemExpire(EntityItem entity, ItemStack item) + public static int onItemExpire(EntityItem entity, @Nonnull ItemStack item) { - if (item == null) return -1; + if (item.func_190926_b()) return -1; ItemExpireEvent event = new ItemExpireEvent(entity, (item.func_190926_b() ? 6000 : item.getItem().getEntityLifespan(item, entity.worldObj))); if (!MinecraftForge.EVENT_BUS.post(event)) return -1; return event.getExtraLife(); diff --git a/src/main/java/net/minecraftforge/event/brewing/PlayerBrewedPotionEvent.java b/src/main/java/net/minecraftforge/event/brewing/PlayerBrewedPotionEvent.java index 5c3e80edc..b5f2c4cd2 100644 --- a/src/main/java/net/minecraftforge/event/brewing/PlayerBrewedPotionEvent.java +++ b/src/main/java/net/minecraftforge/event/brewing/PlayerBrewedPotionEvent.java @@ -23,6 +23,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.player.PlayerEvent; +import javax.annotation.Nonnull; + /** * This event is called when a player picks up a potion from a brewing stand. */ @@ -30,7 +32,7 @@ public class PlayerBrewedPotionEvent extends PlayerEvent { private final ItemStack stack; - public PlayerBrewedPotionEvent(EntityPlayer player, ItemStack stack) + public PlayerBrewedPotionEvent(EntityPlayer player, @Nonnull ItemStack stack) { super(player); this.stack = stack; @@ -39,6 +41,7 @@ public class PlayerBrewedPotionEvent extends PlayerEvent /** * The ItemStack of the potion. */ + @Nonnull public ItemStack getStack() { return stack; diff --git a/src/main/java/net/minecraftforge/event/brewing/PotionBrewEvent.java b/src/main/java/net/minecraftforge/event/brewing/PotionBrewEvent.java index 3d34d4754..dfab66142 100644 --- a/src/main/java/net/minecraftforge/event/brewing/PotionBrewEvent.java +++ b/src/main/java/net/minecraftforge/event/brewing/PotionBrewEvent.java @@ -27,6 +27,8 @@ import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.Event.HasResult; +import javax.annotation.Nonnull; + public class PotionBrewEvent extends Event { @@ -37,13 +39,14 @@ public class PotionBrewEvent extends Event this.stacks = stacks; } + @Nonnull public ItemStack getItem(int index) { - if (index >= stacks.size()) return null; + if (index >= stacks.size()) return ItemStack.field_190927_a; return stacks.get(index); } - public void setItem(int index, ItemStack stack) + public void setItem(int index, @Nonnull ItemStack stack) { if (index < stacks.size()) { diff --git a/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java b/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java index 2a9de6b0b..7f5cef50e 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java @@ -23,18 +23,21 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.eventhandler.Cancelable; +import javax.annotation.Nonnull; + public abstract class LivingEntityUseItemEvent extends LivingEvent { private final ItemStack item; private int duration; - private LivingEntityUseItemEvent(EntityLivingBase entity, ItemStack item, int duration) + private LivingEntityUseItemEvent(EntityLivingBase entity, @Nonnull ItemStack item, int duration) { super(entity); this.item = item; this.setDuration(duration); } + @Nonnull public ItemStack getItem() { return item; @@ -64,7 +67,7 @@ public abstract class LivingEntityUseItemEvent extends LivingEvent @Cancelable public static class Start extends LivingEntityUseItemEvent { - public Start(EntityLivingBase entity, ItemStack item, int duration) + public Start(EntityLivingBase entity, @Nonnull ItemStack item, int duration) { super(entity, item, duration); } @@ -79,7 +82,7 @@ public abstract class LivingEntityUseItemEvent extends LivingEvent @Cancelable public static class Tick extends LivingEntityUseItemEvent { - public Tick(EntityLivingBase entity, ItemStack item, int duration) + public Tick(EntityLivingBase entity, @Nonnull ItemStack item, int duration) { super(entity, item, duration); } @@ -100,7 +103,7 @@ public abstract class LivingEntityUseItemEvent extends LivingEvent @Cancelable public static class Stop extends LivingEntityUseItemEvent { - public Stop(EntityLivingBase entity, ItemStack item, int duration) + public Stop(EntityLivingBase entity, @Nonnull ItemStack item, int duration) { super(entity, item, duration); } @@ -119,18 +122,19 @@ public abstract class LivingEntityUseItemEvent extends LivingEvent public static class Finish extends LivingEntityUseItemEvent { private ItemStack result; - public Finish(EntityLivingBase entity, ItemStack item, int duration, ItemStack result) + public Finish(EntityLivingBase entity, @Nonnull ItemStack item, int duration, @Nonnull ItemStack result) { super(entity, item, duration); this.setResultStack(result); } + @Nonnull public ItemStack getResultStack() { return result; } - public void setResultStack(ItemStack result) + public void setResultStack(@Nonnull ItemStack result) { this.result = result; } diff --git a/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java b/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java index 71718d2c4..e423d18df 100644 --- a/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/minecart/MinecartInteractEvent.java @@ -30,6 +30,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; +import javax.annotation.Nonnull; + /** * MinecartInteractEvent is fired when a player interacts with a minecart.
* This event is fired whenever a player interacts with a minecart in @@ -62,6 +64,7 @@ public class MinecartInteractEvent extends MinecartEvent } public EntityPlayer getPlayer() { return player; } + @Nonnull public ItemStack getItem() { return player.getHeldItem(hand); } public EnumHand getHand() { return hand; } } diff --git a/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java b/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java index 80d118c1d..960e8b3d4 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java @@ -22,6 +22,8 @@ package net.minecraftforge.event.entity.player; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import javax.annotation.Nonnull; + /** * Fired when the player removes a "repaired" item from the Anvil's Output slot. * @@ -37,7 +39,7 @@ public class AnvilRepairEvent extends PlayerEvent private final ItemStack output; // Set this to set the output stack private float breakChance; // Anvil's chance to break (reduced by 1 durability) when this is complete. Default is 12% (0.12f) - public AnvilRepairEvent(EntityPlayer player, ItemStack left, ItemStack right, ItemStack output) + public AnvilRepairEvent(EntityPlayer player, @Nonnull ItemStack left, @Nonnull ItemStack right, ItemStack output) { super(player); this.output = output; @@ -69,18 +71,21 @@ public class AnvilRepairEvent extends PlayerEvent * Get the output result from the anvil * @return the output */ + @Nonnull public ItemStack getItemResult() { return output; } /** * Get the first item input into the anvil * @return the first input slot */ + @Nonnull public ItemStack getItemInput() { return left; } /** * Get the second item input into the anvil * @return the second input slot */ + @Nonnull public ItemStack getIngredientInput() { return right; } public float getBreakChance() { return breakChance; } diff --git a/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java b/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java index f895252b6..82e198281 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java @@ -27,6 +27,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import javax.annotation.Nonnull; + /** * ArrowLooseEvent is fired when a player stops using a bow.
* This event is fired whenever a player stops using a bow in @@ -50,7 +52,7 @@ public class ArrowLooseEvent extends PlayerEvent private final boolean hasAmmo; private int charge; - public ArrowLooseEvent(EntityPlayer player, ItemStack bow, World world, int charge, boolean hasAmmo) + public ArrowLooseEvent(EntityPlayer player, @Nonnull ItemStack bow, World world, int charge, boolean hasAmmo) { super(player); this.bow = bow; @@ -59,6 +61,7 @@ public class ArrowLooseEvent extends PlayerEvent this.hasAmmo = hasAmmo; } + @Nonnull public ItemStack getBow() { return this.bow; } public World getWorld() { return this.world; } public boolean hasAmmo() { return this.hasAmmo; } diff --git a/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java b/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java index efffe3fff..af78d6ca1 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java @@ -27,6 +27,8 @@ import net.minecraft.util.EnumHand; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; +import javax.annotation.Nonnull; + /** * ArrowNockEvent is fired when a player begins using a bow.
* This event is fired whenever a player begins using a bow in @@ -42,7 +44,7 @@ public class ArrowNockEvent extends PlayerEvent private final boolean hasAmmo; private ActionResult action; - public ArrowNockEvent(EntityPlayer player, ItemStack item, EnumHand hand, World world, boolean hasAmmo) + public ArrowNockEvent(EntityPlayer player, @Nonnull ItemStack item, EnumHand hand, World world, boolean hasAmmo) { super(player); this.bow = item; @@ -51,6 +53,7 @@ public class ArrowNockEvent extends PlayerEvent this.hasAmmo = hasAmmo; } + @Nonnull public ItemStack getBow() { return this.bow; } public World getWorld() { return this.world; } public EnumHand getHand() { return this.hand; } diff --git a/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java b/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java index 604463ba1..482c5edea 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java @@ -26,6 +26,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; +import javax.annotation.Nonnull; + /** * This event is fired when a player attempts to use a Empty bucket, it * can be canceled to completely prevent any further processing. @@ -46,7 +48,7 @@ public class FillBucketEvent extends PlayerEvent private ItemStack result; - public FillBucketEvent(EntityPlayer player, ItemStack current, World world, RayTraceResult target) + public FillBucketEvent(EntityPlayer player, @Nonnull ItemStack current, World world, RayTraceResult target) { super(player); this.current = current; @@ -54,9 +56,11 @@ public class FillBucketEvent extends PlayerEvent this.target = target; } + @Nonnull public ItemStack getEmptyBucket() { return this.current; } public World getWorld(){ return this.world; } public RayTraceResult getTarget() { return this.target; } + @Nonnull public ItemStack getFilledBucket() { return this.result; } - public void setFilledBucket(ItemStack bucket) { this.result = bucket; } + public void setFilledBucket(@Nonnull ItemStack bucket) { this.result = bucket; } } diff --git a/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java b/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java index 8f0392c59..4ab614d0f 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java @@ -23,16 +23,19 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import javax.annotation.Nonnull; + public class ItemTooltipEvent extends PlayerEvent { private final boolean showAdvancedItemTooltips; + @Nonnull private final ItemStack itemStack; private final List toolTip; /** * This event is fired in {@link ItemStack#getTooltip(EntityPlayer, boolean)}, which in turn is called from it's respective GUIContainer. */ - public ItemTooltipEvent(ItemStack itemStack, EntityPlayer entityPlayer, List toolTip, boolean showAdvancedItemTooltips) + public ItemTooltipEvent(@Nonnull ItemStack itemStack, EntityPlayer entityPlayer, List toolTip, boolean showAdvancedItemTooltips) { super(entityPlayer); this.itemStack = itemStack; @@ -51,6 +54,7 @@ public class ItemTooltipEvent extends PlayerEvent /** * The {@link ItemStack} with the tooltip. */ + @Nonnull public ItemStack getItemStack() { return itemStack; diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java index 37e3e0695..00b4280d4 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java @@ -313,7 +313,7 @@ public class PlayerInteractEvent extends PlayerEvent */ public static class LeftClickEmpty extends PlayerInteractEvent { - public LeftClickEmpty(EntityPlayer player, ItemStack stack) + public LeftClickEmpty(EntityPlayer player, @Nonnull ItemStack stack) { super(player, EnumHand.MAIN_HAND, new BlockPos(player), null); } diff --git a/src/main/java/net/minecraftforge/event/entity/player/UseHoeEvent.java b/src/main/java/net/minecraftforge/event/entity/player/UseHoeEvent.java index 589696781..0edf1f835 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/UseHoeEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/UseHoeEvent.java @@ -26,6 +26,8 @@ import net.minecraft.world.World; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; +import javax.annotation.Nonnull; + /** * This event is fired when a player attempts to use a Hoe on a block, it * can be canceled to completely prevent any further processing. @@ -44,7 +46,7 @@ public class UseHoeEvent extends PlayerEvent private final World world; private final BlockPos pos; - public UseHoeEvent(EntityPlayer player, ItemStack current, World world, BlockPos pos) + public UseHoeEvent(EntityPlayer player, @Nonnull ItemStack current, World world, BlockPos pos) { super(player); this.current = current; @@ -52,6 +54,7 @@ public class UseHoeEvent extends PlayerEvent this.pos = pos; } + @Nonnull public ItemStack getCurrent() { return current; diff --git a/src/main/java/net/minecraftforge/fluids/DispenseFluidContainer.java b/src/main/java/net/minecraftforge/fluids/DispenseFluidContainer.java index b7487f473..b28760121 100644 --- a/src/main/java/net/minecraftforge/fluids/DispenseFluidContainer.java +++ b/src/main/java/net/minecraftforge/fluids/DispenseFluidContainer.java @@ -95,7 +95,8 @@ public class DispenseFluidContainer extends BehaviorDefaultDispenseItem /** * Drains a filled container and places the fluid in front of the Dispenser. */ - private ItemStack dumpContainer(IBlockSource source, ItemStack stack) + @Nonnull + private ItemStack dumpContainer(IBlockSource source, @Nonnull ItemStack stack) { ItemStack singleStack = stack.copy(); singleStack.func_190920_e(1); diff --git a/src/main/java/net/minecraftforge/fluids/UniversalBucket.java b/src/main/java/net/minecraftforge/fluids/UniversalBucket.java index 23d3aff06..78f22fa67 100644 --- a/src/main/java/net/minecraftforge/fluids/UniversalBucket.java +++ b/src/main/java/net/minecraftforge/fluids/UniversalBucket.java @@ -84,13 +84,14 @@ public class UniversalBucket extends Item } @Override - public boolean hasContainerItem(ItemStack stack) + public boolean hasContainerItem(@Nonnull ItemStack stack) { return !getEmpty().func_190926_b(); } + @Nonnull @Override - public ItemStack getContainerItem(ItemStack itemStack) + public ItemStack getContainerItem(@Nonnull ItemStack itemStack) { if (!getEmpty().func_190926_b()) { @@ -122,7 +123,7 @@ public class UniversalBucket extends Item } @Override - public String getItemStackDisplayName(ItemStack stack) + public String getItemStackDisplayName(@Nonnull ItemStack stack) { FluidStack fluidStack = getFluid(stack); if (fluidStack == null) @@ -272,7 +273,7 @@ public class UniversalBucket extends Item return bucket; } - public FluidStack getFluid(ItemStack container) + public FluidStack getFluid(@Nonnull ItemStack container) { return FluidStack.loadFluidStackFromNBT(container.getTagCompound()); } diff --git a/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java b/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java index 3534dfc6c..eb5d72d68 100644 --- a/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java +++ b/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java @@ -25,6 +25,8 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.eventhandler.Event; +import javax.annotation.Nonnull; + public class PlayerEvent extends Event { public final EntityPlayer player; private PlayerEvent(EntityPlayer player) @@ -42,9 +44,10 @@ public class PlayerEvent extends Event { } public static class ItemCraftedEvent extends PlayerEvent { + @Nonnull public final ItemStack crafting; public final IInventory craftMatrix; - public ItemCraftedEvent(EntityPlayer player, ItemStack crafting, IInventory craftMatrix) + public ItemCraftedEvent(EntityPlayer player, @Nonnull ItemStack crafting, IInventory craftMatrix) { super(player); this.crafting = crafting; @@ -52,8 +55,9 @@ public class PlayerEvent extends Event { } } public static class ItemSmeltedEvent extends PlayerEvent { + @Nonnull public final ItemStack smelting; - public ItemSmeltedEvent(EntityPlayer player, ItemStack crafting) + public ItemSmeltedEvent(EntityPlayer player, @Nonnull ItemStack crafting) { super(player); this.smelting = crafting; diff --git a/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java index dc78bfa49..de873fef0 100644 --- a/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java +++ b/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java @@ -67,6 +67,8 @@ import com.google.common.collect.ObjectArrays; import com.google.common.collect.Sets; import com.google.common.primitives.Ints; +import javax.annotation.Nonnull; + @SuppressWarnings({"WeakerAccess", "unused"}) public class GameRegistry { @@ -220,17 +222,17 @@ public class GameRegistry GameData.getMain().registerSubstitutionAlias(nameToSubstitute, type, object); } - public static void addRecipe(ItemStack output, Object... params) + public static void addRecipe(@Nonnull ItemStack output, Object... params) { addShapedRecipe(output, params); } - public static IRecipe addShapedRecipe(ItemStack output, Object... params) + public static IRecipe addShapedRecipe(@Nonnull ItemStack output, Object... params) { return CraftingManager.getInstance().addRecipe(output, params); } - public static void addShapelessRecipe(ItemStack output, Object... params) + public static void addShapelessRecipe(@Nonnull ItemStack output, Object... params) { CraftingManager.getInstance().addShapelessRecipe(output, params); } @@ -240,17 +242,17 @@ public class GameRegistry CraftingManager.getInstance().getRecipeList().add(recipe); } - public static void addSmelting(Block input, ItemStack output, float xp) + public static void addSmelting(Block input, @Nonnull ItemStack output, float xp) { FurnaceRecipes.instance().addSmeltingRecipeForBlock(input, output, xp); } - public static void addSmelting(Item input, ItemStack output, float xp) + public static void addSmelting(Item input, @Nonnull ItemStack output, float xp) { FurnaceRecipes.instance().addSmelting(input, output, xp); } - public static void addSmelting(ItemStack input, ItemStack output, float xp) + public static void addSmelting(@Nonnull ItemStack input, @Nonnull ItemStack output, float xp) { FurnaceRecipes.instance().addSmeltingRecipe(input, output, xp); } @@ -282,7 +284,7 @@ public class GameRegistry fuelHandlers.add(handler); } - public static int getFuelValue(ItemStack itemStack) + public static int getFuelValue(@Nonnull ItemStack itemStack) { int fuelValue = 0; for (IFuelHandler handler : fuelHandlers) @@ -362,6 +364,7 @@ public class GameRegistry * @param nbtString an nbt stack as a string, will be processed by {@link JsonToNBT} * @return a new itemstack */ + @Nonnull public static ItemStack makeItemStack(String itemName, int meta, int stackSize, String nbtString) { if (itemName == null) @@ -372,7 +375,7 @@ public class GameRegistry if (item == null) { FMLLog.getLogger().log(Level.TRACE, "Unable to find item with name {}", itemName); - return null; + return ItemStack.field_190927_a; } ItemStack is = new ItemStack(item, stackSize, meta); if (!Strings.isNullOrEmpty(nbtString)) diff --git a/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java b/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java index cb6fd7bda..40e92db83 100644 --- a/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java +++ b/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java @@ -50,9 +50,9 @@ public class ItemHandlerHelper return stack; } - public static boolean canItemStacksStack(ItemStack a, ItemStack b) + public static boolean canItemStacksStack(@Nonnull ItemStack a, @Nonnull ItemStack b) { - if (a == null || !a.isItemEqual(b)) + if (a.func_190926_b() || !a.isItemEqual(b)) return false; final NBTTagCompound aTag = a.getTagCompound(); @@ -64,9 +64,9 @@ public class ItemHandlerHelper * A relaxed version of canItemStacksStack that stacks itemstacks with different metadata if they don't have subtypes. * This usually only applies when players pick up items. */ - public static boolean canItemStacksStackRelaxed(ItemStack a, ItemStack b) + public static boolean canItemStacksStackRelaxed(@Nonnull ItemStack a, @Nonnull ItemStack b) { - if (a == null || b == null || a.getItem() != b.getItem()) + if (a.func_190926_b() || b.func_190926_b() || a.getItem() != b.getItem()) return false; if (!a.isStackable()) @@ -84,7 +84,7 @@ public class ItemHandlerHelper } @Nonnull - public static ItemStack copyStackWithSize(ItemStack itemStack, int size) + public static ItemStack copyStackWithSize(@Nonnull ItemStack itemStack, int size) { if (size == 0) return ItemStack.field_190927_a; @@ -148,7 +148,7 @@ public class ItemHandlerHelper } /** giveItemToPlayer without preferred slot */ - public static void giveItemToPlayer(EntityPlayer player, ItemStack stack) { + public static void giveItemToPlayer(EntityPlayer player, @Nonnull ItemStack stack) { giveItemToPlayer(player, stack, -1); } @@ -159,7 +159,7 @@ public class ItemHandlerHelper * @param player The player to give the item to * @param stack The itemstack to insert */ - public static void giveItemToPlayer(EntityPlayer player, ItemStack stack, int preferredSlot) + public static void giveItemToPlayer(EntityPlayer player, @Nonnull ItemStack stack, int preferredSlot) { IItemHandler inventory = new PlayerMainInvWrapper(player.inventory); World world = player.worldObj; @@ -172,20 +172,20 @@ public class ItemHandlerHelper remainder = inventory.insertItem(preferredSlot, stack, false); } // then into the inventory in general - if(remainder != null) + if(!remainder.func_190926_b()) { remainder = insertItemStacked(inventory, remainder, false); } // play sound if something got picked up - if (remainder == null || remainder.func_190916_E() != stack.func_190916_E()) + if (remainder.func_190926_b() || remainder.func_190916_E() != stack.func_190916_E()) { world.playSound(player, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((world.rand.nextFloat() - world.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); } // drop remaining itemstack into the world - if (remainder != null && !world.isRemote) + if (!remainder.func_190926_b() && !world.isRemote) { EntityItem entityitem = new EntityItem(world, player.posX, player.posY + 0.5, player.posZ, stack); entityitem.setPickupDelay(40); diff --git a/src/main/java/net/minecraftforge/items/ItemStackHandler.java b/src/main/java/net/minecraftforge/items/ItemStackHandler.java index 91f6c712b..291eb969f 100644 --- a/src/main/java/net/minecraftforge/items/ItemStackHandler.java +++ b/src/main/java/net/minecraftforge/items/ItemStackHandler.java @@ -154,7 +154,7 @@ public class ItemStackHandler implements IItemHandler, IItemHandlerModifiable, I } } - protected int getStackLimit(int slot, ItemStack stack) + protected int getStackLimit(int slot, @Nonnull ItemStack stack) { return stack.getMaxStackSize(); } diff --git a/src/main/java/net/minecraftforge/items/VanillaHopperItemHandler.java b/src/main/java/net/minecraftforge/items/VanillaHopperItemHandler.java index 775eeb721..bcbf7ca68 100644 --- a/src/main/java/net/minecraftforge/items/VanillaHopperItemHandler.java +++ b/src/main/java/net/minecraftforge/items/VanillaHopperItemHandler.java @@ -39,7 +39,7 @@ public class VanillaHopperItemHandler extends InvWrapper @Nonnull public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { - if (stack == null) + if (stack.func_190926_b()) return null; // if (simulate || !hopper.mayTransfer()) // return super.insertItem(slot, stack, simulate); diff --git a/src/main/java/net/minecraftforge/items/VanillaInventoryCodeHooks.java b/src/main/java/net/minecraftforge/items/VanillaInventoryCodeHooks.java index de78108f8..00d3aa1e5 100644 --- a/src/main/java/net/minecraftforge/items/VanillaInventoryCodeHooks.java +++ b/src/main/java/net/minecraftforge/items/VanillaInventoryCodeHooks.java @@ -47,15 +47,15 @@ public class VanillaInventoryCodeHooks for (int i = 0; i < handler.getSlots(); i++) { ItemStack extractItem = handler.extractItem(i, 1, true); - if (extractItem != null) + if (!extractItem.func_190926_b()) { for (int j = 0; j < dest.getSizeInventory(); j++) { ItemStack destStack = dest.getStackInSlot(j); - if (destStack == null || destStack.func_190916_E() < destStack.getMaxStackSize() && destStack.func_190916_E() < dest.getInventoryStackLimit() && ItemHandlerHelper.canItemStacksStack(extractItem, destStack)) + if (destStack.func_190926_b() || destStack.func_190916_E() < destStack.getMaxStackSize() && destStack.func_190916_E() < dest.getInventoryStackLimit() && ItemHandlerHelper.canItemStacksStack(extractItem, destStack)) { extractItem = handler.extractItem(i, 1, false); - if (destStack == null) + if (destStack.func_190926_b()) dest.setInventorySlotContents(j, extractItem); else { @@ -120,7 +120,7 @@ public class VanillaInventoryCodeHooks for (int i = 0; i < hopper.getSizeInventory(); i++) { ItemStack stackInSlot = hopper.getStackInSlot(i); - if (stackInSlot != null) + if (stackInSlot.func_190926_b()) { ItemStack insert = stackInSlot.copy(); insert.func_190920_e(1); diff --git a/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java b/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java index dfcdb2e73..454667539 100644 --- a/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java +++ b/src/main/java/net/minecraftforge/items/wrapper/InvWrapper.java @@ -72,8 +72,8 @@ public class InvWrapper implements IItemHandlerModifiable @Nonnull public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { - if (stack == null) - return null; + if (stack.func_190926_b()) + return ItemStack.field_190927_a; if (!getInv().isItemValidForSlot(slot, stack)) return stack; @@ -98,7 +98,7 @@ public class InvWrapper implements IItemHandlerModifiable getInv().markDirty(); } - return null; + return ItemStack.field_190927_a; } else { @@ -145,7 +145,7 @@ public class InvWrapper implements IItemHandlerModifiable getInv().setInventorySlotContents(slot, stack); getInv().markDirty(); } - return null; + return ItemStack.field_190927_a; } } @@ -156,12 +156,12 @@ public class InvWrapper implements IItemHandlerModifiable public ItemStack extractItem(int slot, int amount, boolean simulate) { if (amount == 0) - return null; + return ItemStack.field_190927_a; ItemStack stackInSlot = getInv().getStackInSlot(slot); - if (stackInSlot == null) - return null; + if (stackInSlot.func_190926_b()) + return ItemStack.field_190927_a; if (simulate) { @@ -187,7 +187,7 @@ public class InvWrapper implements IItemHandlerModifiable } @Override - public void setStackInSlot(int slot, ItemStack stack) + public void setStackInSlot(int slot, @Nonnull ItemStack stack) { getInv().setInventorySlotContents(slot, stack); } diff --git a/src/main/java/net/minecraftforge/items/wrapper/RangedWrapper.java b/src/main/java/net/minecraftforge/items/wrapper/RangedWrapper.java index c2edd7090..c01f33282 100644 --- a/src/main/java/net/minecraftforge/items/wrapper/RangedWrapper.java +++ b/src/main/java/net/minecraftforge/items/wrapper/RangedWrapper.java @@ -58,7 +58,7 @@ public class RangedWrapper implements IItemHandlerModifiable { return compose.getStackInSlot(slot + minSlot); } - return null; + return ItemStack.field_190927_a; } @Override @@ -86,7 +86,7 @@ public class RangedWrapper implements IItemHandlerModifiable { } @Override - public void setStackInSlot(int slot, ItemStack stack) + public void setStackInSlot(int slot, @Nonnull ItemStack stack) { if (checkSlot(slot)) { diff --git a/src/main/java/net/minecraftforge/oredict/OreDictionary.java b/src/main/java/net/minecraftforge/oredict/OreDictionary.java index a0acce357..8c522aee4 100644 --- a/src/main/java/net/minecraftforge/oredict/OreDictionary.java +++ b/src/main/java/net/minecraftforge/oredict/OreDictionary.java @@ -653,6 +653,7 @@ public class OreDictionary return Name; } + @Nonnull public ItemStack getOre() { return Ore;