More null stack fixes

This commit is contained in:
Nicholas Ignoffo 2017-02-19 16:06:29 -08:00
parent c682571be0
commit 5475549c18
10 changed files with 49 additions and 50 deletions

View file

@ -15,7 +15,7 @@ import net.minecraftforge.oredict.OreDictionary;
public class AlchemyTableRecipe public class AlchemyTableRecipe
{ {
protected ItemStack output = null; protected ItemStack output = ItemStack.EMPTY;
protected ArrayList<Object> input = new ArrayList<Object>(); protected ArrayList<Object> input = new ArrayList<Object>();
@Getter @Getter
protected int lpDrained; protected int lpDrained;
@ -97,11 +97,9 @@ public class AlchemyTableRecipe
{ {
ArrayList<Object> required = new ArrayList<Object>(input); ArrayList<Object> required = new ArrayList<Object>(input);
for (int x = 0; x < checkedList.size(); x++) for (ItemStack slot : checkedList)
{ {
ItemStack slot = checkedList.get(x); if (!slot.isEmpty())
if (slot != null)
{ {
boolean inRecipe = false; boolean inRecipe = false;
@ -109,14 +107,12 @@ public class AlchemyTableRecipe
{ {
boolean match = false; boolean match = false;
Object next = aRequired; if (aRequired instanceof ItemStack)
if (next instanceof ItemStack)
{ {
match = OreDictionary.itemMatches((ItemStack) next, slot, false); match = OreDictionary.itemMatches((ItemStack) aRequired, slot, false);
} else if (next instanceof List) } else if (aRequired instanceof List)
{ {
Iterator<ItemStack> itr = ((List<ItemStack>) next).iterator(); Iterator<ItemStack> itr = ((List<ItemStack>) aRequired).iterator();
while (itr.hasNext() && !match) while (itr.hasNext() && !match)
{ {
match = OreDictionary.itemMatches(itr.next(), slot, false); match = OreDictionary.itemMatches(itr.next(), slot, false);
@ -126,7 +122,7 @@ public class AlchemyTableRecipe
if (match) if (match)
{ {
inRecipe = true; inRecipe = true;
required.remove(next); required.remove(aRequired);
break; break;
} }
} }

View file

@ -28,8 +28,6 @@ public class PlayerDemonWillHandler
double souls = 0; double souls = 0;
for (ItemStack stack : inventory) for (ItemStack stack : inventory)
{
if (stack != null)
{ {
if (stack.getItem() instanceof IDemonWill && ((IDemonWill) stack.getItem()).getType(stack) == type) if (stack.getItem() instanceof IDemonWill && ((IDemonWill) stack.getItem()).getType(stack) == type)
{ {
@ -39,7 +37,6 @@ public class PlayerDemonWillHandler
souls += ((IDemonWillGem) stack.getItem()).getWill(type, stack); souls += ((IDemonWillGem) stack.getItem()).getWill(type, stack);
} }
} }
}
return souls; return souls;
} }
@ -78,7 +75,7 @@ public class PlayerDemonWillHandler
boolean hasGem = false; boolean hasGem = false;
for (ItemStack stack : inventory) for (ItemStack stack : inventory)
{ {
if (stack != null && stack.getItem() instanceof IDemonWillGem) if (stack.getItem() instanceof IDemonWillGem)
{ {
hasGem = true; hasGem = true;
if (((IDemonWillGem) stack.getItem()).getWill(type, stack) < ((IDemonWillGem) stack.getItem()).getMaxWill(type, stack)) if (((IDemonWillGem) stack.getItem()).getWill(type, stack) < ((IDemonWillGem) stack.getItem()).getMaxWill(type, stack))
@ -145,11 +142,11 @@ public class PlayerDemonWillHandler
for (ItemStack stack : inventory) for (ItemStack stack : inventory)
{ {
if (stack != null && stack.getItem() instanceof IDemonWillGem) if (stack.getItem() instanceof IDemonWillGem)
{ {
ItemStack newStack = ((IDemonWillGem) stack.getItem()).fillDemonWillGem(stack, willStack); ItemStack newStack = ((IDemonWillGem) stack.getItem()).fillDemonWillGem(stack, willStack);
if (newStack == null) if (newStack.isEmpty())
return null; return ItemStack.EMPTY;
} }
} }
@ -176,7 +173,7 @@ public class PlayerDemonWillHandler
for (ItemStack stack : inventory) for (ItemStack stack : inventory)
{ {
if (stack != null && stack.getItem() instanceof IDemonWillGem) if (stack.getItem() instanceof IDemonWillGem)
{ {
remaining -= ((IDemonWillGem) stack.getItem()).fillWill(type, stack, remaining, true); remaining -= ((IDemonWillGem) stack.getItem()).fillWill(type, stack, remaining, true);
if (remaining <= 0) if (remaining <= 0)
@ -209,7 +206,7 @@ public class PlayerDemonWillHandler
for (ItemStack stack : inventory) for (ItemStack stack : inventory)
{ {
if (stack != null && !stack.equals(ignored) && stack.getItem() instanceof IDemonWillGem) if (!stack.equals(ignored) && stack.getItem() instanceof IDemonWillGem)
{ {
remaining -= ((IDemonWillGem) stack.getItem()).fillWill(type, stack, remaining, true); remaining -= ((IDemonWillGem) stack.getItem()).fillWill(type, stack, remaining, true);

View file

@ -17,15 +17,13 @@ public class InventoryHolding extends ItemInventory
public InventoryHolding(ItemStack itemStack) public InventoryHolding(ItemStack itemStack)
{ {
super(itemStack, ItemSigilHolding.inventorySize, "SigilOfHolding"); super(itemStack, ItemSigilHolding.inventorySize, "SigilOfHolding");
// readFromNBT(itemStack.getTagCompound());
} }
public void onGuiSaved(EntityPlayer entityPlayer) public void onGuiSaved(EntityPlayer entityPlayer)
{ {
masterStack = findParentStack(entityPlayer); masterStack = findParentStack(entityPlayer);
if (masterStack != null) if (!masterStack.isEmpty())
{ {
save(); save();
} }
@ -50,7 +48,7 @@ public class InventoryHolding extends ItemInventory
} }
} }
return null; return ItemStack.EMPTY;
} }
public void save() public void save()

View file

@ -25,7 +25,7 @@ public class ItemInventory implements IInventory
this.name = name; this.name = name;
this.masterStack = masterStack; this.masterStack = masterStack;
if (masterStack != null) if (!masterStack.isEmpty())
this.readFromStack(masterStack); this.readFromStack(masterStack);
} }
@ -150,13 +150,13 @@ public class ItemInventory implements IInventory
@Override @Override
public ItemStack removeStackFromSlot(int slot) public ItemStack removeStackFromSlot(int slot)
{ {
if (inventory[slot] != null) if (!inventory[slot].isEmpty())
{ {
ItemStack itemStack = inventory[slot]; ItemStack itemStack = inventory[slot];
setInventorySlotContents(slot, ItemStack.EMPTY); setInventorySlotContents(slot, ItemStack.EMPTY);
return itemStack; return itemStack;
} }
return null; return ItemStack.EMPTY;
} }
@Override @Override

View file

@ -66,7 +66,7 @@ public class AlchemyTableDyeableRecipe extends AlchemyTableRecipe
ItemStack tagOrDyeStack = inputList.get(nameTagOrDyeLocation); ItemStack tagOrDyeStack = inputList.get(nameTagOrDyeLocation);
ItemStack inputStack = inputList.get(inputItemLocation); ItemStack inputStack = inputList.get(inputItemLocation);
if (inputStack == null || tagOrDyeStack == null) if (inputStack.isEmpty() || tagOrDyeStack.isEmpty())
{ {
return output.copy(); return output.copy();
} }
@ -106,19 +106,27 @@ public class AlchemyTableDyeableRecipe extends AlchemyTableRecipe
boolean hasNameTagOrDye = false; boolean hasNameTagOrDye = false;
boolean hasInputItem = false; boolean hasInputItem = false;
for (ItemStack slot : checkedList) { for (ItemStack slot : checkedList)
if (slot != null) { {
if (!slot.isEmpty())
{
boolean match = OreDictionary.itemMatches(inputItem, slot, false); boolean match = OreDictionary.itemMatches(inputItem, slot, false);
if (match && hasInputItem) { if (match && hasInputItem)
{
return false; return false;
} else if (match) { } else if (match)
{
hasInputItem = true; hasInputItem = true;
} else { } else
if (slot.getItem() == Items.NAME_TAG || slot.getItem() == Items.DYE) { {
if (hasNameTagOrDye) { if (slot.getItem() == Items.NAME_TAG || slot.getItem() == Items.DYE)
{
if (hasNameTagOrDye)
{
return false; return false;
} else { } else
{
hasNameTagOrDye = true; hasNameTagOrDye = true;
} }
} }

View file

@ -127,7 +127,7 @@ public class TileMimic extends TileInventory implements ITickable
//The potion flask is empty, therefore we have to reset the stored potion. //The potion flask is empty, therefore we have to reset the stored potion.
if (!world.isRemote) if (!world.isRemote)
{ {
setInventorySlotContents(1, null); setInventorySlotContents(1, ItemStack.EMPTY);
world.notifyBlockUpdate(pos, state, state, 3); world.notifyBlockUpdate(pos, state, state, 3);
ChatUtil.sendNoSpam(player, new TextComponentTranslation("chat.bloodmagic.mimic.potionRemove")); ChatUtil.sendNoSpam(player, new TextComponentTranslation("chat.bloodmagic.mimic.potionRemove"));
} }

View file

@ -223,7 +223,7 @@ public class TileSoulForge extends TileInventory implements ITickable, IDemonWil
double souls = soul.drainWill(type, soulStack, requested); double souls = soul.drainWill(type, soulStack, requested);
if (soul.getWill(type, soulStack) <= 0) if (soul.getWill(type, soulStack) <= 0)
{ {
setInventorySlotContents(soulSlot, null); setInventorySlotContents(soulSlot, ItemStack.EMPTY);
} }
return souls; return souls;
} }

View file

@ -493,7 +493,7 @@ public class GenericHandler
{ {
for (ItemStack stack : player.inventory.mainInventory) for (ItemStack stack : player.inventory.mainInventory)
{ {
if (stack != null && stack.getItem() instanceof ItemExperienceBook) if (stack.getItem() instanceof ItemExperienceBook)
{ {
ItemExperienceBook.addExperience(stack, event.getOrb().xpValue); ItemExperienceBook.addExperience(stack, event.getOrb().xpValue);
event.getOrb().xpValue = 0; event.getOrb().xpValue = 0;

View file

@ -54,7 +54,7 @@ public class StatTrackerHandler
if (LivingArmour.hasFullSet(player)) if (LivingArmour.hasFullSet(player))
{ {
ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
if (chestStack != null && chestStack.getItem() instanceof ItemLivingArmour) if (chestStack.getItem() instanceof ItemLivingArmour)
{ {
LivingArmour armour = ItemLivingArmour.getLivingArmour(chestStack); LivingArmour armour = ItemLivingArmour.getLivingArmour(chestStack);
@ -133,7 +133,7 @@ public class StatTrackerHandler
} else } else
{ {
ItemStack chestStack = attackedPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST); ItemStack chestStack = attackedPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
if (chestStack != null && chestStack.getItem() instanceof ItemSentientArmour) if (chestStack.getItem() instanceof ItemSentientArmour)
{ {
ItemSentientArmour armour = (ItemSentientArmour) chestStack.getItem(); ItemSentientArmour armour = (ItemSentientArmour) chestStack.getItem();
armour.onPlayerAttacked(chestStack, source, attackedPlayer); armour.onPlayerAttacked(chestStack, source, attackedPlayer);
@ -165,7 +165,7 @@ public class StatTrackerHandler
if (player.getEntityWorld().getLight(player.getPosition()) <= 9) if (player.getEntityWorld().getLight(player.getPosition()) <= 9)
StatTrackerNightSight.incrementCounter(armour, amount); StatTrackerNightSight.incrementCounter(armour, amount);
if (mainWeapon != null && mainWeapon.getItem() instanceof ItemSpade) if (mainWeapon.getItem() instanceof ItemSpade)
StatTrackerGraveDigger.incrementCounter(armour, amount); StatTrackerGraveDigger.incrementCounter(armour, amount);
if (player.isSprinting()) if (player.isSprinting())

View file

@ -48,7 +48,7 @@ public class WillHandler
public void onItemPickup(EntityItemPickupEvent event) public void onItemPickup(EntityItemPickupEvent event)
{ {
ItemStack stack = event.getItem().getEntityItem(); ItemStack stack = event.getItem().getEntityItem();
if (stack != null && stack.getItem() instanceof IDemonWill) if (stack.getItem() instanceof IDemonWill)
{ {
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
EnumDemonWillType pickupType = ((IDemonWill) stack.getItem()).getType(stack); EnumDemonWillType pickupType = ((IDemonWill) stack.getItem()).getType(stack);
@ -98,7 +98,7 @@ public class WillHandler
{ {
EntityPlayer player = (EntityPlayer) entity; EntityPlayer player = (EntityPlayer) entity;
ItemStack heldStack = player.getHeldItemMainhand(); ItemStack heldStack = player.getHeldItemMainhand();
if (heldStack != null && heldStack.getItem() instanceof IDemonWillWeapon && !player.getEntityWorld().isRemote) if (heldStack.getItem() instanceof IDemonWillWeapon && !player.getEntityWorld().isRemote)
{ {
IDemonWillWeapon demonWillWeapon = (IDemonWillWeapon) heldStack.getItem(); IDemonWillWeapon demonWillWeapon = (IDemonWillWeapon) heldStack.getItem();
List<ItemStack> droppedSouls = demonWillWeapon.getRandomDemonWillDrop(attackedEntity, player, heldStack, event.getLootingLevel()); List<ItemStack> droppedSouls = demonWillWeapon.getRandomDemonWillDrop(attackedEntity, player, heldStack, event.getLootingLevel());