Доброго времени суток. Я хочу сделать вот такую штуку: у меня есть предмет, который при его использовании накладывает на игрока эффекты, после чего теряет прочность. Все эффекты я задаю при инициализации предмета, засовывая их в список effects (кроме голода, который накладывается дефолтно).
Проблема в том, что весь набор нужных эффектов накладывается только один раз, а все последующие -только голод. Я пытался дебажить, эффекты из списка попадают в цикл и при первом использовании, и при последующих. Эффекты, по идеи должны накладываться на игрока, но не накладываются.
Java:
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
if(!world.isRemote) {
if(!(entityplayer.getActivePotionEffect(Potion.hunger) != null) && !this.effects.isEmpty()) {
for(int i = 0; i < this.effects.size(); ++i){
entityplayer.addPotionEffect((PotionEffect)this.effects.get(i));
//for debug: entityplayer.addChatMessage(new ChatComponentText(i + " " + ((PotionEffect) this.effects.get(i)).getEffectName()));
}
entityplayer.addPotionEffect(new PotionEffect(Potion.hunger.id, this.cooldown, 0));
if(!entityplayer.capabilities.isCreativeMode) {
itemstack.damageItem(1, entityplayer);
}
}
}
return itemstack;
}
Проблема в том, что весь набор нужных эффектов накладывается только один раз, а все последующие -только голод. Я пытался дебажить, эффекты из списка попадают в цикл и при первом использовании, и при последующих. Эффекты, по идеи должны накладываться на игрока, но не накладываются.