Проблема пре-инсталяции

Версия Minecraft
1.7.10
33
1
0
Я никогда не встречал такой ошибки как ее лечить?? 

[13:39:55] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from CONSTRUCTING to PREINITIALIZATION. Loading cannot continue
[13:39:55] [Client thread/ERROR] [FML]: 
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UC mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
UC FML{7.10.99.99} [Forge Mod Loader] (forge-1.7.10-10.13.4.1614-1.7.10.jar) 
UC Forge{10.13.4.1614} [Minecraft Forge] (forge-1.7.10-10.13.4.1614-1.7.10.jar) 
UE megamod{0.0.0.0.0.4} [Modex] (modid-1.0.jar) 
[13:39:55] [Client thread/ERROR] [FML]: The following problems were captured during this phase
[13:39:55] [Client thread/ERROR] [FML]: Caught exception from megamod
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_101]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_101]
at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:440) ~[forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[forge-1.7.10-10.13.4.1614-1.7.10.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
at cpw.mods.fml.common.Loader.loadMods(Loader.java:513) [Loader.class:?]
at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:208) [FMLClientHandler.class:?]
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:480) [bao.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878) [bao.class:?]
at net.minecraft.client.main.Main.main(SourceFile:148) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
Caused by: java.lang.NullPointerException
at net.minecraft.item.ItemTool.<init>(ItemTool.java:29) ~[acg.class:?]
at net.minecraft.item.ItemPickaxe.<init>(SourceFile:17) ~[adn.class:?]
at divanchik.megamod.iopickaxe.<init>(iopickaxe.java:9) ~[iopickaxe.class:?]
at divanchik.megamod.BaseMegaMode.<clinit>(BaseMegaMode.java:23) ~[BaseMegaMode.class:?]
... 35 more
Если нужен какой код из классов напишите я не понимаю здесь изза какой части кода ошибка
 
Решение
Инициализировать значит присвоить значение. Дело скорее всего в том, что у тебя сначала создается твой итем, а только потом ToolMaterial. Поэтому при создании итема в конструкторе использeется null.


А еще, сначала нужно создавать, а только потом регать. И не нужно потом еще раз создавать. Кароче, иди учи java
33
1
0
Dahaka написал(а):
Стандартный NullPointerException. Что-то не передал в свой iopickaxe. Скорее всего toolMaterial

847360290b9d42f78ba4beaded075ddf.png
Да вро де бы передал 

package divanchik.megamod;

import net.minecraft.item.Item;
import net.minecraft.item.ItemPickaxe;

public class iopickaxe extends ItemPickaxe {

protected iopickaxe() {
super(BaseMegaMode.iosplav);
this.setCreativeTab(BaseMegaMode.tabTutorial);
this.setTextureName("megamod:iopickaxe");
this.setUnlocalizedName("iopickaxe");
}

}
 
33
1
0
Dahaka написал(а):
Ага. А вот инициализировал ли ты BaseMegaMode.iosplav? Потому что по логу, ты туда null передаешь

а как передать не нул я просто немного тук тук


divanchik написал(а):
Dahaka написал(а):
Ага. А вот инициализировал ли ты BaseMegaMode.iosplav? Потому что по логу, ты туда null передаешь

а как передать не нул я просто немного тук тук
Это надо как то в gameregistry материал прописывать???
 
33
1
0
Dahaka написал(а):
Инициализировать BaseMegaMode.iosplav в статическом блоке (если ты, конечно, его вообще инициализировал).
А то итем ты создаешь в clinit'е, а BaseMegaMode.iosplav непонятно где.

честно сказать я ничего не понял в 1 преложении. iosplav я создавал там же где блок и кирку .
package divanchik.megamod;


import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.EnumHelper;

@Mod (modid = "megamod", name = "Modex", version = "0.0.0.0.0.4")
public class BaseMegaMode {

public static CreativeTabs tabTutorial = new TabTutorial("Tab");
public static Item microsxem = new Microsxem(2324);
public static Block systemcore;
public static Item iopickaxe = new iopickaxe();
public static final ToolMaterial iosplav= EnumHelper.addToolMaterial("IOSplav", 3, 2000, 10.0F, 5.0F, 10);

@EventHandler
public void preLoad(FMLPreInitializationEvent event)
{
//Ядро блок
systemcore = new BlockBestBlockEver();

GameRegistry.registerBlock(systemcore, "systemcore");
//микросхема
microsxem = new Microsxem(2324);

GameRegistry.registerItem(microsxem,"Microsxem");
microsxem = new Microsxem(2324).setCreativeTab(BaseMegaMode.tabTutorial);
//кирка
GameRegistry.registerItem(iopickaxe,"IOpickaxe");
iopickaxe = new iopickaxe();
//рецепт ядра
GameRegistry.addRecipe(new ItemStack(BaseMegaMode.systemcore, 1), 
                 new Object[]{ "###", "#X#", "###",
               ('X'), Items.lava_bucket,  ('#'), BaseMegaMode.microsxem});
//рецепт микросхемы
GameRegistry.addRecipe(new ItemStack(BaseMegaMode.microsxem, 1), 
                 new Object[]{ "X#X", "###", "X#X",
                 ('X'), Blocks.wool, ('#'), Items.iron_ingot,});
//рецепт кирки
GameRegistry.addRecipe(new ItemStack(BaseMegaMode.iopickaxe, 1), 
                 new Object[]{ "XXX", " # ", " # ",
                 ('X'), BaseMegaMode.microsxem, ('#'), Items.iron_ingot,});
 

}
}
И что значит инициализировать ?? зарегать в gameregistry или что???
 
2,505
81
397
Инициализировать значит присвоить значение. Дело скорее всего в том, что у тебя сначала создается твой итем, а только потом ToolMaterial. Поэтому при создании итема в конструкторе использeется null.


А еще, сначала нужно создавать, а только потом регать. И не нужно потом еще раз создавать. Кароче, иди учи java
 
33
1
0
Dahaka написал(а):
Инициализировать значит присвоить значение. Дело скорее всего в том, что у тебя сначала создается твой итем, а только потом ToolMaterial. Поэтому при создании итема в конструкторе использeется null.


А еще, сначала нужно создавать, а только потом регать. И не нужно потом еще раз создавать. Кароче, иди учи java



Спасибо понял теперь в чем дело было
 
Сверху