12
12
import net .minecraft .util .ResourceLocation ;
13
13
import net .minecraftforge .common .Tags ;
14
14
import net .minecraftforge .event .RegistryEvent .Register ;
15
- import net .minecraftforge .eventbus .api .SubscribeEvent ;
15
+ import net .minecraftforge .eventbus .api .IEventBus ;
16
16
import net .minecraftforge .fml .common .Mod .EventBusSubscriber ;
17
17
import net .minecraftforge .registries .IForgeRegistry ;
18
18
@@ -31,15 +31,6 @@ public final class Items {
31
31
*/
32
32
public static final Map <String , MagicDoorknobItem > DOORKNOBS = Maps .newHashMap ();
33
33
34
- static {
35
- // Add all Vanilla tool materials
36
- addDoorknob ("wood" , ItemTier .WOOD , "oak_planks" , ItemTags .PLANKS );
37
- addDoorknob ("stone" , ItemTier .STONE , "stone" , Tags .Items .COBBLESTONE );
38
- addDoorknob ("iron" , ItemTier .IRON , "iron_block" , Tags .Items .INGOTS_IRON );
39
- addDoorknob ("gold" , ItemTier .GOLD , "gold_block" , Tags .Items .INGOTS_GOLD );
40
- addDoorknob ("diamond" , ItemTier .DIAMOND , "diamond_block" , Tags .Items .GEMS_DIAMOND );
41
- }
42
-
43
34
private Items () {
44
35
}
45
36
@@ -48,32 +39,44 @@ private Items() {
48
39
* <p>
49
40
* Make sure to add a translation key.
50
41
*
42
+ * @param registry The registry to which to add the doorknob item.
51
43
* @param typeName The type name of the item. Keep this stable, since it is used in NBT data.
52
44
* @param tier The material this doorknob is made of
53
45
* @param mainTexture The main texture of the doorknob
54
46
* @param recipeTag The tag to use in recipes
55
47
*/
56
- private static void addDoorknob (String typeName , IItemTier tier , ResourceLocation mainTexture , Tag <Item > recipeTag ) {
57
- Item i = new MagicDoorknobItem (new Item .Properties ().group (ItemGroup .TOOLS ), typeName , tier , mainTexture , recipeTag )
58
- .setRegistryName (MagicDoorknobMod .MOD_ID , String .format ("magic_doorknob_%s" , typeName ));
59
- DOORKNOBS .put (typeName , (MagicDoorknobItem ) i );
48
+ private static void addDoorknob (IForgeRegistry <? super Item > registry , String typeName , IItemTier tier , ResourceLocation mainTexture , Tag <Item > recipeTag ) {
49
+ MagicDoorknobItem i = new MagicDoorknobItem (new Item .Properties ().group (ItemGroup .TOOLS ), typeName , tier , mainTexture , recipeTag );
50
+ i .setRegistryName (MagicDoorknobMod .MOD_ID , String .format ("magic_doorknob_%s" , typeName ));
51
+ registry .register (i );
52
+ DOORKNOBS .put (typeName , i );
60
53
}
61
54
62
55
/**
63
56
* Convenience function for doorknobs using Vanilla materials.
64
57
*
58
+ * @param registry The registry to which to add the doorknob item.
65
59
* @param typeName The type name of the item. Keep this stable, since it is used in NBT data.
66
60
* @param tier The material this doorknob is made of
67
61
* @param blockName The name of the block that provides the texture of the doorknob
68
62
* @param recipeTag The tag to use in recipes
69
63
*/
70
- private static void addDoorknob (String typeName , IItemTier tier , String blockName , Tag <Item > recipeTag ) {
71
- addDoorknob (typeName , tier , new ResourceLocation ("minecraft" , String .format ("block/%s" , blockName )), recipeTag );
64
+ private static void addDoorknob (IForgeRegistry <? super Item > registry , String typeName , IItemTier tier , String blockName , Tag <Item > recipeTag ) {
65
+ addDoorknob (registry , typeName , tier , new ResourceLocation ("minecraft" , String .format ("block/%s" , blockName )), recipeTag );
72
66
}
73
67
74
- @ SubscribeEvent
75
- public static void registerItems (Register <Item > event ) {
68
+ public static void register (IEventBus eventBus ) {
69
+ eventBus .addGenericListener (Item .class , Items ::registerItems );
70
+ }
71
+
72
+ private static void registerItems (Register <Item > event ) {
76
73
IForgeRegistry <Item > registry = event .getRegistry ();
77
- DOORKNOBS .values ().forEach (registry ::register );
74
+
75
+ // Add all Vanilla tool materials
76
+ addDoorknob (registry , "wood" , ItemTier .WOOD , "oak_planks" , ItemTags .PLANKS );
77
+ addDoorknob (registry , "stone" , ItemTier .STONE , "stone" , Tags .Items .COBBLESTONE );
78
+ addDoorknob (registry , "iron" , ItemTier .IRON , "iron_block" , Tags .Items .INGOTS_IRON );
79
+ addDoorknob (registry , "gold" , ItemTier .GOLD , "gold_block" , Tags .Items .INGOTS_GOLD );
80
+ addDoorknob (registry , "diamond" , ItemTier .DIAMOND , "diamond_block" , Tags .Items .GEMS_DIAMOND );
78
81
}
79
82
}
0 commit comments