Eifel
Модератор
- 1,623
- 78
- 608
Код:
В чем проблема: когда игрок играет и ему наноситься урон - доходит только до сообщения "im active1", т.е. дальше проверки equipped == thisitem не проходит.
Суть в том что если предмет в руке игрока и он активен - должен защищать от урона и разряжаться при этом.
Ивент зареган в классе самого предмета:
Код:
@SubscribeEvent
public void EventShield(LivingAttackEvent event) {
if (event.entityLiving instanceof EntityPlayer && !FMLCommonHandler.instance().getEffectiveSide().isClient())
{
EntityPlayer player = (EntityPlayer) event.entityLiving;
ItemStack equipped = player.getCurrentEquippedItem();
ItemStack thisitem = new ItemStack(ItemList.EnergyShield1);
chat = new ChatComponentText("Im active1");
player.addChatComponentMessage(chat);
if(equipped == thisitem){//эту проверку уже не проходит
chat = new ChatComponentText("Im active2");
player.addChatComponentMessage(chat);
NBTTagCompound nbtData = getOrCreateNbtData(equipped);
if(nbtData.getBoolean("active")){
chat = new ChatComponentText("Im active3");
player.addChatComponentMessage(chat);
event.setCanceled(true);
drainShield(equipped, Config.ShLvl1ChargeToUse, player);
}
}
}
}
В чем проблема: когда игрок играет и ему наноситься урон - доходит только до сообщения "im active1", т.е. дальше проверки equipped == thisitem не проходит.
Суть в том что если предмет в руке игрока и он активен - должен защищать от урона и разряжаться при этом.
Ивент зареган в классе самого предмета:
Код:
MinecraftForge.EVENT_BUS.register(this);