Fabric 注册一个项目两次
Fabric Registering an Item Twice
每当我 运行 来自 vsc 的客户端崩溃,因为它无法执行入口点,这是由于它尝试注册一个项目两次,
Caused by: java.lang.RuntimeException: Attempted to register ID ResourceKey[minecraft:item / cauldrons:gold-base] at different raw IDs (1100, 1102)! If you're trying to override an item, use .set(), not .register()!
我在 .java 文件中的代码是:
package net.cauldrons;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
public class cauldrons implements ModInitializer {
// bases
public static final Item GOLD_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
public static final Item IRON_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
public static final Item DIAMOND_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
public static final Item NETHERITE_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
@Override
public void onInitialize() {
Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), GOLD_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), IRON_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), DIAMOND_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), NETHERITE_BASE);
}
}
有人知道是什么原因造成的吗?
您正在尝试注册 cauldrons:gold-base
和 cauldrons:iron-base
两次。您可能尝试做的是注册 cauldrons:diamond_base
和 cauldrons:netherite_base
,但看起来您复制粘贴了注册而没有实际设置这些值。
固定代码:
@Override
public void onInitialize() {
Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), GOLD_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), IRON_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "diamond-base"), DIAMOND_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "netherite-base"), NETHERITE_BASE);
}
每当我 运行 来自 vsc 的客户端崩溃,因为它无法执行入口点,这是由于它尝试注册一个项目两次,
Caused by: java.lang.RuntimeException: Attempted to register ID ResourceKey[minecraft:item / cauldrons:gold-base] at different raw IDs (1100, 1102)! If you're trying to override an item, use .set(), not .register()!
我在 .java 文件中的代码是:
package net.cauldrons;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
public class cauldrons implements ModInitializer {
// bases
public static final Item GOLD_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
public static final Item IRON_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
public static final Item DIAMOND_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
public static final Item NETHERITE_BASE = new Item(new FabricItemSettings().group(ItemGroup.BREWING));
@Override
public void onInitialize() {
Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), GOLD_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), IRON_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), DIAMOND_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), NETHERITE_BASE);
}
}
有人知道是什么原因造成的吗?
您正在尝试注册 cauldrons:gold-base
和 cauldrons:iron-base
两次。您可能尝试做的是注册 cauldrons:diamond_base
和 cauldrons:netherite_base
,但看起来您复制粘贴了注册而没有实际设置这些值。
固定代码:
@Override
public void onInitialize() {
Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), GOLD_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), IRON_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "diamond-base"), DIAMOND_BASE);
Registry.register(Registry.ITEM, new Identifier("cauldrons", "netherite-base"), NETHERITE_BASE);
}