Bonjour , j’ai un problème , j’ai suivi ce tuto pour créer un fraisier mais lorsque je lance le jeu il crash et il m’indique :2013-11-27 15:20:33 [Infos] [STDOUT] Vec3 Pool Size: ERROR NullPointerException: null
éclipse ne m’indique pas d’erreur et je ne l’ai pas trouvé par moi même.
Merci d’avance si vous pouvez m’aider.
La classe principale:
:::
| package ModTutoriel; |
| |
| import net.minecraft.block.Block; |
| import net.minecraft.item.EnumArmorMaterial; |
| import net.minecraft.item.EnumToolMaterial; |
| import net.minecraft.item.Item; |
| import net.minecraft.item.ItemSeeds; |
| import net.minecraft.item.ItemStack; |
| import net.minecraft.item.crafting.FurnaceRecipes; |
| import net.minecraftforge.common.EnumHelper; |
| import net.minecraftforge.common.MinecraftForge; |
| import tutoriel.proxy.TutoCommonProxy; |
| 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.network.NetworkMod; |
| import cpw.mods.fml.common.registry.GameRegistry; |
| |
| @Mod(modid = "ModTutoriel", name = "Mod Tutoriel", version = "1.0.0", acceptedMinecraftVersions = "[1.6.4,)", useMetadata = true) |
| @NetworkMod(clientSideRequired = true, serverSideRequired = false) |
| |
| public class ModTutoriel |
| { |
| |
| @SidedProxy(clientSide = "tutoriel.proxy.TutoClientProxy", serverSide = "tutoriel.proxy.TutoCommonProxy") |
| public static TutoCommonProxy proxy; |
| |
| @Instance("ModTutoriel") |
| public static Block blockfraisierculture; |
| public static Item fraise, fraiseseeds; |
| public static ModTutoriel instance; |
| public static Block ebonite; |
| public static Item eboniteingot; |
| public static Item ebonitehelmet, ebonitechestplate, eboniteleggings, eboniteboots; |
| static EnumArmorMaterial eboniteArmor = EnumHelper.addArmorMaterial("eboniteingot", 18, new int[]{2, 6, 3, 2}, 15); |
| public static Item ebonitesword, ebonitepickaxe, eboniteaxe, eboniteshovel, ebonitehoe; |
| static EnumToolMaterial eboniteTool = EnumHelper.addToolMaterial("eboniteingot", 2, 350, 6.0F, 3, 20); |
| @EventHandler |
| |
| public void PreInit(FMLPreInitializationEvent event) |
| { |
| //Configuration |
| GameRegistry.registerWorldGenerator(new WorldGeneratorEbonite()); |
| ebonite = new ebonite(2000).setHardness(5.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("ebonite").setTextureName("modtutoriel:ebonite");//Blocks |
| GameRegistry.registerBlock(ebonite, "ebonite"); |
| GameRegistry.registerBlock(blockfraisierculture, "blockfraisierculture"); |
| //Items |
| ebonitesword = new Itemebonitesword(12006, eboniteTool).setUnlocalizedName("ebonitesword").setTextureName("modtutoriel:ebonitesword"); |
| ebonitepickaxe = new Itemebonitepickaxe(12007, eboniteTool).setUnlocalizedName("ebonitepickaxe").setTextureName("modtutoriel:ebonitepickaxe"); |
| eboniteaxe = new Itemeboniteaxe(12008, eboniteTool).setUnlocalizedName("eboniteaxe").setTextureName("modtutoriel:eboniteaxe"); |
| eboniteshovel = new Itemeboniteshovel(12009, eboniteTool).setUnlocalizedName("eboniteshovel").setTextureName("modtutoriel:eboniteshovel"); |
| ebonitehoe = new Itemebonitehoe(12010, eboniteTool).setUnlocalizedName("ebonitehoe").setTextureName("modtutoriel:ebonitehoe"); |
| ebonitehelmet = new ItemeboniteArmor(12002, eboniteArmor, 0,0).setUnlocalizedName("ebonitehelmet").setTextureName("modtutoriel:ebonitehelmet"); |
| ebonitechestplate = new ItemeboniteArmor(12003, eboniteArmor, 0, 1).setUnlocalizedName("ebonitechestplate").setTextureName("modtutoriel:ebonitechestplate"); |
| eboniteleggings = new ItemeboniteArmor(12004, eboniteArmor, 0, 2).setUnlocalizedName("eboniteleggings").setTextureName("modtutoriel:eboniteleggings"); |
| eboniteboots = new ItemeboniteArmor(12005, eboniteArmor, 0, 3).setUnlocalizedName("eoniteboots").setTextureName("modtutoriel:eboniteboots"); |
| eboniteingot = new eboniteingot(12000).setUnlocalizedName("eboniteingot").setTextureName("modtutoriel:eboniteingot"); |
| GameRegistry.registerItem(eboniteingot, "eboniteingot", "ModTutoriel"); |
| blockfraisierculture = new blockfraisierculture(2001).setUnlocalizedName("blockfraisierculture"); |
| fraise = new Item(12011).setUnlocalizedName("fraise").setTextureName("ModTutoriel:fraise"); |
| fraiseseeds = new ItemSeeds(12012, this.blockfraisierculture.blockID, Block.tilledField.blockID).setUnlocalizedName("fraiseseeds").setTextureName("ModTutoriel:fraiseseeds"); |
| //Achievements |
| } |
| |
| @EventHandler |
| public void Init(FMLInitializationEvent event) |
| { |
| //Registry |
| |
| //Mobs |
| |
| //Render |
| proxy.registerRender(); |
| //NetWork |
| } |
| |
| @EventHandler |
| public void PostInit(FMLPostInitializationEvent event) |
| { |
| //Language |
| |
| //Recipe |
| FurnaceRecipes.smelting().addSmelting(ModTutoriel.ebonite.blockID, 0, new ItemStack(eboniteingot), 0.7F); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.ebonitesword), new Object[]{" X ", " X ", " Y ", 'X', eboniteingot, |
| 'Y', new ItemStack(Item.stick)}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.eboniteaxe), new Object[]{"XX ", "XY ", " Y ", 'X', eboniteingot, |
| 'Y', new ItemStack(Item.stick)}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.ebonitepickaxe), new Object[]{"XXX", " Y ", " Y ", 'X', eboniteingot, |
| 'Y', new ItemStack(Item.stick)}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.eboniteshovel), new Object[]{" X ", " Y ", " Y ", 'X', eboniteingot, |
| 'Y', new ItemStack(Item.stick)}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.ebonitehoe), new Object[]{"XX ", " Y ", " Y ", 'X', eboniteingot, |
| 'Y', new ItemStack(Item.stick)}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.ebonitechestplate), new Object[]{"X X", "XXX", "XXX", 'X', eboniteingot,}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.ebonitehelmet), new Object[]{"XXX", "X X", " ", 'X', eboniteingot,}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.eboniteleggings), new Object[]{"XXX", "X X", "X X", 'X', eboniteingot,}); |
| GameRegistry.addRecipe(new ItemStack(ModTutoriel.eboniteboots), new Object[]{" ", "X X", "X X", 'X', eboniteingot,}); |
| } |
| } |
| |
:::
La classe du block fraisier :
:::
| package ModTutoriel; |
| |
| import java.util.List; |
| |
| import cpw.mods.fml.relauncher.Side; |
| import cpw.mods.fml.relauncher.SideOnly; |
| import net.minecraft.block.BlockPotato; |
| import net.minecraft.client.renderer.texture.IconRegister; |
| import net.minecraft.creativetab.CreativeTabs; |
| import net.minecraft.item.ItemStack; |
| import net.minecraft.util.Icon; |
| |
| public class blockfraisierculture extends BlockPotato |
| { |
| public static String[] type = new String[]{"fraisierculture_0", "fraisierculture_1", "fraisierculture_2", "fraisierculture_3"}; |
| private Icon[] IconArray; |
| |
| public blockfraisierculture (int id) |
| { |
| super(id); |
| this.setCreativeTab(CreativeTabs.tabBlock); |
| } |
| @SideOnly(Side.CLIENT) |
| public void getSubBlocks(int id, CreativeTabs creativeTabs, List list) |
| { |
| for(int metadata = 0; metadata < type.length; metadata++) |
| { |
| list.add(new ItemStack(id, 1, metadata)); |
| } |
| } |
| @SideOnly(Side.CLIENT) |
| public Icon getIcon(int side, int metadata) |
| { |
| return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0]; |
| } |
| |
| public void registerIcons(IconRegister iconregister) |
| { |
| IconArray = new Icon[type.length]; |
| |
| for(int i = 0; i < type.length; i++) |
| { |
| IconArray* = iconregister.registerIcon("ModTutoriel:" + type*); |
| } |
| } |
| |
| protected int getSeedItem() |
| { |
| return ModTutoriel.fraiseseeds.itemID; |
| } |
| |
| protected int getCropItem() |
| { |
| return ModTutoriel.fraise.itemID; |
| } |
| |
| public int damageDropped(int metadata) |
| { |
| return metadata; |
| } |
| } |
| ::: |
Maintenant la class itemblockfraisierculture (je sais le nom est long xd)
Je ne suis pas sur qu’il fallait faire cette class mais elle était dans le tuto sur les métadatas alors j’ai préféré la faire.
:::
| package ModTutoriel; |
| |
| import net.minecraft.item.ItemBlock; |
| import net.minecraft.item.ItemStack; |
| |
| public class itemblockfraisierculture extends ItemBlock |
| { |
| |
| public itemblockfraisierculture(int par1) { |
| super(par1); |
| this.setHasSubtypes(true); |
| |
| } |
| |
| public int getMetadata(int metadata) |
| { |
| return metadata; |
| } |
| public String getUnlocalizedName(ItemStack stack) |
| { |
| int metadata = stack.getItemDamage(); |
| if(metadata > blockfraisierculture.type.length || metadata < 0) |
| { |
| metadata = 0; |
| } |
| return super.getUnlocalizedName() + "." + blockfraisierculture.type[metadata]; |
| } |
| } |
:::
et le log du crash :
:::
–-- Minecraft Crash Report ----
// Would you like a cupcake?
Time: 27/11/13 15:20
Description: Initializing game
java.lang.IllegalArgumentException: Can not set static net.minecraft.block.Block field ModTutoriel.ModTutoriel.blockfraisierculture to ModTutoriel.ModTutoriel
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:449)
at cpw.mods.fml.common.FMLModContainer.processFieldAnnotations(FMLModContainer.java:382)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:525)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:201)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:511)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:473)
at net.minecraft.client.Minecraft.run(Minecraft.java:808)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at cpw.mods.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:449)
at cpw.mods.fml.common.FMLModContainer.processFieldAnnotations(FMLModContainer.java:382)
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:525)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:201)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
at cpw.mods.fml.common.Loader.loadMods(Loader.java:511)
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:473)
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.run(Minecraft.java:808)
at net.minecraft.client.main.Main.main(Main.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
-- System Details --
Details:
Minecraft Version: 1.6.4
Operating System: Windows 8 (amd64) version 6.2
Java Version: 1.7.0_45, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 747302680 bytes (712 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
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.11 FML v6.4.45.953 Minecraft Forge 9.11.1.953 4 mods loaded, 4 mods active
mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
FML{6.4.45.953} [Forge Mod Loader] (bin) Unloaded->Constructed
Forge{9.11.1.953} [Minecraft Forge] (bin) Unloaded->Constructed
ModTutoriel{1.0.0} [Mod Tutoriel] (bin) Unloaded->Errored
Launched Version: 1.6
LWJGL: 2.9.0
OpenGL: AMD Radeon HD 7670M GL version 4.2.11764 Compatibility Profile Context, ATI Technologies Inc.
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Pack: Default
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
:::