Résolu Bière bug de partout
-
Bonjour,
j’aimerais faire une boisson qui donne un effet mais j’ai 2 problèmes
1: le bruit est celui de quand on mange qqch
2: sa ne donne pas la bouteille vide (bouteille créée au par-avant)voici le code:
Beer.java
package com.frenchdevteam.goodlifemod.objects.items; import com.frenchdevteam.goodlifemod.GoodLife; import com.frenchdevteam.goodlifemod.init.ItemInit; import com.frenchdevteam.goodlifemod.util.interfaces.IHasModel; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import javax.annotation.Nullable; import java.util.List; public class Beer extends ItemFood implements IHasModel { public Beer(String name, int amount, float saturation, boolean isWolfFood) { super(amount, saturation, isWolfFood); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(GoodLife.GOODLIFETAB); setAlwaysEdible(); ItemInit.ITEMS.add(this); } @Override public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) { entityLiving.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 200, 5, false, false)); entityLiving.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 200, 1, false, false)); ItemInit.ITEMS.add(ItemInit.BOUTEILLE); return super.onItemUseFinish(stack, worldIn, entityLiving); } @Override public void registerModels() { GoodLife.proxy.registerItemRenderer(this, 0, "inventory"); } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { return null; } @Override public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) { tooltip.add("${beer}"); super.addInformation(stack, worldIn, tooltip, flagIn); } }
Merci d’vance
-
super tout est fini (appart un bruit de rôt a la fin mais on l’entends pas)
package com.frenchdevteam.goodlifemod.objects.items; import com.frenchdevteam.goodlifemod.GoodLife; import com.frenchdevteam.goodlifemod.init.ItemInit; import com.frenchdevteam.goodlifemod.util.interfaces.IHasModel; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import javax.annotation.Nullable; import java.util.List; public class Beer extends ItemFood implements IHasModel { public Beer(String name, int amount, float saturation, boolean isWolfFood) { super(amount, saturation, isWolfFood); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(GoodLife.GOODLIFETAB); setAlwaysEdible(); this.setMaxStackSize(1); ItemInit.ITEMS.add(this); } @Override public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) { entityLiving.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 300, 5, false, false)); entityLiving.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 200, 1, false, false)); super.onItemUseFinish(stack, worldIn, entityLiving); return new ItemStack(ItemInit.BOUTEILLE); } public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.DRINK; } @Override public void registerModels() { GoodLife.proxy.registerItemRenderer(this, 0, "inventory"); } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { return null; } @Override public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) { tooltip.add("à boir avec modération!"); super.addInformation(stack, worldIn, tooltip, flagIn); } }
-
Bonjour,
De mémoire il y a une méthode à implémenter renvoyant un enum qui a un nom du genre getAction et sur laquelle on peut renvoyer un enum avec la valeur DRINK. Regardes du côté de l’item de potion ou du seau de lait.Pour redonner la bouteille vide il faut dans le constructeur ajouter
this.setContainerItem(MonModItems.NOM_BOUTEILLE);
-
mercii je vais voir tout sa quand c’est bon je donne la bonne réponse
-
@robin4002 sa marche pas pour le give
-
Comment ça cela ne fonctionne pas pour le give ?
-
j’ai trouvé pour le give c’est ça
return new ItemStack(Items.BOWL);
-
pour le truc du bruit je trouve pas dumoin, je sais pas ou et comment le mettre
-
En 1.16 c’est cette méthode :
public UseAction getUseAction(ItemStack stack) { return UseAction.DRINK; }
-
super tout est fini (appart un bruit de rôt a la fin mais on l’entends pas)
package com.frenchdevteam.goodlifemod.objects.items; import com.frenchdevteam.goodlifemod.GoodLife; import com.frenchdevteam.goodlifemod.init.ItemInit; import com.frenchdevteam.goodlifemod.util.interfaces.IHasModel; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import javax.annotation.Nullable; import java.util.List; public class Beer extends ItemFood implements IHasModel { public Beer(String name, int amount, float saturation, boolean isWolfFood) { super(amount, saturation, isWolfFood); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(GoodLife.GOODLIFETAB); setAlwaysEdible(); this.setMaxStackSize(1); ItemInit.ITEMS.add(this); } @Override public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) { entityLiving.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 300, 5, false, false)); entityLiving.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 200, 1, false, false)); super.onItemUseFinish(stack, worldIn, entityLiving); return new ItemStack(ItemInit.BOUTEILLE); } public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.DRINK; } @Override public void registerModels() { GoodLife.proxy.registerItemRenderer(this, 0, "inventory"); } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { return null; } @Override public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) { tooltip.add("à boir avec modération!"); super.addInformation(stack, worldIn, tooltip, flagIn); } }