[1.12.2] Не могу создать топор...

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.12.2
Прошу помочь мне решить проблему, из-за которой Minecraft не инициализирует мой мод. Я написал код (прямо как на mcmodding.ru), который отвечал за новые инструменты. Почему-то, при запуске игры со следующим набором инструментов: киркой, лопатой и мечом, все работает корректно. Но как только я убираю комментирование со строчки, которая отвечает за загрузку топора в клиент, Minecraft "крашится". Заранее всем спасибо.
Код:
package ru.ninecraft.addons.items;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemAxe;
import net.minecraftforge.common.util.EnumHelper;
import ru.ninecraft.addons.IHasModel;
import ru.ninecraft.addons.InitItems;
import ru.ninecraft.addons.Main;

public class ItemDamascusAxe extends ItemAxe implements IHasModel {
    
    public ItemDamascusAxe(String name) {
        
        super(EnumHelper.addToolMaterial("ninecraftaddons:damascus_axe", 2, 500, 10.0F, 2.0F, 0));
        setRegistryName(name);
        setUnlocalizedName("Damascus Axe");
        setCreativeTab(Main.EQUIPMENTS_TAB);
        setMaxStackSize(1);
        
        InitItems.ITEMS.add(this);
    }

    @Override
    public void registerModels() {
        
        Main.proxy.registerItemRenderer(this, 0, "inventory");
        
    }
    
}
 
Решение
За место создания этого класса ты бы мог просто изменить
super(EnumHelper.addToolMaterial("ninecraftaddons:damascus_axe", 2, 500, 10.0F, 2.0F, 0));
На:
Код:
super(EnumHelper.addToolMaterial("ninecraftaddons:damascus_axe", 2, 500, 10.0F, 2.0F, 0), 8.0F, -3.1F);
И результат был бы такой же.
7,099
324
1,509
super(EnumHelper.addToolMaterial("ninecraftaddons:damascus_axe", 2, 500, 10.0F, 2.0F, 0));
Так здесь же.. Как бы.. Материал должен быть, а не сам инструмент. Если судить по тому же самому -
1562246621590.png
 
super(EnumHelper.addToolMaterial("ninecraftaddons:damascus_axe", 2, 500, 10.0F, 2.0F, 0));
Так здесь же.. Как бы.. Материал должен быть, а не сам инструмент. Если судить по тому же самому -
??? Материал может по-разному называться. Хочу я создать, например, 2 вида кирки: обсидиановую и кварцевую. Как я назову их материал? modid:quartz_pickaxe и modid:eek:bsidian_pickaxe. К тому же, я посоветовал бы прежде посмотреть весь мой код и попытаться его понять, чем просто сделать замечание, которое появилось на пустом месте.
 
7,099
324
1,509
Код:
package ru.ninecraft.addons;

import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;

public class ClientProxy extends CommonProxy {

    public void registerItemRenderer(Item item, int meta, String id)
    {
        ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
    }
    
}
 
Java:
---- Minecraft Crash Report ----
// There are four lights!

Time: 7/4/19 5:35 PM
Description: Initializing game

java.lang.ExceptionInInitializerError
    at ru.ninecraft.addons.RegisterHandler.onItemRegister(RegisterHandler.java:15)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_5_RegisterHandler_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:809)
    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:514)
    at net.minecraft.client.Minecraft.run(Minecraft.java:422)
    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 ru.ninecraft.addons.items.ItemDamascusAxe.<init>(ItemDamascusAxe.java:15)
    at ru.ninecraft.addons.InitItems.<clinit>(InitItems.java:42)
    ... 23 more


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

-- Head --
Thread: Client thread
Stacktrace:
    at ru.ninecraft.addons.RegisterHandler.onItemRegister(RegisterHandler.java:15)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_5_RegisterHandler_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:809)
    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:514)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:422)
    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 10 (amd64) version 10.0
    Java Version: 1.8.0_212, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 721106824 bytes (687 MB) / 1038876672 bytes (990 MB) up to 2112618496 bytes (2014 MB)
    JVM Flags: 4 total; -Xincgc -Xmx1024M -Xms1024M -Xmx2048M
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.5.2811 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 |
    |:----- |:--------------- |:------------ |:-------------------------------- |:--------- |
    | LCH   | minecraft       | 1.12.2       | minecraft.jar                    | None      |
    | LCH   | mcp             | 9.42         | minecraft.jar                    | None      |
    | LCH   | FML             | 8.0.99.99    | forgeSrc-1.12.2-14.23.5.2811.jar | None      |
    | LCH   | forge           | 14.23.5.2811 | forgeSrc-1.12.2-14.23.5.2811.jar | None      |
    | LCH   | ninecraftaddons | 1.0          | bin                              | None      |

    Loaded coremods (and transformers):
    GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 398.36' Renderer: 'GeForce 940MX/PCIe/SSE2'
    Launched Version: 1.12.2
    LWJGL: 2.9.4
    OpenGL: GeForce 940MX/PCIe/SSE2 GL version 4.6.0 NVIDIA 398.36, 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: Русский (Россия)
    Profiler Position: N/A (disabled)
    CPU: 4x Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz
 
4,045
63
645
Разрешите поВанговать.
В какой-то версии форджа конструктор у топора почему-то был приватным. Возможно, крашит из-за этого.
Хотя IDE тебе бы сказала, что так нельзя... Но всё-таки проверь.
Возможно имеет смысл обновить фордж до более новой версии.
 
7,099
324
1,509
3,005
192
592
Проблема в том, что нужно использовать другой конструктор.
(Тот, который принимает больше, чем ToolMaterial)
 
3,005
192
592
@BOT_MrLenya Омг, будешь так относиться к помощи, то смысл просить помощи?

1562263535904.png
Специально для таких умных, смотрим код.
Если использовать конструктор, который принимает только один аргумент, то можно заметить, что он берет attackDamage и attackSpeed из массива по индексу enum'а.
А по дефолту указаны только числа для ванили.
А твоих там НЕТУ И ВЫЛЕЗАЕТ ОШИБКА...
А ниже можно увидеть другой конструктор, в который ты САМ задаешь эти переменные не трогая массивы.
 
7,099
324
1,509
@Doc чего сразу агришься то? Чувак просто попросил у тебя объяснение предложенного решения(которое ты тут же дал, лол)
 
3,005
192
592
@hohserg1 "Я в этом не разбираюсь, но я думаю, что дело не в этом" - триггер, сорре.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху