Отмена эффекта.

Версия Minecraft
1.7.10
459
13
35
Доброго времени суток.
У меня возникла проблема с отменой эффекта на итемфуде.
Вообщем, баловался с кодом и создал поломку ног.
Но теперь антидот (морфий) не могу создать.

Вот код моего творения:
Java:
package com.darkdays.items;

import java.util.List;

import com.darkdays.DarkDaysMain;

import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;

public class dd_morphine extends ItemFood {
       public dd_morphine(String name, int amount, int healAmount, float saturation, boolean isWolfFood) {
              super(0, 0.5F, false);
              this.setCreativeTab(DarkDaysMain.dd_tabheal);
              this.setTextureName("dd_morphine");
              this.setMaxStackSize(4);
           }
    public void onFoodEaten(ItemStack p_77849_1_, World p_77849_2_, EntityPlayer p_77849_3_) {
        if(!p_77849_2_.isRemote && p_77849_1_ != null) {
              p_77849_3_.removePotionEffect(Potion.moveSlowdown.id);
           }
        }
     }

В чём проблема?
Прошу скинуть чуть кода :)
 
7,099
324
1,510
3,005
192
592
7,099
324
1,510
Последнее редактирование:
214
11
59
У тебя, видимо, где-то каждый тик зельем бафается игрок. Если так, то onEaten достаточно выключить условие этого "бафа".

Пользуясь опытом, это либо NBT игрока, тогда: p_77849_3_.getEntityData().setBoolean("isBleeding", false);

Либо это переменная в IExtendedPlayerProperties, тогда ExtendedPlayer.get(p_77849_3_).isBleeding = false;
 
929
30
66
На здоровье.
Java:
protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) {
      if(!world.isRemote) {
         player.removePotionEffect(Potion.moveSlowdown.id);
      }
      super.onFoodEaten(stack, world, player);
   }
}
 
Последнее редактирование:
Сверху