register in Main
public class Main {
public static Random random = new Random();
public static final Logger LOGGER = LogManager.getLogger();
public static final String MOD_ID = "magic";
public Main() {
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
bus.addListener(this::setup);
ItemInit.ITEMS.register(bus);
Pounder.ITEMS.register(bus);
BlockInit.BLOCKS.register(bus);
MinecraftForge.EVENT_BUS.register(this);
}
private void setup(final FMLCommonSetupEvent event) {
}
}
I didn't succeed, as you suggested. The instrument was not registered. I did it differently and it appeared in the game, but it still disappears when crafting
public class Pounder extends Item{
public Pounder(Properties properties) {
super(properties);
}
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS,
Main.MOD_ID);
public static final RegistryObject<Item> pounder = Pounder.ITEMS.register("pounder",
() -> new Item(new Item.Properties().group(ItemGroup.TOOLS).maxStackSize(1).setNoRepair().maxDamage(63)));
@Override
public ItemStack getContainerItem(ItemStack stack) {
ItemStack ret = stack.copy();
if(ret.attemptDamageItem(1, Main.random, null))
return ItemStack.EMPTY;
else
return ret;
}
}