J’ai réussi à régler mon problème, pour ceux qu’ils veulent savoir c’est :
Class de l’item :
public class ItemPersonalGem extends Item
{
public ItemPersonalGem()
{
super(new Properties().group(Group.MOD));
setRegistryName("personal_gem");
}
@Override
public void addInformation(ItemStack stack, @Nullable World world, List<ITextComponent> tooltip, ITooltipFlag flag)
{
if (stack.hasTag())
{
tooltip.add(new StringTextComponent(ChatFormatting.GRAY + "Contains part of the soul of " + stack.getTag().getString("Owner")));
}
}
}
et celle de mon enchant :
public class EnchantmentPersonalDamage extends Enchantment
{
public EnchantmentPersonalDamage()
{
super(Rarity.RARE, EnchantmentType.WEAPON, EquipmentSlotType.values());
setRegistryName("personal_damage");
}
@Override
public void onEntityDamaged(LivingEntity user, Entity target, int level)
{
ItemStack stack = new ItemStack(Items.PERSONAL_GEM);
stack.getOrCreateTag().putString("Owner", target.getDisplayName().getString());
if (!target.world.isRemote && target instanceof PlayerEntity)
{
((PlayerEntity) target).inventory.addItemStackToInventory(stack);
}
}
}
par contre de cette façon il me give 2 items, comment le régler ?