Initial annotations/nullability changes (#3392)
This commit is contained in:
parent
1fa0c0c548
commit
9cf74914e7
37 changed files with 172 additions and 104 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -32,7 +32,7 @@ public abstract class RenderTooltipEvent extends Event
|
|||
protected int y;
|
||||
protected FontRenderer fr;
|
||||
|
||||
public RenderTooltipEvent(@Nullable ItemStack stack, @Nonnull List<String> lines, int x, int y, @Nonnull FontRenderer fr)
|
||||
public RenderTooltipEvent(@Nonnull ItemStack stack, @Nonnull List<String> 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;
|
||||
|
|
|
@ -142,6 +142,7 @@ public class ForgeHooks
|
|||
}
|
||||
static final List<SeedEntry> seedList = new ArrayList<SeedEntry>();
|
||||
|
||||
@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));
|
||||
}
|
||||
|
|
|
@ -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<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune);
|
||||
public List<ItemStack> onSheared(@Nonnull ItemStack item, IBlockAccess world, BlockPos pos, int fortune);
|
||||
}
|
||||
|
|
|
@ -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<ArmorProperties>
|
||||
{
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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<T> 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<T> 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;
|
||||
|
|
|
@ -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<List<ItemStack>> {
|
||||
|
||||
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<ItemStack> ingredient, ItemStack output)
|
||||
public BrewingOreRecipe(@Nonnull ItemStack input, @Nonnull List<ItemStack> 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())
|
||||
{
|
||||
|
|
|
@ -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<ItemStack> {
|
||||
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<T> extends GenericEvent<T>
|
|||
*/
|
||||
public static class Item extends AttachCapabilitiesEvent<net.minecraft.item.Item>
|
||||
{
|
||||
@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<T> extends GenericEvent<T>
|
|||
{
|
||||
return this.item;
|
||||
}
|
||||
@Nonnull
|
||||
public net.minecraft.item.ItemStack getItemStack()
|
||||
{
|
||||
return this.stack;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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())
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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. <br>
|
||||
* 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; }
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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.<br>
|
||||
* 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; }
|
||||
|
|
|
@ -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.<br>
|
||||
* 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<ItemStack> 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; }
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
|
|
|
@ -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<String> 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<String> toolTip, boolean showAdvancedItemTooltips)
|
||||
public ItemTooltipEvent(@Nonnull ItemStack itemStack, EntityPlayer entityPlayer, List<String> 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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
|
|
|
@ -653,6 +653,7 @@ public class OreDictionary
|
|||
return Name;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public ItemStack getOre()
|
||||
{
|
||||
return Ore;
|
||||
|
|
Loading…
Reference in a new issue