Bonjours, j’ai fais comme le tuto pour creer mon enchantement poison mais l’effet ne se produit que sur les mob et pas les joueur alors que lorsque que j’ai creer un autre enchantement (de soin se coup la) il agit sur toute les entité meme les joueur, voici mon code :
package fairytail.common;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
public class EnchantmentHandler {
@SubscribeEvent
public void onHurt(LivingHurtEvent event) {
if (event.source.getEntity() instanceof EntityLivingBase) {
EntityLivingBase entity = (EntityLivingBase) event.source.getEntity();
if (entity.getHeldItem() != null) {
if (hasEnchantment(entity.getHeldItem(), 121)) {
event.entityLiving.addPotionEffect(new PotionEffect(Potion.heal.id, 1, 1));
}
}
}
}
public boolean hasEnchantment(ItemStack stack, int id) {
boolean flag = false;
if (stack.getEnchantmentTagList() != null) {
for (int i = 0; i < stack.getEnchantmentTagList().tagCount(); i++) {
if (stack.getEnchantmentTagList().getCompoundTagAt(i).getShort("id") == id) {
flag = true;
} else {
flag = false;
}
}
}
return flag;
}
@SubscribeEvent
public void onHurt1(LivingHurtEvent event) {
if (event.source.getEntity() instanceof EntityLivingBase) {
EntityLivingBase entity = (EntityLivingBase) event.source.getEntity();
if (entity.getHeldItem() != null) {
if (hasEnchantment(entity.getHeldItem(), 120)) {
int level = EnchantmentHelper.getEnchantmentLevel(120, entity.getHeldItem());
event.entityLiving.addPotionEffect(new PotionEffect(Potion.poison.id, 100 * level, 1));
}
}
}
}
public boolean hasEnchantment1(ItemStack stack, int id) {
boolean flag = false;
if (stack.getEnchantmentTagList() != null) {
for (int i = 0; i < stack.getEnchantmentTagList().tagCount(); i++) {
if (stack.getEnchantmentTagList().getCompoundTagAt(i).getShort("id") == id) {
flag = true;
} else {
flag = false;
}
}
}
return flag;
}
}