Créer un kit d'outils
-
Je viens de voir le problème x)
C’est assets, et non asset. Il manque un s. En passant, ton fichier en_us.lang devrait s’appeler en_US.lang
(faut vraiment que je vois pourquoi les pièces jointes bug, j’ai du recup le zip par ftp). -
OK merci sa marche
:::
PS: Bonne anniversaire
::: -
Merci ^^
-
Bonjour petite question dans la commande
public nomDeL'item(ToolMaterial Material)que veut dire Material a la fin ?
-
@‘pams_95’:
Bonjour petite question dans la commande
public nomDeL'item(ToolMaterial Material)que veut dire Material a la fin ?
Material c’est la variable de type ToolMaterial qui doit être passé en paramètre.
-
en fait c’est le nom du materiel ? est-ce que on est obliger de laisser sa ?
-
@‘pams_95’:
en fait c’est le nom du materiel ? est-ce que on est obliger de laisser sa ?
C’est le type de matériel (genre diamant etc. il me semble), et oui c’est obligatoire.
-
OK mais moi sa marche même avec un autre nom ? c pas très grave si.
En tout cas merci de répondre aussi vite -
C’est un nom de paramètre, tu peux mettre ce que tu veux.
-
donc je peut mettre le non du matériaux
-
Bonchour, c’est possible de faire un toolMaterial ou une fonction rendant les outils indestructibles ?
J’ai essayer de mettre une valeur négative en durability, ça fonctionne mais l’épée ne peut pas être enchantée. J’ai essaye aussi une fonction isDamageable mais ça fait rien. Vous avez une solution ?
Merci d’avance ^^
-
Pour chaque item, retourne dans la classe mère et cherche damageItem. Il faut reprendre la fonction dans laquelle damageItem se trouve retire ce damageItem.
Exemple pour l’épée : je vais dans la classe ItemSword et je cherche damageItem. Je trouve ça : public boolean hitEntity(ItemStack p_77644_1_, EntityLivingBase p_77644_2_, EntityLivingBase p_77644_3_) { p_77644_1_.damageItem(1, p_77644_3_); return true; }et ça :
public boolean onBlockDestroyed(ItemStack p_150894_1_, World p_150894_2_, Block p_150894_3_, int p_150894_4_, int p_150894_5_, int p_150894_6_, EntityLivingBase p_150894_7_) { if ((double)p_150894_3_.getBlockHardness(p_150894_2_, p_150894_4_, p_150894_5_, p_150894_6_) != 0.0D) { p_150894_1_.damageItem(2, p_150894_7_); } return true; }Donc dans la classe de mon épée j’ajoute :
public boolean hitEntity(ItemStack p_77644_1_, EntityLivingBase p_77644_2_, EntityLivingBase p_77644_3_) { return true; } public boolean onBlockDestroyed(ItemStack p_150894_1_, World p_150894_2_, Block p_150894_3_, int p_150894_4_, int p_150894_5_, int p_150894_6_, EntityLivingBase p_150894_7_) { return true; }Et mon épée ne s’usera plus.
-
Merci beaucoup robin, ça fonctionne à la perfection !
PS : Je sais pas si c’est qu’une impression, mais la manière dont tu me réponds ne serais pas un peu ironique ?

-
Heu non pas du tout x)
C’est toi qui le prends comme ça. -
Ah, bon bah c’était juste une impression x) Encore merci

-
Encor moi

J’ai suivis le mieux possible le tutoriel, mais mon jeu crahs, dans le crash report il me parlent de ma houe et de ma pelle

