Краш

Версия Minecraft
1.12.2
683
3
21
Создал топор и теперь крашится майнкрафт
Java:
package en.tiref.lt.init;

import java.util.ArrayList;
import java.util.List;

import en.tiref.lt.objects.Items.BasicAxe;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraftforge.common.util.EnumHelper;


public class ItemInit {
    public static final List<Item> ITEMS = new ArrayList<Item>();
    
    public static final ToolMaterial BASIC_MATERIAL = EnumHelper.addToolMaterial("basic_material", 1, 119, 3.0f, 0.7f, 4);
    
    public static final Item  BASIC_AXE = new BasicAxe("basic_axe", BASIC_MATERIAL);
}

Java:
package en.tiref.lt.objects.Items;

import en.tiref.lt.init.ItemInit;
import en.tiref.lt.util.IHasModel;
import en.tiref.lt.util.Main;
import net.minecraft.item.Item;
import net.minecraft.item.ItemAxe;

public class BasicAxe extends ItemAxe implements IHasModel {

    public BasicAxe(String name, ToolMaterial material) {
        super(material);
           setUnlocalizedName(name);
           setRegistryName(name);
           setCreativeTab(Main.lumberTucoonTab);
           ItemInit.ITEMS.add(this);
    }

    @Override
    public void registerModels() {
    Main.proxy.registerItemRenderer(this, 0, "inventory");
        
    }

}
 
Краш-лог
---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.

Time: 5/18/19 2:29 PM
Description: Initializing game

java.lang.ExceptionInInitializerError
at en.tiref.lt.util.handlers.RegistryHandlers.onItemRegister(RegistryHandlers.java:19)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_RegistryHandlers_onItemRegister_Register.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:782)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:628)
at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)
at net.minecraft.client.Minecraft.init(Minecraft.java:513)
at net.minecraft.client.Minecraft.run(Minecraft.java:421)
at net.minecraft.client.main.Main.main(Main.java:118)
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:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:25)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 5
at net.minecraft.item.ItemAxe.<init>(ItemAxe.java:19)
at en.tiref.lt.objects.Items.BasicAxe.<init>(BasicAxe.java:12)
at en.tiref.lt.init.ItemInit.<clinit>(ItemInit.java:17)
... 23 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
at en.tiref.lt.util.handlers.RegistryHandlers.onItemRegister(RegistryHandlers.java:19)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_RegistryHandlers_onItemRegister_Register.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:782)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:628)
at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)
at net.minecraft.client.Minecraft.init(Minecraft.java:513)

-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.run(Minecraft.java:421)
at net.minecraft.client.main.Main.main(Main.java:118)
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:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:25)

-- System Details --
Details:
Minecraft Version: 1.12.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_201, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 898687496 bytes (857 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.42 Powered by Forge 14.23.5.2768 5 mods loaded, 5 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

| State | ID | Version | Source | Signature |
|:----- |:--------- |:------------ |:-------------------------------- |:--------- |
| UCH | minecraft | 1.12.2 | minecraft.jar | None |
| UCH | mcp | 9.42 | minecraft.jar | None |
| UCH | FML | 8.0.99.99 | forgeSrc-1.12.2-14.23.5.2768.jar | None |
| UCH | forge | 14.23.5.2768 | forgeSrc-1.12.2-14.23.5.2768.jar | None |
| UCH | lt | 0.0.1 | bin | None |

Loaded coremods (and transformers):
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.35' Renderer: 'GeForce GT 610/PCIe/SSE2'
Launched Version: 1.12.2
LWJGL: 2.9.4
OpenGL: GeForce GT 610/PCIe/SSE2 GL version 4.6.0 NVIDIA 391.35, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

Using VBOs: Yes
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)
CPU: 2x AMD Athlon(tm) II X2 240 Processor
Краш-лог:
---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.

Time: 5/18/19 2:29 PM
Description: Initializing game

java.lang.ExceptionInInitializerError
	at en.tiref.lt.util.handlers.RegistryHandlers.onItemRegister(RegistryHandlers.java:19)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_RegistryHandlers_onItemRegister_Register.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
	at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:782)
	at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:628)
	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)
	at net.minecraft.client.Minecraft.init(Minecraft.java:513)
	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
	at net.minecraft.client.main.Main.main(Main.java:118)
	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:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
	at GradleStart.main(GradleStart.java:25)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 5
	at net.minecraft.item.ItemAxe.<init>(ItemAxe.java:19)
	at en.tiref.lt.objects.Items.BasicAxe.<init>(BasicAxe.java:12)
	at en.tiref.lt.init.ItemInit.<clinit>(ItemInit.java:17)
	... 23 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
	at en.tiref.lt.util.handlers.RegistryHandlers.onItemRegister(RegistryHandlers.java:19)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_RegistryHandlers_onItemRegister_Register.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
	at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:782)
	at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:628)
	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)
	at net.minecraft.client.Minecraft.init(Minecraft.java:513)

