jopi
Попрошайка
- 1,421
- 30
- 260
Сделал IEEP, добавил туда инвентарь, при его использовании как пример
хотя я не раз его назначаю...
ieepObj.inventory
inventory
равен нулю,хотя я не раз его назначаю...
IEEP:
public class ExtendedPlayer implements IExtendedEntityProperties {
public EntityPlayer player;
public InventoryChar inv;
public ExtendedPlayer(EntityPlayer player) {
this.player = player;
this.inv = new InventoryChar();
}
public static final void register(EntityPlayer player) {
player.registerExtendedProperties("rpg", new ExtendedPlayer(player));
}
public static final ExtendedPlayer get(EntityPlayer player) {
return (ExtendedPlayer)player.getExtendedProperties("rpg");
}
public void saveNBTData(NBTTagCompound tag) {
NBTTagCompound data = new NBTTagCompound();
this.inv.save(data);
tag.setTag("rpgPlayer", data);
}
public void loadNBTData(NBTTagCompound tag) {
NBTTagCompound data = tag.getCompoundTag("rpgPlayer");
this.inv.read(data);
}
public void init(Entity entity, World world) {
if (this.inv == null) {
this.inv = new InventoryChar();
}
}
}
EventHandler:
public class EventHandler {
@SubscribeEvent
public void onEntityConstructing(EntityEvent.EntityConstructing event) {
if (event.entity instanceof EntityPlayer && ExtendedPlayer.get((EntityPlayer) event.entity) == null) {
ExtendedPlayer.register((EntityPlayer) event.entity);
}
if (event.entity instanceof EntityPlayer && event.entity.getExtendedProperties("rpg") == null) {
event.entity.registerExtendedProperties("rpg", new ExtendedPlayer((EntityPlayer) event.entity));
}
}
@SubscribeEvent
public void onClonePlayer(PlayerEvent.Clone e) {
if(e.wasDeath) {
NBTTagCompound compound = new NBTTagCompound();
ExtendedPlayer.get(e.original).saveNBTData(compound);
ExtendedPlayer.get(e.entityPlayer).loadNBTData(compound);
}
}
}
17 Строка контейнера:
ExtendedPlayer ex = ExtendedPlayer.get(p); //16
this.inv = ex.inv; //17
- Краш-лог
-
java.lang.NullPointerException
at union.cubeground.mod.common.container.ContainerCharInventory.<init>(ContainerCharInventory.java:17) ~[ContainerCharInventory.class:?]
at union.cubeground.mod.client.gui.GuiCharInventory.<init>(GuiCharInventory.java:24) ~[GuiCharInventory.class:?]
at union.cubeground.mod.common.handler.GuiHandler.getClientGuiElement(GuiHandler.java:21) ~[GuiHandler.class:?]
Краш-лог:
java.lang.NullPointerException
at union.cubeground.mod.common.container.ContainerCharInventory.<init>(ContainerCharInventory.java:17) ~[ContainerCharInventory.class:?]
at union.cubeground.mod.client.gui.GuiCharInventory.<init>(GuiCharInventory.java:24) ~[GuiCharInventory.class:?]
at union.cubeground.mod.common.handler.GuiHandler.getClientGuiElement(GuiHandler.java:21) ~[GuiHandler.class:?]