Fix potential NPE in EntityJoin handler and print warning.
This commit is contained in:
parent
cbe52abe42
commit
4a748beb69
1 changed files with 25 additions and 3 deletions
|
@ -2,6 +2,8 @@ package net.minecraftforge.common;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.FMLLog;
|
||||||
|
|
||||||
import net.minecraft.src.*;
|
import net.minecraft.src.*;
|
||||||
import net.minecraftforge.event.*;
|
import net.minecraftforge.event.*;
|
||||||
import net.minecraftforge.event.entity.*;
|
import net.minecraftforge.event.entity.*;
|
||||||
|
@ -23,13 +25,33 @@ public class ForgeInternalHandler
|
||||||
ForgeChunkManager.loadEntity(event.entity);
|
ForgeChunkManager.loadEntity(event.entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Entity entity = event.entity;
|
Entity entity = event.entity;
|
||||||
if (entity.getClass().equals(EntityItem.class))
|
if (entity.getClass().equals(EntityItem.class))
|
||||||
{
|
{
|
||||||
ItemStack item = ((EntityItem)entity).item;
|
ItemStack stack = ((EntityItem)entity).item;
|
||||||
if (item != null && item.getItem().hasCustomEntity(item))
|
|
||||||
|
if (stack == null)
|
||||||
{
|
{
|
||||||
Entity newEntity = item.getItem().createEntity(event.world, entity, item);
|
entity.setDead();
|
||||||
|
event.setCanceled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Item item = stack.getItem();
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
FMLLog.warning("Attempted to add a EntityItem to the world with a invalid item: ID %d at " +
|
||||||
|
"(%d, %d, %d), this is most likely a config issue between you and the server. Please double check your configs",
|
||||||
|
stack.itemID, entity.posX, entity.posY, entity.posZ);
|
||||||
|
entity.setDead();
|
||||||
|
event.setCanceled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.hasCustomEntity(stack))
|
||||||
|
{
|
||||||
|
Entity newEntity = item.createEntity(event.world, entity, stack);
|
||||||
if (newEntity != null)
|
if (newEntity != null)
|
||||||
{
|
{
|
||||||
entity.setDead();
|
entity.setDead();
|
||||||
|
|
Loading…
Reference in a new issue