Крашит IEEP

Сообщения
882
Лучшие ответы
14
Реакции
87
Версия Minecraft
1.7.10
Сделал 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:?]

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,839
Лучшие ответы
414
Реакции
1,935
Так это не инвентарь нулл, а ex.
 
Сообщения
882
Лучшие ответы
14
Реакции
87
@tox1cozZ а почему он нулл? я его регаю и тд
 

tox1cozZ

aka Agravaine
Модератор
Сообщения
6,839
Лучшие ответы
414
Реакции
1,935
Хз, может у тебя ивент срабатывает только на сервере, а на клиенте он нулл.
 
Сообщения
882
Лучшие ответы
14
Реакции
87
@tox1cozZ реально не заметил, спасибо благословит тебя jeb_
 
Сверху