-- Initialization --
Details:
Stacktrace:
	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
	at net.minecraft.client.main.Main.main(Main.java:118)
	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:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
	at GradleStart.main(GradleStart.java:25)

-- System Details --
Details:
	Minecraft Version: 1.12.2
	Operating System: Windows 7 (amd64) version 6.1
	Java Version: 1.8.0_201, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 898687496 bytes (857 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	FML: MCP 9.42 Powered by Forge 14.23.5.2768 5 mods loaded, 5 mods active
	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

	| State | ID        | Version      | Source                           | Signature |
	|:----- |:--------- |:------------ |:-------------------------------- |:--------- |
	| UCH   | minecraft | 1.12.2       | minecraft.jar                    | None      |
	| UCH   | mcp       | 9.42         | minecraft.jar                    | None      |
	| UCH   | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.5.2768.jar | None      |
	| UCH   | forge     | 14.23.5.2768 | forgeSrc-1.12.2-14.23.5.2768.jar | None      |
	| UCH   | lt        | 0.0.1        | bin                              | None      |

	Loaded coremods (and transformers): 
	GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.35' Renderer: 'GeForce GT 610/PCIe/SSE2'
	Launched Version: 1.12.2
	LWJGL: 2.9.4
	OpenGL: GeForce GT 610/PCIe/SSE2 GL version 4.6.0 NVIDIA 391.35, NVIDIA Corporation
	GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

	Using VBOs: Yes
	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)
	CPU: 2x AMD Athlon(tm) II X2 240 Processor
Решение
Caused by: java.lang.ArrayIndexOutOfBoundsException: 5
at net.minecraft.item.ItemAxe.<init>(ItemAxe.java:19)
at en.tiref.lt.objects.Items.BasicAxe.<init>(BasicAxe.java:12)
at en.tiref.lt.init.ItemInit.<clinit>(ItemInit.java:17)
... 23 more

Краш, потому что нужно юзать другой конструктор в ItemAxe, тогда будет все нормально работать.
7,099
324
1,509
683
3
21
Java:
package en.tiref.lt.util.handlers;
import en.tiref.lt.init.BlockInit;
import en.tiref.lt.init.ItemInit;
import en.tiref.lt.util.IHasModel;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

@EventBusSubscriber
public class RegistryHandlers
{
    @SubscribeEvent
    public static void onItemRegister(RegistryEvent.Register.Register<Item> event)
    {
        event.getRegistry().registerAll(ItemInit.ITEMS.toArray(new Item[0]));
    }
    
    @SubscribeEvent
    public static void onBlockRegister(RegistryEvent.Register.Register<Block> event)
    {
        event.getRegistry().registerAll(BlockInit.BLOCKS.toArray(new Block[0]));
    }
    
    @SubscribeEvent
    public static void onModelRegister(RegistryEvent.Register.Register<Item> event)
    {
        for(Item item : ItemInit.ITEMS)
        {
            if(item instanceof IHasModel)
            {
                ((IHasModel)item).registerModels();
            }
        }
        for(Block block : BlockInit.BLOCKS)
        {
            if(block instanceof IHasModel)
            {
                ((IHasModel)block).registerModels();
            }
        }
    }
}
 
7,099
324
1,509
Вроде проблема в том, что статические поля инициализируются в неправильном порядке. Попробуй добавить в RegistryHandlers#onItemRegister какое-то обращение к полям класса ItemInit, чтобы они инициализировались и в ITEMS че-то было
 
7,099
324
1,509
За качество этого тутора не отвечаю. Вот код в учебнике - 100% рабочий. Там не складываются итемы в список, а регаются каждый по отдельности. Если хочешь какой-то более продвинутой системы регистрации, глянь EndersMagic/EnderMagic
 
683
3
21
Код в учебнике меня не устраивает тем что надо регать по отдельности,а более продвинутая система регистрация там есть все , но оно мне не сильно нужно
 
3,005
192
592
@SuperCatMaster Можно больше Ру33кого языка?

Если это Event, то можно и С статиком.
А если не знаешь, что такое можно, лучше не писать..
 
683
3
21
это куда в регистрацию? и еще тут в краше пишет at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_4_RegistryHandlers_onItemRegister_Register.invoke(.dynamic) только что это значит...
 
Последнее редактирование:
3,005
192
592
Caused by: java.lang.ArrayIndexOutOfBoundsException: 5
at net.minecraft.item.ItemAxe.<init>(ItemAxe.java:19)
at en.tiref.lt.objects.Items.BasicAxe.<init>(BasicAxe.java:12)
at en.tiref.lt.init.ItemInit.<clinit>(ItemInit.java:17)
... 23 more

Краш, потому что нужно юзать другой конструктор в ItemAxe, тогда будет все нормально работать.
 
Сверху