Clique droit avec un item = Effet de potion
-
Tu dois créer une class NomDeTonItem, et remplace new ItemFood par new NomDeTonItem, puis créé une class avec le NomDeTonItem. Mais attend que quelqu’un vérifie ce que je dis, pour être sur de ne pas faire de bêtises
-
Exact zery59
-
Du coup j’ai ça :
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class miningPotion { public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { event.player.addPotionEffect(new PotionEffect(3, 20, 2)); if (!player.capabilities.isCreativeMode) { –stack.stackSize; } return stack; } }Mais il me souligne en rouge event et dit : ‘event cannot be resolved’
-
Mets juste player, enlève event.
-
Ok j’ai essayer plus d’erreur pour eclipse mais un crash au lancement de minecraft :
:::
[17:47:03] [Client thread/ERROR] [FML]: The following problems were captured during this phase
[17:47:03] [Client thread/ERROR] [FML]: Caught exception from potionplus
java.lang.NullPointerException: Can’t add null-object to the registry, name potionplus:miningPotion.
at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:353) ~[FMLControlledNamespacedRegistry.class:?]
at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:772) ~[GameData.class:?]
at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:740) ~[GameData.class:?]
at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:143) ~[GameRegistry.class:?]
at com.gmail.loustak347.common.PotionPlus.preInit(PotionPlus.java:59) ~[PotionPlus.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[FMLModContainer.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) ~[guava-15.0.jar:?]
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) ~[guava-15.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) ~[guava-15.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) ~[guava-15.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:267) ~[guava-15.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) ~[guava-15.0.jar:?]
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) ~[guava-15.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) ~[guava-15.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) ~[guava-15.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:267) ~[guava-15.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:512) [Loader.class:?]
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:239) [FMLClientHandler.class:?]
at net.minecraft.client.Minecraft.startGame(Minecraft.java:522) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:892) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
:::Je pense que ça viens de quelque part ici :
public void preInit(FMLPreInitializationEvent event) { hotSlimeBall = new Item().setTextureName(PotionPlus.MODID+":hotSlimeBall").setUnlocalizedName("hotSlimeBall"); GameRegistry.addSmelting(Items.slime_ball,new ItemStack(hotSlimeBall) , 0.0f); GameRegistry.registerItem(hotSlimeBall, "HotSlimeBall", PotionPlus.MODID); hotSlimeBall.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative new miningPotion(); GameRegistry.addShapelessRecipe(new ItemStack(miningPotion), new Object[]{new ItemStack(Items.potionitem, 1),new ItemStack(hotSlimeBall)}); GameRegistry.registerItem(miningPotion, "miningPotion", PotionPlus.MODID); miningPotion.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative }edit :
Mon ancienne ligne était :miningPotion = new ItemFood(0, 0.1f, false).setPotionEffect(3, 120, 2, 1.0f).setUnlocalizedName("miningPotion").setTextureName(PotionPlus.MODID+":miningPotion"); -
miningPotion = new miningPotion().setUnlocalizedName(“miningPotion”).setTextureName(PotionPlus.MODID+“:miningPotion”);
et pas new miningPotion(); … -
C’est ce que j’avait fait au début mais il me souligne ‘.setUnlocalizedName’ et tous les autres arguments car : d’après eclipse elle ne sont pas définit pour le type ‘mininPotion’
Je rapelle ma page miningPotion.java :
:::
package com.gmail.loustak347.common;import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;public class miningPotion {
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
player.addPotionEffect(new PotionEffect(3, 20, 2));
if (!player.capabilities.isCreativeMode)
{
–stack.stackSize;
}
return stack;
}
}
::: -
public class miningPotion extends Item {
-
c’est la base ca a tu au moins lu le tuto pour créer un item?
-
Merci ça fonctionne normalement, et sinon oui j’avais vu le tuto pour créer un item.
