More null stack fixes
This commit is contained in:
parent
c682571be0
commit
5475549c18
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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())
|
||||||
|
|
|
@ -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());
|
||||||
|
|
Loading…
Reference in a new issue