Voici mon crash report:
–-- Minecraft Crash Report ---- // On the bright side, I bought you a teddy bear! Time: 15-07-17 10:40 Description: Initializing game java.lang.IllegalArgumentException: The name tc:item_rubis_shovel has been registered twice, for fr.teraforge.teracraft.common.ItemRubisShovel@21632bf8 and fr.teraforge.teracraft.common.ItemRubisHoe@408708a1. at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:402) at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:845) at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:808) at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:149) at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:137) at fr.teraforge.teracraft.common.ModTeraCraft.init(ModTeraCraft.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311) at net.minecraft.client.Minecraft.startGame(Minecraft.java:597) at net.minecraft.client.Minecraft.run(Minecraft.java:942) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:402) at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:845) at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:808) at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:149) at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:137) at fr.teraforge.teracraft.common.ModTeraCraft.init(ModTeraCraft.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311) at net.minecraft.client.Minecraft.startGame(Minecraft.java:597) -- Initialization -- Details: Stacktrace: at net.minecraft.client.Minecraft.run(Minecraft.java:942) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 8.1 (amd64) version 6.3 Java Version: 1.8.0_45, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 850796168 bytes (811 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1490 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCHI mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) UCHI FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1490-1.7.10.jar) UCHI Forge{10.13.4.1490} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1490-1.7.10.jar) UCHE tc{1.0.0} [TeraCraft] (bin) GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.3.12618 Compatibility Profile Context 13.251.9001.1001' Renderer: 'AMD Radeon R7 200 Series' Launched Version: 1.7.10 LWJGL: 2.9.1 OpenGL: AMD Radeon R7 200 Series GL version 4.3.12618 Compatibility Profile Context 13.251.9001.1001, ATI Technologies Inc. GL Caps: Using GL 1.3 multitexturing. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Anisotropic filtering is supported and maximum anisotropy is 16. Shaders are available because OpenGL 2.1 is supported. Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Anisotropic Filtema classe principale:
package fr.teraforge.teracraft.common; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import fr.teraforge.teracraft.proxy.CommonProxy; import net.minecraftforge.common.util.EnumHelper; @Mod(modid = "tc", name = "TeraCraft", version = "1.0.0") public class ModTeraCraft { public static final String MODID = "tc"; @Instance("tc") public static ModTeraCraft instance; @SidedProxy(clientSide = "fr.teraforge.teracraft.proxy.ClientProxy", serverSide = "fr.teraforge.teracraft.proxy.CommonProxy") public static CommonProxy proxy; public static Item itemTc; public static Block blockRubis; public static Block mineraisRubis; public static final IWorldGenerator worldgeneration = new WorldGeneration(); public static Item swordRubis, pickaxeRubis, axeRubis, shovelRubis, hoeRubis; public static ToolMaterial toolRubis = EnumHelper.addToolMaterial("toolRubis", 3, 1750, 10.0F,12.0F, 10); @EventHandler public void preInit(FMLPreInitializationEvent event) { itemTc = new ItemTc().setUnlocalizedName("Rubis").setTextureName(ModTeraCraft.MODID + ":Rubis").setCreativeTab(CreativeTabs.tabMaterials); GameRegistry.registerItem(itemTc, "Rubis"); blockRubis = new BlockRubis(Material.rock).setBlockName("blockrubis").setHardness(7.0F).setResistance(18.0F).setBlockTextureName(MODID + ":block_rubis").setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(blockRubis, "block_rubis"); mineraisRubis = new MineraisRubis(Material.rock).setBlockName("mineraisrubis").setHardness(5.0F).setResistance(18.0F).setBlockTextureName(MODID + ":minerais_rubis").setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(mineraisRubis, "minerais_rubis"); } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRender(); GameRegistry.registerWorldGenerator(worldgeneration, 0); swordRubis = new ItemRubisSword(toolRubis).setUnlocalizedName("swordRubis").setTextureName(MODID + ":LameRuby"); pickaxeRubis = new ItemRubisPickaxe(toolRubis).setUnlocalizedName("pickaxeRubis").setTextureName(MODID + ":PiocheRubis"); axeRubis = new ItemRubisAxe(toolRubis).setUnlocalizedName("axeRubis").setTextureName(MODID + ":HacheRubis"); shovelRubis = new ItemRubisShovel(toolRubis).setUnlocalizedName("shovelRubis").setTextureName(MODID + ":PelleRubis"); hoeRubis = new ItemRubisHoe(toolRubis).setUnlocalizedName("hoeRubis").setTextureName(MODID + ":HoueRubis"); GameRegistry.registerItem(swordRubis, "item_rubis_sword"); GameRegistry.registerItem(pickaxeRubis, "item_rubis_pickaxe"); GameRegistry.registerItem(axeRubis, "item_rubis_axe"); GameRegistry.registerItem(shovelRubis, "item_rubis_shovel"); GameRegistry.registerItem(hoeRubis, "item_rubis_shovel"); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }ItemRubisHoe.java:
package fr.teraforge.teracraft.common; import net.minecraft.item.ItemHoe; public class ItemRubisHoe extends ItemHoe { public ItemRubisHoe(ToolMaterial material) { super(material); } }ItemRubisShovel.java:
package fr.teraforge.teracraft.common; import net.minecraft.item.ItemSpade; public class ItemRubisShovel extends ItemSpade { public ItemRubisShovel(ToolMaterial material) { super(material); } }Encore une foi désolé d’user de votre aide

Bref j’espere que j’aurais la solution
-
L’initialisation des Items/blocks se fait dans le preInit. Tu as mis 2 fois le même nom :
GameRegistry.registerItem(shovelRubis, "item_rubis_shovel"); GameRegistry.registerItem(hoeRubis, "item_rubis_shovel"); -
WOW, T’A VRAIMENT UN BON OEUIL

-
Non, je sais lire un crash report : “The name tc:item_rubis_shovel has been registered twice”
-
WOW, T’A VRAIMENT UN BON OEUIL

par contre, ca marche meme quand je le met dans init, c’est quoi que c’a change?