Странная проблема с пакетом

Версия Minecraft
1.10.2

Eifel

Модератор
1,624
79
609
Привет!
В общем проблема такая: юзаю PlayerLoggedInEvent и отправляю пакет с капабилитисами для отображения нужной инфы на Гуихе. Запускаю майн, захожу в мир, все норм, пакет пошел, Гуиха работает. Нажимаю кнопочку отключиться(выйти в гл. меню), после чего опять захожу в мир - пакет отправился, но player в handleClientSide у меня теперь null. Соответственно ничего не работает. Код:

Код:
@SubscribeEvent
 public void syncInvHUD(PlayerLoggedInEvent event) { 
 
 if(!event.player.worldObj.isRemote){ 

 IEnhancedInventory cap = event.player.getCapability(EnhancedInventoryProvider.INVENTORY_CAP, null); 
 NetworkHandler.INSTANCE.sendTo(new HUDSyncMessage(cap), (EntityPlayerMP)event.player); 
 }
 }
Код:
public class HUDSyncMessage extends AbstractPacket<HUDSyncMessage> {
 
 private static NBTTagCompound tag;
 
 public HUDSyncMessage() {}
 
 public HUDSyncMessage(IEnhancedInventory cap) {
 tag = new NBTTagCompound();
 cap.getInventory().writeToNBT(tag);
 }

 @Override
 public void fromBytes(ByteBuf buf) {
 tag = ByteBufUtils.readTag(buf);
 }

 @Override
 public void toBytes(ByteBuf buf) {
 ByteBufUtils.writeTag(buf, tag);
 }
 

 @Override
 public void handleClientSide(EntityPlayer player) {

 if(player != null){
 IEnhancedInventory cap = player.getCapability(EnhancedInventoryProvider.INVENTORY_CAP, null);
 cap.getInventory().readFromNBT(tag);
 }else{
 System.out.println("player null");
 }
 }

 @Override
 public void handleServerSide(EntityPlayer player) {}

}

P.s. юзаю пакетную систему Ivasik`а
 
7,099
324
1,510
Попробуй использовать Minecraft.getMinecraft().thePlayer
 

Eifel

Модератор
1,624
79
609
Какая-то хрень. Поменял, оно вроде заработало. Но после того как открыл свой инвентарь из которого беру стаки и отсылаю на клиент при заходе, перезашел и опять игрок null...


Хотя это вообще полностью рандомно происходит. Но только не во время дебага.. АА что за черт
 
7,099
324
1,510
Берешь игрока из Minecraft.getMinecraft().thePlayer? Или из аргумента handleClientSide?
 
Сверху