This tutorial is set by the author's setting without permission.
Use enumeration registered items:
Public Enum Modites {Test (Item :: NEW),
;;
Public Final Identifier ID;
Public final item item;
ModITEMS (Function
function) {{ Item = function.apply (new item.settings ());
Id = new Identifier ($ {modid}, name (). TOLOWERCASE (Locale.root));
}
Public static registry () {
For (moditedms value: valueS ()) {{
Registry.register (registries.Item, value.id, value.Item);
}
}
}
Use enumeration registered blocks
Public Enum Modblocks {Test (block :: NEW);
Public Final Block Block;
Public final identifier id;
MODBLOCKS (Function
Function) {{ Block = function.apply (abstractBlock.settings.create ());
Id = new Identifier (modid, name (). TOLOWERCASE (Locale.root)+"_block");
} Public Static void registry () {) {)
For (modblocks value: values ()) {
Registry.register (registries.block, value.id, value.block);
}
}
}
Use an enumeration creation model item bar
{pblic connection modmgRlets {
Test (stack-> fabricitemgroup.builder ());
Public final itemgroup itemgroup;
Public final identifier id;
MODITEMGROUPS (FUNCTION
Id = new Identifier (modid, name (). TOLOWERCASE (Locale.root));
itemGroup = function.apply(ItemStack.EMPTY).displayName(Text.translatable("itemGroup.%s.%s".formatted(modid, id.getPath()))).build();
}
Public static void registry () {
For (moditedmgroups value: valueS ()) {{) {
Registry.register (registries.item_group, value.id, value.Itemgroup);
}
}
}
at last:
Add the registry method in the main class to register