From 4779c358626853ea39eed899562434f185c9d317 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Sun, 5 Jan 2025 03:29:42 +0500 Subject: [PATCH 1/6] Added register helper methods to RegistryEvent --- .../api/util/function/BulkBiConsumer.java | 28 +++ .../api/util/function/BulkConsumer.java | 28 +++ .../event/registry/BlockRegistryEvent.java | 3 +- .../api/event/registry/RegistryEvent.java | 42 +++- .../vanillafix/block/VanillaBlockFixImpl.java | 196 +++++++++--------- 5 files changed, 194 insertions(+), 103 deletions(-) create mode 100644 station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkBiConsumer.java create mode 100644 station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java diff --git a/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkBiConsumer.java b/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkBiConsumer.java new file mode 100644 index 000000000..1082991af --- /dev/null +++ b/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkBiConsumer.java @@ -0,0 +1,28 @@ +package net.modificationstation.stationapi.api.util.function; + +import org.jetbrains.annotations.Contract; + +import java.util.function.BiConsumer; + +public interface BulkBiConsumer { + @Contract(pure = true) + static BulkBiConsumer of(BiConsumer sink) { + interface BulkBiConsumerImpl extends BulkBiConsumer { + @Contract(pure = true) + private static BulkBiConsumerImpl of(BiConsumer sink) { + return () -> sink; + } + + BiConsumer getSink(); + + @Override + default BulkBiConsumer accept(A a, B b) { + getSink().accept(a, b); + return this; + } + } + return BulkBiConsumerImpl.of(sink); + } + + BulkBiConsumer accept(A a, B b); +} diff --git a/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java b/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java new file mode 100644 index 000000000..5ef199120 --- /dev/null +++ b/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java @@ -0,0 +1,28 @@ +package net.modificationstation.stationapi.api.util.function; + +import org.jetbrains.annotations.Contract; + +import java.util.function.Consumer; + +public interface BulkConsumer { + @Contract(pure = true) + static BulkConsumer of(Consumer sink) { + interface BulkConsumerImpl extends BulkConsumer { + @Contract(pure = true) + private static BulkConsumerImpl of(Consumer sink) { + return () -> sink; + } + + Consumer getSink(); + + @Override + default BulkConsumer accept(A a) { + getSink().accept(a); + return this; + } + } + return BulkConsumerImpl.of(sink); + } + + BulkConsumer accept(A a); +} diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockRegistryEvent.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockRegistryEvent.java index 97b975082..a7b9cceb4 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockRegistryEvent.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockRegistryEvent.java @@ -1,11 +1,12 @@ package net.modificationstation.stationapi.api.event.registry; import net.mine_diver.unsafeevents.event.EventPhases; +import net.minecraft.block.Block; import net.modificationstation.stationapi.api.StationAPI; import net.modificationstation.stationapi.api.registry.BlockRegistry; @EventPhases(StationAPI.INTERNAL_PHASE) -public class BlockRegistryEvent extends RegistryEvent { +public class BlockRegistryEvent extends RegistryEvent.EntryTypeBound { public BlockRegistryEvent() { super(BlockRegistry.INSTANCE); } diff --git a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java index 91637fb36..8d1a70701 100644 --- a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java +++ b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java @@ -4,18 +4,52 @@ import lombok.RequiredArgsConstructor; import net.mine_diver.unsafeevents.Event; import net.modificationstation.stationapi.api.registry.Registry; +import net.modificationstation.stationapi.api.util.Identifier; +import net.modificationstation.stationapi.api.util.Namespace; +import net.modificationstation.stationapi.api.util.function.BulkBiConsumer; +import org.jetbrains.annotations.Contract; + +import java.util.function.ToIntFunction; /** * A superclass for events involving registries. * - * @param the type of the registry involved in this event. + * @param the type of the registry involved in this event. * @author mine_diver */ @RequiredArgsConstructor(access = AccessLevel.PROTECTED) -public abstract class RegistryEvent> extends Event { - +public abstract class RegistryEvent> extends Event { /** * The instance of the event's registry. */ - public final T registry; + public final REGISTRY registry; + + public static abstract class EntryTypeBound> extends RegistryEvent { + protected EntryTypeBound(REGISTRY registry) { + super(registry); + } + + public ENTRY register(Identifier id, ENTRY entry) { + return Registry.register(registry, id, entry); + } + + public ENTRY register(int rawId, Identifier id, ENTRY entry) { + return Registry.register(registry, rawId, id, entry); + } + + @Contract(pure = true) + public BulkBiConsumer register() { + return BulkBiConsumer.of(this::register); + } + + @Contract(pure = true) + public BulkBiConsumer register(Namespace namespace) { + return BulkBiConsumer.of((id, entry) -> register(namespace.id(id), entry)); + } + + @Contract(pure = true) + public BulkBiConsumer register(Namespace namespace, ToIntFunction rawIdGetter) { + return BulkBiConsumer.of((id, entry) -> register(rawIdGetter.applyAsInt(entry), namespace.id(id), entry)); + } + } } diff --git a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java index 3ba3c55d6..1f719c787 100644 --- a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java +++ b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java @@ -17,6 +17,7 @@ import net.modificationstation.stationapi.api.registry.BlockRegistry; import net.modificationstation.stationapi.api.registry.ItemRegistry; import net.modificationstation.stationapi.api.registry.Registry; +import net.modificationstation.stationapi.api.util.Namespace; import net.modificationstation.stationapi.api.util.Util; import java.lang.invoke.MethodHandles; @@ -49,104 +50,103 @@ public final class VanillaBlockFixImpl { @EventListener private static void registerBlocks(BlockRegistryEvent event) { - BlockRegistry registry = event.registry; - - register(registry, "stone", STONE); - register(registry, "grass_block", GRASS_BLOCK); - register(registry, "dirt", DIRT); - register(registry, "cobblestone", COBBLESTONE); - register(registry, "oak_planks", PLANKS); - register(registry, "sapling", SAPLING); - register(registry, "bedrock", BEDROCK); - register(registry, "flowing_water", FLOWING_WATER); - register(registry, "water", WATER); - register(registry, "flowing_lava", FLOWING_LAVA); - register(registry, "lava", LAVA); - register(registry, "sand", SAND); - register(registry, "gravel", GRAVEL); - register(registry, "gold_ore", GOLD_ORE); - register(registry, "iron_ore", IRON_ORE); - register(registry, "coal_ore", COAL_ORE); - register(registry, "log", LOG); - register(registry, "leaves", LEAVES); - register(registry, "sponge", SPONGE); - register(registry, "glass", GLASS); - register(registry, "lapis_ore", LAPIS_ORE); - register(registry, "lapis_block", LAPIS_BLOCK); - register(registry, "dispenser", DISPENSER); - register(registry, "sandstone", SANDSTONE); - register(registry, "note_block", NOTE_BLOCK); - register(registry, "red_bed", BED); - register(registry, "powered_rail", POWERED_RAIL); - register(registry, "detector_rail", DETECTOR_RAIL); - register(registry, "sticky_piston", STICKY_PISTON); - register(registry, "cobweb", COBWEB); - register(registry, "grass", GRASS); - register(registry, "dead_bush", DEAD_BUSH); - register(registry, "piston", PISTON); - register(registry, "piston_head", PISTON_HEAD); - register(registry, "wool", WOOL); - register(registry, "moving_piston", MOVING_PISTON); - register(registry, "dandelion", DANDELION); - register(registry, "rose", ROSE); - register(registry, "brown_mushroom", BROWN_MUSHROOM); - register(registry, "red_mushroom", RED_MUSHROOM); - register(registry, "gold_block", GOLD_BLOCK); - register(registry, "iron_block", IRON_BLOCK); - register(registry, "double_slab", DOUBLE_SLAB); - register(registry, "slab", SLAB); - register(registry, "bricks", BRICKS); - register(registry, "tnt", TNT); - register(registry, "bookshelf", BOOKSHELF); - register(registry, "mossy_cobblestone", MOSSY_COBBLESTONE); - register(registry, "obsidian", OBSIDIAN); - register(registry, "torch", TORCH); - register(registry, "fire", FIRE); - register(registry, "spawner", SPAWNER); - register(registry, "oak_stairs", WOODEN_STAIRS); - register(registry, "chest", CHEST); - register(registry, "redstone_wire", REDSTONE_WIRE); - register(registry, "diamond_ore", DIAMOND_ORE); - register(registry, "diamond_block", DIAMOND_BLOCK); - register(registry, "crafting_table", CRAFTING_TABLE); - register(registry, "wheat", WHEAT); - register(registry, "farmland", FARMLAND); - register(registry, "furnace", FURNACE); - register(registry, "furnace_lit", LIT_FURNACE); - register(registry, "oak_sign", SIGN); - register(registry, "oak_door", DOOR); - register(registry, "ladder", LADDER); - register(registry, "rail", RAIL); - register(registry, "cobblestone_stairs", COBBLESTONE_STAIRS); - register(registry, "oak_wall_sign", WALL_SIGN); - register(registry, "lever", LEVER); - register(registry, "oak_pressure_plate", STONE_PRESSURE_PLATE); - register(registry, "iron_door", IRON_DOOR); - register(registry, "stone_pressure_plate", WOODEN_PRESSURE_PLATE); - register(registry, "redstone_ore", REDSTONE_ORE); - register(registry, "redstone_ore_lit", LIT_REDSTONE_ORE); - register(registry, "redstone_torch", REDSTONE_TORCH); - register(registry, "redstone_torch_lit", LIT_REDSTONE_TORCH); - register(registry, "stone_button", BUTTON); - register(registry, "snow", SNOW); - register(registry, "ice", ICE); - register(registry, "snow_block", SNOW_BLOCK); - register(registry, "cactus", CACTUS); - register(registry, "clay", CLAY); - register(registry, "sugar_cane", SUGAR_CANE); - register(registry, "jukebox", JUKEBOX); - register(registry, "oak_fence", FENCE); - register(registry, "carved_pumpkin", PUMPKIN); - register(registry, "netherrack", NETHERRACK); - register(registry, "soul_sand", SOUL_SAND); - register(registry, "glowstone", GLOWSTONE); - register(registry, "nether_portal", NETHER_PORTAL); - register(registry, "jack_o_lantern", JACK_O_LANTERN); - register(registry, "cake", CAKE); - register(registry, "repeater", REPEATER); - register(registry, "repeater_lit", POWERED_REPEATER); - register(registry, "locked_chest", LOCKED_CHEST); - register(registry, "oak_trapdoor", TRAPDOOR); + event.register(Namespace.MINECRAFT, block -> block.id) + .accept("stone", STONE) + .accept("grass_block", GRASS_BLOCK) + .accept("dirt", DIRT) + .accept("cobblestone", COBBLESTONE) + .accept("oak_planks", PLANKS) + .accept("sapling", SAPLING) + .accept("bedrock", BEDROCK) + .accept("flowing_water", FLOWING_WATER) + .accept("water", WATER) + .accept("flowing_lava", FLOWING_LAVA) + .accept("lava", LAVA) + .accept("sand", SAND) + .accept("gravel", GRAVEL) + .accept("gold_ore", GOLD_ORE) + .accept("iron_ore", IRON_ORE) + .accept("coal_ore", COAL_ORE) + .accept("log", LOG) + .accept("leaves", LEAVES) + .accept("sponge", SPONGE) + .accept("glass", GLASS) + .accept("lapis_ore", LAPIS_ORE) + .accept("lapis_block", LAPIS_BLOCK) + .accept("dispenser", DISPENSER) + .accept("sandstone", SANDSTONE) + .accept("note_block", NOTE_BLOCK) + .accept("red_bed", BED) + .accept("powered_rail", POWERED_RAIL) + .accept("detector_rail", DETECTOR_RAIL) + .accept("sticky_piston", STICKY_PISTON) + .accept("cobweb", COBWEB) + .accept("grass", GRASS) + .accept("dead_bush", DEAD_BUSH) + .accept("piston", PISTON) + .accept("piston_head", PISTON_HEAD) + .accept("wool", WOOL) + .accept("moving_piston", MOVING_PISTON) + .accept("dandelion", DANDELION) + .accept("rose", ROSE) + .accept("brown_mushroom", BROWN_MUSHROOM) + .accept("red_mushroom", RED_MUSHROOM) + .accept("gold_block", GOLD_BLOCK) + .accept("iron_block", IRON_BLOCK) + .accept("double_slab", DOUBLE_SLAB) + .accept("slab", SLAB) + .accept("bricks", BRICKS) + .accept("tnt", TNT) + .accept("bookshelf", BOOKSHELF) + .accept("mossy_cobblestone", MOSSY_COBBLESTONE) + .accept("obsidian", OBSIDIAN) + .accept("torch", TORCH) + .accept("fire", FIRE) + .accept("spawner", SPAWNER) + .accept("oak_stairs", WOODEN_STAIRS) + .accept("chest", CHEST) + .accept("redstone_wire", REDSTONE_WIRE) + .accept("diamond_ore", DIAMOND_ORE) + .accept("diamond_block", DIAMOND_BLOCK) + .accept("crafting_table", CRAFTING_TABLE) + .accept("wheat", WHEAT) + .accept("farmland", FARMLAND) + .accept("furnace", FURNACE) + .accept("furnace_lit", LIT_FURNACE) + .accept("oak_sign", SIGN) + .accept("oak_door", DOOR) + .accept("ladder", LADDER) + .accept("rail", RAIL) + .accept("cobblestone_stairs", COBBLESTONE_STAIRS) + .accept("oak_wall_sign", WALL_SIGN) + .accept("lever", LEVER) + .accept("oak_pressure_plate", STONE_PRESSURE_PLATE) + .accept("iron_door", IRON_DOOR) + .accept("stone_pressure_plate", WOODEN_PRESSURE_PLATE) + .accept("redstone_ore", REDSTONE_ORE) + .accept("redstone_ore_lit", LIT_REDSTONE_ORE) + .accept("redstone_torch", REDSTONE_TORCH) + .accept("redstone_torch_lit", LIT_REDSTONE_TORCH) + .accept("stone_button", BUTTON) + .accept("snow", SNOW) + .accept("ice", ICE) + .accept("snow_block", SNOW_BLOCK) + .accept("cactus", CACTUS) + .accept("clay", CLAY) + .accept("sugar_cane", SUGAR_CANE) + .accept("jukebox", JUKEBOX) + .accept("oak_fence", FENCE) + .accept("carved_pumpkin", PUMPKIN) + .accept("netherrack", NETHERRACK) + .accept("soul_sand", SOUL_SAND) + .accept("glowstone", GLOWSTONE) + .accept("nether_portal", NETHER_PORTAL) + .accept("jack_o_lantern", JACK_O_LANTERN) + .accept("cake", CAKE) + .accept("repeater", REPEATER) + .accept("repeater_lit", POWERED_REPEATER) + .accept("locked_chest", LOCKED_CHEST) + .accept("oak_trapdoor", TRAPDOOR); LOGGER.info("Added vanilla blocks to the registry."); } From 4150bdc5c1b79ab03444fc002896907434422323 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Mon, 6 Jan 2025 17:39:36 +0500 Subject: [PATCH 2/6] Remove unused BulkConsumer. --- .../api/util/function/BulkConsumer.java | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java diff --git a/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java b/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java deleted file mode 100644 index 5ef199120..000000000 --- a/station-api-base/src/main/java/net/modificationstation/stationapi/api/util/function/BulkConsumer.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.modificationstation.stationapi.api.util.function; - -import org.jetbrains.annotations.Contract; - -import java.util.function.Consumer; - -public interface BulkConsumer { - @Contract(pure = true) - static BulkConsumer of(Consumer sink) { - interface BulkConsumerImpl extends BulkConsumer { - @Contract(pure = true) - private static BulkConsumerImpl of(Consumer sink) { - return () -> sink; - } - - Consumer getSink(); - - @Override - default BulkConsumer accept(A a) { - getSink().accept(a); - return this; - } - } - return BulkConsumerImpl.of(sink); - } - - BulkConsumer accept(A a); -} From 3be37b7637848ea125df4676515ab5e4b6e162b6 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Mon, 6 Jan 2025 21:05:39 +0500 Subject: [PATCH 3/6] Updated all registries to be entry type bound. --- .../api/event/registry/BlockItemRegistryEvent.java | 3 ++- .../api/event/registry/GuiHandlerRegistryEvent.java | 3 ++- .../api/event/registry/DimensionRegistryEvent.java | 3 ++- .../api/event/registry/EntityHandlerRegistryEvent.java | 3 ++- .../api/event/registry/MobHandlerRegistryEvent.java | 6 +++++- .../stationapi/api/event/registry/ItemRegistryEvent.java | 3 ++- .../api/event/registry/MessageListenerRegistryEvent.java | 2 +- .../api/event/registry/JsonRecipeParserRegistryEvent.java | 5 ++++- .../model/BlockModelPredicateProviderRegistryEvent.java | 3 ++- .../model/ItemModelPredicateProviderRegistryEvent.java | 3 ++- 10 files changed, 24 insertions(+), 10 deletions(-) diff --git a/station-blockitems-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockItemRegistryEvent.java b/station-blockitems-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockItemRegistryEvent.java index 9bc0e71bb..8dd2c2489 100644 --- a/station-blockitems-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockItemRegistryEvent.java +++ b/station-blockitems-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/BlockItemRegistryEvent.java @@ -1,11 +1,12 @@ package net.modificationstation.stationapi.api.event.registry; import net.mine_diver.unsafeevents.event.EventPhases; +import net.minecraft.item.Item; import net.modificationstation.stationapi.api.StationAPI; import net.modificationstation.stationapi.api.registry.ItemRegistry; @EventPhases(StationAPI.INTERNAL_PHASE) -public class BlockItemRegistryEvent extends RegistryEvent { +public class BlockItemRegistryEvent extends RegistryEvent.EntryTypeBound { public BlockItemRegistryEvent() { super(ItemRegistry.INSTANCE); } diff --git a/station-container-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/GuiHandlerRegistryEvent.java b/station-container-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/GuiHandlerRegistryEvent.java index 265602540..0a8db96ef 100644 --- a/station-container-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/GuiHandlerRegistryEvent.java +++ b/station-container-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/GuiHandlerRegistryEvent.java @@ -1,8 +1,9 @@ package net.modificationstation.stationapi.api.event.registry; +import net.modificationstation.stationapi.api.client.gui.screen.GuiHandler; import net.modificationstation.stationapi.api.client.registry.GuiHandlerRegistry; -public class GuiHandlerRegistryEvent extends RegistryEvent { +public class GuiHandlerRegistryEvent extends RegistryEvent.EntryTypeBound { public GuiHandlerRegistryEvent() { super(GuiHandlerRegistry.INSTANCE); } diff --git a/station-dimensions-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/DimensionRegistryEvent.java b/station-dimensions-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/DimensionRegistryEvent.java index 28ae90969..81b3a0d39 100644 --- a/station-dimensions-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/DimensionRegistryEvent.java +++ b/station-dimensions-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/DimensionRegistryEvent.java @@ -2,10 +2,11 @@ import net.mine_diver.unsafeevents.event.EventPhases; import net.modificationstation.stationapi.api.StationAPI; +import net.modificationstation.stationapi.api.registry.DimensionContainer; import net.modificationstation.stationapi.api.registry.DimensionRegistry; @EventPhases(StationAPI.INTERNAL_PHASE) -public class DimensionRegistryEvent extends RegistryEvent { +public class DimensionRegistryEvent extends RegistryEvent.EntryTypeBound, DimensionRegistry> { public DimensionRegistryEvent() { super(DimensionRegistry.INSTANCE); } diff --git a/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/EntityHandlerRegistryEvent.java b/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/EntityHandlerRegistryEvent.java index 8c168c4c7..7dc5c5976 100644 --- a/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/EntityHandlerRegistryEvent.java +++ b/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/EntityHandlerRegistryEvent.java @@ -1,8 +1,9 @@ package net.modificationstation.stationapi.api.event.registry; +import net.modificationstation.stationapi.api.client.entity.factory.EntityWorldAndPosFactory; import net.modificationstation.stationapi.api.client.registry.EntityHandlerRegistry; -public class EntityHandlerRegistryEvent extends RegistryEvent { +public class EntityHandlerRegistryEvent extends RegistryEvent.EntryTypeBound { public EntityHandlerRegistryEvent() { super(EntityHandlerRegistry.INSTANCE); } diff --git a/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MobHandlerRegistryEvent.java b/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MobHandlerRegistryEvent.java index f511823bd..f691641ef 100644 --- a/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MobHandlerRegistryEvent.java +++ b/station-entities-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MobHandlerRegistryEvent.java @@ -1,8 +1,12 @@ package net.modificationstation.stationapi.api.event.registry; +import net.minecraft.entity.LivingEntity; +import net.minecraft.world.World; import net.modificationstation.stationapi.api.client.registry.MobHandlerRegistry; -public class MobHandlerRegistryEvent extends RegistryEvent { +import java.util.function.Function; + +public class MobHandlerRegistryEvent extends RegistryEvent.EntryTypeBound, MobHandlerRegistry> { public MobHandlerRegistryEvent() { super(MobHandlerRegistry.INSTANCE); } diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/ItemRegistryEvent.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/ItemRegistryEvent.java index a43669eee..5c5e580b3 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/ItemRegistryEvent.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/ItemRegistryEvent.java @@ -1,11 +1,12 @@ package net.modificationstation.stationapi.api.event.registry; import net.mine_diver.unsafeevents.event.EventPhases; +import net.minecraft.item.Item; import net.modificationstation.stationapi.api.StationAPI; import net.modificationstation.stationapi.api.registry.ItemRegistry; @EventPhases(StationAPI.INTERNAL_PHASE) -public class ItemRegistryEvent extends RegistryEvent { +public class ItemRegistryEvent extends RegistryEvent.EntryTypeBound { public ItemRegistryEvent() { super(ItemRegistry.INSTANCE); } diff --git a/station-networking-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MessageListenerRegistryEvent.java b/station-networking-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MessageListenerRegistryEvent.java index 3b172c229..a58b452c6 100644 --- a/station-networking-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MessageListenerRegistryEvent.java +++ b/station-networking-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/MessageListenerRegistryEvent.java @@ -15,7 +15,7 @@ * @author mine_diver */ @EventPhases(StationAPI.INTERNAL_PHASE) -public class MessageListenerRegistryEvent extends RegistryEvent>> { +public class MessageListenerRegistryEvent extends RegistryEvent.EntryTypeBound, Registry>> { public MessageListenerRegistryEvent() { super(MessageListenerRegistry.INSTANCE); } diff --git a/station-recipes-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/JsonRecipeParserRegistryEvent.java b/station-recipes-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/JsonRecipeParserRegistryEvent.java index d61a4b9de..177dc197d 100644 --- a/station-recipes-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/JsonRecipeParserRegistryEvent.java +++ b/station-recipes-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/JsonRecipeParserRegistryEvent.java @@ -4,8 +4,11 @@ import net.modificationstation.stationapi.api.StationAPI; import net.modificationstation.stationapi.api.registry.JsonRecipeParserRegistry; +import java.net.URL; +import java.util.function.Consumer; + @EventPhases(StationAPI.INTERNAL_PHASE) -public class JsonRecipeParserRegistryEvent extends RegistryEvent { +public class JsonRecipeParserRegistryEvent extends RegistryEvent.EntryTypeBound, JsonRecipeParserRegistry> { public JsonRecipeParserRegistryEvent() { super(JsonRecipeParserRegistry.INSTANCE); } diff --git a/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/BlockModelPredicateProviderRegistryEvent.java b/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/BlockModelPredicateProviderRegistryEvent.java index 690dd692a..c750c09b9 100644 --- a/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/BlockModelPredicateProviderRegistryEvent.java +++ b/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/BlockModelPredicateProviderRegistryEvent.java @@ -1,9 +1,10 @@ package net.modificationstation.stationapi.api.client.event.render.model; +import net.modificationstation.stationapi.api.client.model.block.BlockModelPredicateProvider; import net.modificationstation.stationapi.api.client.registry.BlockModelPredicateProviderRegistry; import net.modificationstation.stationapi.api.event.registry.RegistryEvent; -public final class BlockModelPredicateProviderRegistryEvent extends RegistryEvent { +public final class BlockModelPredicateProviderRegistryEvent extends RegistryEvent.EntryTypeBound { public BlockModelPredicateProviderRegistryEvent() { super(BlockModelPredicateProviderRegistry.INSTANCE); } diff --git a/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/ItemModelPredicateProviderRegistryEvent.java b/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/ItemModelPredicateProviderRegistryEvent.java index e80d31ef8..d8e59b450 100644 --- a/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/ItemModelPredicateProviderRegistryEvent.java +++ b/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/event/render/model/ItemModelPredicateProviderRegistryEvent.java @@ -1,9 +1,10 @@ package net.modificationstation.stationapi.api.client.event.render.model; +import net.modificationstation.stationapi.api.client.model.item.ItemModelPredicateProvider; import net.modificationstation.stationapi.api.client.registry.ItemModelPredicateProviderRegistry; import net.modificationstation.stationapi.api.event.registry.RegistryEvent; -public class ItemModelPredicateProviderRegistryEvent extends RegistryEvent { +public class ItemModelPredicateProviderRegistryEvent extends RegistryEvent.EntryTypeBound { public ItemModelPredicateProviderRegistryEvent() { super(ItemModelPredicateProviderRegistry.INSTANCE); } From 02ddf6cdabb8c2590f02547e51f4ae497dfca176 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Tue, 7 Jan 2025 16:57:09 +0500 Subject: [PATCH 4/6] Updated all usages of Registry#register to new helper methods where applicable. --- .../sltest/entity/EntityListener.java | 5 +- .../sltest/gui/GuiListener.java | 5 +- .../sltest/item/ItemListener.java | 5 +- .../packet/MessageListenerListener.java | 10 +- .../network/GuiClientNetworkHandler.java | 3 +- .../network/EntityClientNetworkHandler.java | 5 +- .../stationapi/api/block/States.java | 3 +- .../StationFlatteningNetworkingImpl.java | 11 +- .../packet/StationItemsNetworkingImpl.java | 15 +- .../impl/recipe/JsonRecipeParserInit.java | 11 +- .../ClientServerRegistryRemapper.java | 3 +- .../server/network/ServerVanillaChecker.java | 3 +- .../vanillafix/block/VanillaBlockFixImpl.java | 10 +- .../vanillafix/item/VanillaItemFixImpl.java | 223 +++++++++--------- 14 files changed, 145 insertions(+), 167 deletions(-) diff --git a/src/test/java/net/modificationstation/sltest/entity/EntityListener.java b/src/test/java/net/modificationstation/sltest/entity/EntityListener.java index a0a36581a..ba6e44c09 100644 --- a/src/test/java/net/modificationstation/sltest/entity/EntityListener.java +++ b/src/test/java/net/modificationstation/sltest/entity/EntityListener.java @@ -4,7 +4,6 @@ import net.modificationstation.stationapi.api.event.entity.EntityRegister; import net.modificationstation.stationapi.api.event.registry.EntityHandlerRegistryEvent; import net.modificationstation.stationapi.api.event.registry.MobHandlerRegistryEvent; -import net.modificationstation.stationapi.api.registry.Registry; import static net.modificationstation.sltest.SLTest.NAMESPACE; import static net.modificationstation.stationapi.api.util.Identifier.of; @@ -19,11 +18,11 @@ public void registerEntities(EntityRegister event) { @EventListener public void registerEntityHandlers(EntityHandlerRegistryEvent event) { - Registry.register(event.registry, TestEntity.ID, TestEntity::new); + event.register(TestEntity.ID, TestEntity::new); } @EventListener public void registerMobHandlers(MobHandlerRegistryEvent event) { - Registry.register(event.registry, of(NAMESPACE, "gpoor"), PoorGuy::new); + event.register(of(NAMESPACE, "gpoor"), PoorGuy::new); } } diff --git a/src/test/java/net/modificationstation/sltest/gui/GuiListener.java b/src/test/java/net/modificationstation/sltest/gui/GuiListener.java index 80446c720..46b6652bf 100644 --- a/src/test/java/net/modificationstation/sltest/gui/GuiListener.java +++ b/src/test/java/net/modificationstation/sltest/gui/GuiListener.java @@ -9,9 +9,7 @@ import net.modificationstation.sltest.SLTest; import net.modificationstation.sltest.tileentity.TileEntityFreezer; import net.modificationstation.stationapi.api.client.gui.screen.GuiHandler; -import net.modificationstation.stationapi.api.client.registry.GuiHandlerRegistry; import net.modificationstation.stationapi.api.event.registry.GuiHandlerRegistryEvent; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.util.Identifier; public class GuiListener { @@ -19,8 +17,7 @@ public class GuiListener { @Environment(EnvType.CLIENT) @EventListener public void registerGuiHandlers(GuiHandlerRegistryEvent event) { - GuiHandlerRegistry registry = event.registry; - Registry.register(registry, Identifier.of(SLTest.NAMESPACE, "freezer"), new GuiHandler((GuiHandler.ScreenFactoryNoMessage) this::openFreezer, TileEntityFreezer::new)); + event.register(Identifier.of(SLTest.NAMESPACE, "freezer"), new GuiHandler((GuiHandler.ScreenFactoryNoMessage) this::openFreezer, TileEntityFreezer::new)); } @Environment(EnvType.CLIENT) diff --git a/src/test/java/net/modificationstation/sltest/item/ItemListener.java b/src/test/java/net/modificationstation/sltest/item/ItemListener.java index 57ef9aaa4..ab1c1c720 100644 --- a/src/test/java/net/modificationstation/sltest/item/ItemListener.java +++ b/src/test/java/net/modificationstation/sltest/item/ItemListener.java @@ -11,7 +11,6 @@ import net.modificationstation.stationapi.api.item.tool.ToolMaterialFactory; import net.modificationstation.stationapi.api.registry.BlockRegistry; import net.modificationstation.stationapi.api.registry.ItemRegistry; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.tag.TagKey; import net.modificationstation.stationapi.api.template.item.BlockStateItem; @@ -34,8 +33,8 @@ public void registerItems(ItemRegistryEvent event) { testPickaxe = new ModdedPickaxeItem(NAMESPACE.id("test_pickaxe"), testMaterial).setTranslationKey(NAMESPACE, "testPickaxe"); //8476 testNBTItem = new NBTItem(NAMESPACE.id("nbt_item")).setTranslationKey(NAMESPACE, "nbt_item"); //8477 testModelItem = new ModelItem(NAMESPACE.id("model_item")).setMaxCount(1).setTranslationKey(NAMESPACE, "idkSomething"); - ironOre = Registry.register(event.registry, NAMESPACE.id("ironOre"), new Item(ItemRegistry.AUTO_ID)).setTranslationKey(NAMESPACE.id("ironOre")); - generatedItem = Registry.register(event.registry, NAMESPACE.id("generated_item"), new Item(ItemRegistry.AUTO_ID)).setTranslationKey(NAMESPACE.id("generatedItem")); + ironOre = event.register(NAMESPACE.id("ironOre"), new Item(ItemRegistry.AUTO_ID)).setTranslationKey(NAMESPACE.id("ironOre")); + generatedItem = event.register(NAMESPACE.id("generated_item"), new Item(ItemRegistry.AUTO_ID)).setTranslationKey(NAMESPACE.id("generatedItem")); variationBlockIdle = new BlockStateItem(NAMESPACE.id("variation_block_idle"), Blocks.VARIATION_BLOCK.get().getDefaultState()).setTranslationKey(NAMESPACE, "variationBlockIdle"); variationBlockPassive = new BlockStateItem(NAMESPACE.id("variation_block_passive"), Blocks.VARIATION_BLOCK.get().getDefaultState().with(VariationBlock.VARIANT, VariationBlock.Variant.PASSIVE)).setTranslationKey(NAMESPACE, "variationBlockPassive"); variationBlockActive = new BlockStateItem(NAMESPACE.id("variation_block_active"), Blocks.VARIATION_BLOCK.get().getDefaultState().with(VariationBlock.VARIANT, VariationBlock.Variant.ACTIVE)).setTranslationKey(NAMESPACE, "variationBlockActive"); diff --git a/src/test/java/net/modificationstation/sltest/packet/MessageListenerListener.java b/src/test/java/net/modificationstation/sltest/packet/MessageListenerListener.java index fe8935094..03ec3a1fa 100644 --- a/src/test/java/net/modificationstation/sltest/packet/MessageListenerListener.java +++ b/src/test/java/net/modificationstation/sltest/packet/MessageListenerListener.java @@ -8,18 +8,14 @@ import net.modificationstation.sltest.item.ModdedItem; import net.modificationstation.stationapi.api.event.registry.MessageListenerRegistryEvent; import net.modificationstation.stationapi.api.network.packet.MessagePacket; -import net.modificationstation.stationapi.api.registry.Registry; -import net.modificationstation.stationapi.api.util.Identifier; - -import java.util.function.BiConsumer; public class MessageListenerListener { @EventListener public void registerMessageListeners(MessageListenerRegistryEvent event) { - Registry> registry = event.registry; - Registry.register(registry, Identifier.of(SLTest.NAMESPACE, "give_me_diamonds"), this::handleGiveMeDiamonds); - Registry.register(registry, Identifier.of(SLTest.NAMESPACE, "send_an_object"), this::handleSendCoords); + event.register(SLTest.NAMESPACE) + .accept("give_me_diamonds", this::handleGiveMeDiamonds) + .accept("send_an_object", this::handleSendCoords); } public void handleGiveMeDiamonds(PlayerEntity playerBase, MessagePacket message) { diff --git a/station-container-api-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/GuiClientNetworkHandler.java b/station-container-api-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/GuiClientNetworkHandler.java index 63b6fa3ce..28d858d6a 100644 --- a/station-container-api-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/GuiClientNetworkHandler.java +++ b/station-container-api-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/GuiClientNetworkHandler.java @@ -14,7 +14,6 @@ import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; import net.modificationstation.stationapi.api.network.packet.MessagePacket; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.util.Identifier; import java.lang.invoke.MethodHandles; @@ -30,7 +29,7 @@ public final class GuiClientNetworkHandler { @EventListener private static void registerMessageListeners(MessageListenerRegistryEvent event) { - Registry.register(event.registry, NAMESPACE.id("open_gui"), GuiClientNetworkHandler::handleGui); + event.register(NAMESPACE.id("open_gui"), GuiClientNetworkHandler::handleGui); StationAPI.EVENT_BUS.post(new GuiHandlerRegistryEvent()); } diff --git a/station-entities-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/EntityClientNetworkHandler.java b/station-entities-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/EntityClientNetworkHandler.java index 0a72bede8..384f48122 100644 --- a/station-entities-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/EntityClientNetworkHandler.java +++ b/station-entities-v0/src/main/java/net/modificationstation/stationapi/impl/client/network/EntityClientNetworkHandler.java @@ -22,7 +22,6 @@ import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; import net.modificationstation.stationapi.api.network.packet.MessagePacket; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.server.entity.StationSpawnDataProvider; import net.modificationstation.stationapi.mixin.entity.client.ClientNetworkHandlerAccessor; @@ -45,9 +44,9 @@ public final class EntityClientNetworkHandler { @EventListener private static void registerMessageListeners(MessageListenerRegistryEvent event) { - Registry.register(event.registry, NAMESPACE.id("spawn_entity"), EntityClientNetworkHandler::handleEntitySpawn); + event.register(NAMESPACE.id("spawn_entity"), EntityClientNetworkHandler::handleEntitySpawn); StationAPI.EVENT_BUS.post(new EntityHandlerRegistryEvent()); - Registry.register(event.registry, NAMESPACE.id("spawn_mob"), EntityClientNetworkHandler::handleMobSpawn); + event.register(NAMESPACE.id("spawn_mob"), EntityClientNetworkHandler::handleMobSpawn); StationAPI.EVENT_BUS.post(new MobHandlerRegistryEvent()); } diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/block/States.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/block/States.java index a18694d7c..7fd763f31 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/block/States.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/api/block/States.java @@ -8,7 +8,6 @@ import net.modificationstation.stationapi.api.event.registry.BlockRegistryEvent; import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.util.collection.IdList; import java.lang.invoke.MethodHandles; @@ -35,6 +34,6 @@ public final class States { @EventListener private static void registerBlocks(BlockRegistryEvent event) { - Registry.register(event.registry, of("air"), AIR_BLOCK.get()); + event.register(of("air"), AIR_BLOCK.get()); } } diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java index 25379bd1d..fafabe806 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java @@ -1,8 +1,10 @@ package net.modificationstation.stationapi.impl.packet; import net.fabricmc.api.ModInitializer; +import net.modificationstation.stationapi.api.network.packet.PacketType; import net.modificationstation.stationapi.api.registry.PacketTypeRegistry; import net.modificationstation.stationapi.api.registry.Registry; +import net.modificationstation.stationapi.api.util.function.BulkBiConsumer; import static net.modificationstation.stationapi.api.StationAPI.NAMESPACE; @@ -12,9 +14,10 @@ public class StationFlatteningNetworkingImpl implements ModInitializer { public void onInitialize() { // Registering packets for flattened save format - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("flattening/chunk_data"), FlattenedChunkDataS2CPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("flattening/multi_block_change"), FlattenedMultiBlockChangeS2CPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("flattening/block_change"), FlattenedBlockChangeS2CPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("flattening/chunk_section_data"), FlattenedChunkSectionDataS2CPacket.TYPE); + BulkBiConsumer.of((String id, PacketType type) -> Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id(id), type)) + .accept("flattening/chunk_data", FlattenedChunkDataS2CPacket.TYPE) + .accept("flattening/multi_block_change", FlattenedMultiBlockChangeS2CPacket.TYPE) + .accept("flattening/block_change", FlattenedBlockChangeS2CPacket.TYPE) + .accept("flattening/chunk_section_data", FlattenedChunkSectionDataS2CPacket.TYPE); } } diff --git a/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java b/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java index 5216d3085..8acf37e19 100644 --- a/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java +++ b/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java @@ -1,8 +1,10 @@ package net.modificationstation.stationapi.impl.network.packet; import net.fabricmc.api.ModInitializer; +import net.modificationstation.stationapi.api.network.packet.PacketType; import net.modificationstation.stationapi.api.registry.PacketTypeRegistry; import net.modificationstation.stationapi.api.registry.Registry; +import net.modificationstation.stationapi.api.util.function.BulkBiConsumer; import net.modificationstation.stationapi.impl.network.packet.c2s.play.StationClickSlotC2SPacket; import net.modificationstation.stationapi.impl.network.packet.c2s.play.StationPlayerInteractBlockC2SPacket; import net.modificationstation.stationapi.impl.network.packet.s2c.play.StationEntityEquipmentUpdateS2CPacket; @@ -15,11 +17,12 @@ public class StationItemsNetworkingImpl implements ModInitializer { @Override public void onInitialize() { - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("items/slot"), StationClickSlotC2SPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("items/equipment"), StationEntityEquipmentUpdateS2CPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("items/inventory"), StationInventoryS2CPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("items/entity_spawn"), StationItemEntitySpawnS2CPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("items/interact"), StationPlayerInteractBlockC2SPacket.TYPE); - Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id("items/slot_update"), StationScreenHandlerSlotUpdateS2CPacket.TYPE); + BulkBiConsumer.of((String id, PacketType type) -> Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id(id), type)) + .accept("items/slot", StationClickSlotC2SPacket.TYPE) + .accept("items/equipment", StationEntityEquipmentUpdateS2CPacket.TYPE) + .accept("items/inventory", StationInventoryS2CPacket.TYPE) + .accept("items/entity_spawn", StationItemEntitySpawnS2CPacket.TYPE) + .accept("items/interact", StationPlayerInteractBlockC2SPacket.TYPE) + .accept("items/slot_update", StationScreenHandlerSlotUpdateS2CPacket.TYPE); } } diff --git a/station-recipes-v0/src/main/java/net/modificationstation/stationapi/impl/recipe/JsonRecipeParserInit.java b/station-recipes-v0/src/main/java/net/modificationstation/stationapi/impl/recipe/JsonRecipeParserInit.java index 997e47640..c6fde79a4 100644 --- a/station-recipes-v0/src/main/java/net/modificationstation/stationapi/impl/recipe/JsonRecipeParserInit.java +++ b/station-recipes-v0/src/main/java/net/modificationstation/stationapi/impl/recipe/JsonRecipeParserInit.java @@ -14,7 +14,7 @@ import net.modificationstation.stationapi.api.recipe.SmeltingRegistry; import net.modificationstation.stationapi.api.registry.JsonRecipeParserRegistry; import net.modificationstation.stationapi.api.registry.JsonRecipesRegistry; -import net.modificationstation.stationapi.api.registry.Registry; +import net.modificationstation.stationapi.api.util.Namespace; import java.io.BufferedReader; import java.io.IOException; @@ -26,8 +26,6 @@ import java.util.function.Consumer; import java.util.function.Function; -import static net.modificationstation.stationapi.api.util.Identifier.of; - @Entrypoint(eventBus = @EventBusPolicy(registerInstance = false)) @EventListener(phase = StationAPI.INTERNAL_PHASE) public class JsonRecipeParserInit { @@ -37,9 +35,10 @@ public class JsonRecipeParserInit { @EventListener private static void registerJsonRecipeParsers(JsonRecipeParserRegistryEvent event) { - Registry.register(event.registry, of("crafting_shaped"), JsonRecipeParserInit::parseCraftingShaped); - Registry.register(event.registry, of("crafting_shapeless"), JsonRecipeParserInit::parseCraftingShapeless); - Registry.register(event.registry, of("smelting"), JsonRecipeParserInit::parseSmelting); + event.register(Namespace.MINECRAFT) + .accept("crafting_shaped", JsonRecipeParserInit::parseCraftingShaped) + .accept("crafting_shapeless", JsonRecipeParserInit::parseCraftingShapeless) + .accept("smelting", JsonRecipeParserInit::parseSmelting); } @EventListener diff --git a/station-registry-sync-v0/src/main/java/net/modificationstation/stationapi/impl/client/registry/ClientServerRegistryRemapper.java b/station-registry-sync-v0/src/main/java/net/modificationstation/stationapi/impl/client/registry/ClientServerRegistryRemapper.java index 52fac5baa..cda912ed2 100644 --- a/station-registry-sync-v0/src/main/java/net/modificationstation/stationapi/impl/client/registry/ClientServerRegistryRemapper.java +++ b/station-registry-sync-v0/src/main/java/net/modificationstation/stationapi/impl/client/registry/ClientServerRegistryRemapper.java @@ -9,7 +9,6 @@ import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; import net.modificationstation.stationapi.api.network.packet.MessagePacket; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.registry.legacy.WorldLegacyRegistry; import java.io.ByteArrayInputStream; @@ -27,7 +26,7 @@ public class ClientServerRegistryRemapper { @EventListener private static void registerListeners(MessageListenerRegistryEvent event) { - Registry.register(event.registry, NAMESPACE.id("server_registry_sync"), ClientServerRegistryRemapper::remapRegistries); + event.register(NAMESPACE.id("server_registry_sync"), ClientServerRegistryRemapper::remapRegistries); } private static void remapRegistries(PlayerEntity player, MessagePacket message) { diff --git a/station-vanilla-checker-v0/src/main/java/net/modificationstation/stationapi/impl/server/network/ServerVanillaChecker.java b/station-vanilla-checker-v0/src/main/java/net/modificationstation/stationapi/impl/server/network/ServerVanillaChecker.java index 934ebd31d..3c7d4e10f 100644 --- a/station-vanilla-checker-v0/src/main/java/net/modificationstation/stationapi/impl/server/network/ServerVanillaChecker.java +++ b/station-vanilla-checker-v0/src/main/java/net/modificationstation/stationapi/impl/server/network/ServerVanillaChecker.java @@ -11,7 +11,6 @@ import net.modificationstation.stationapi.api.event.registry.MessageListenerRegistryEvent; import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.server.event.network.PlayerAttemptLoginEvent; import net.modificationstation.stationapi.impl.network.ModdedPacketHandlerSetter; @@ -47,7 +46,7 @@ else if (!CLIENT_REQUIRED_MODS.isEmpty()) { @EventListener private static void registerMessages(MessageListenerRegistryEvent event) { - Registry.register(event.registry, NAMESPACE.id("modlist"), (player, message) -> { + event.register(NAMESPACE.id("modlist"), (player, message) -> { if (!CLIENT_REQUIRED_MODS.isEmpty()) { LOGGER.info("Received a list of mods from player \"" + player.name + "\", verifying..."); ServerPlayerEntity serverPlayer = (ServerPlayerEntity) player; diff --git a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java index 1f719c787..4fd1b7721 100644 --- a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java +++ b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java @@ -16,7 +16,6 @@ import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; import net.modificationstation.stationapi.api.registry.BlockRegistry; import net.modificationstation.stationapi.api.registry.ItemRegistry; -import net.modificationstation.stationapi.api.registry.Registry; import net.modificationstation.stationapi.api.util.Namespace; import net.modificationstation.stationapi.api.util.Util; @@ -28,7 +27,6 @@ import static net.mine_diver.unsafeevents.listener.ListenerPriority.LOW; import static net.minecraft.block.Block.*; import static net.modificationstation.stationapi.api.StationAPI.LOGGER; -import static net.modificationstation.stationapi.api.util.Identifier.of; @Entrypoint(eventBus = @EventBusPolicy(registerInstance = false)) @EventListener(phase = StationAPI.INTERNAL_PHASE) @@ -151,10 +149,6 @@ private static void registerBlocks(BlockRegistryEvent event) { LOGGER.info("Added vanilla blocks to the registry."); } - private static void register(Registry registry, String id, Block block) { - Registry.register(registry, block.id, of(id), block); - } - @EventListener(priority = LOW) private static void disableAutomaticBlockItemRegistration(BlockRegistryEvent event) { Consumer c = StationBlockItemsBlock::disableAutoItemRegistration; @@ -164,7 +158,7 @@ private static void disableAutomaticBlockItemRegistration(BlockRegistryEvent eve @EventListener private static void registerBlockItems(BlockItemRegistryEvent event) { - Consumer c = block -> Registry.register(ItemRegistry.INSTANCE, BlockRegistry.INSTANCE.getId(block), Item.ITEMS[block.id]); + Consumer c = block -> event.register(BlockRegistry.INSTANCE.getId(block), Item.ITEMS[block.id]); c.accept(Block.WOOL); c.accept(Block.LOG); @@ -174,6 +168,6 @@ private static void registerBlockItems(BlockItemRegistryEvent event) { c.accept(Block.PISTON); c.accept(Block.STICKY_PISTON); - COLLISION_BLOCKS.get().forEach(block -> Registry.register(ItemRegistry.INSTANCE, Objects.requireNonNull(BlockRegistry.INSTANCE.getId(block)).withSuffixedPath("_unobtainable"), new BlockItem(ItemRegistry.SHIFTED_ID.get(block.id)))); + COLLISION_BLOCKS.get().forEach(block -> event.register(Objects.requireNonNull(BlockRegistry.INSTANCE.getId(block)).withSuffixedPath("_unobtainable"), new BlockItem(ItemRegistry.SHIFTED_ID.get(block.id)))); } } diff --git a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java index ca0603605..1cd21d47a 100644 --- a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java +++ b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java @@ -2,19 +2,16 @@ import net.mine_diver.unsafeevents.listener.EventListener; import net.mine_diver.unsafeevents.listener.Listener; -import net.minecraft.item.Item; import net.modificationstation.stationapi.api.StationAPI; import net.modificationstation.stationapi.api.event.registry.ItemRegistryEvent; import net.modificationstation.stationapi.api.mod.entrypoint.Entrypoint; import net.modificationstation.stationapi.api.mod.entrypoint.EventBusPolicy; -import net.modificationstation.stationapi.api.registry.ItemRegistry; -import net.modificationstation.stationapi.api.registry.Registry; +import net.modificationstation.stationapi.api.util.Namespace; import java.lang.invoke.MethodHandles; import static net.minecraft.item.Item.*; import static net.modificationstation.stationapi.api.StationAPI.LOGGER; -import static net.modificationstation.stationapi.api.util.Identifier.of; @Entrypoint(eventBus = @EventBusPolicy(registerInstance = false)) @EventListener(phase = StationAPI.INTERNAL_PHASE) @@ -25,119 +22,115 @@ public final class VanillaItemFixImpl { @EventListener private static void registerItems(ItemRegistryEvent event) { - ItemRegistry registry = event.registry; - - register(registry, "iron_shovel", IRON_SHOVEL); - register(registry, "iron_pickaxe", IRON_PICKAXE); - register(registry, "iron_axe", IRON_AXE); - register(registry, "flint_and_steel", FLINT_AND_STEEL); - register(registry, "apple", APPLE); - register(registry, "bow", BOW); - register(registry, "arrow", ARROW); - register(registry, "coal", COAL); - register(registry, "diamond", DIAMOND); - register(registry, "iron_ingot", IRON_INGOT); - register(registry, "gold_ingot", GOLD_INGOT); - register(registry, "iron_sword", IRON_SWORD); - register(registry, "wooden_sword", WOODEN_SWORD); - register(registry, "wooden_shovel", WOODEN_SHOVEL); - register(registry, "wooden_pickaxe", WOODEN_PICKAXE); - register(registry, "wooden_axe", WOODEN_AXE); - register(registry, "stone_sword", STONE_SWORD); - register(registry, "stone_shovel", STONE_SHOVEL); - register(registry, "stone_pickaxe", STONE_PICKAXE); - register(registry, "stone_axe", STONE_HATCHET); - register(registry, "diamond_sword", DIAMOND_SWORD); - register(registry, "diamond_shovel", DIAMOND_SHOVEL); - register(registry, "diamond_pickaxe", DIAMOND_PICKAXE); - register(registry, "diamond_axe", DIAMOND_AXE); - register(registry, "stick", STICK); - register(registry, "bowl", BOWL); - register(registry, "mushroom_stew", MUSHROOM_STEW); - register(registry, "golden_sword", GOLDEN_SWORD); - register(registry, "golden_shovel", GOLDEN_SHOVEL); - register(registry, "golden_pickaxe", GOLDEN_PICKAXE); - register(registry, "golden_axe", GOLDEN_AXE); - register(registry, "string", STRING); - register(registry, "feather", FEATHER); - register(registry, "gunpowder", GUNPOWDER); - register(registry, "wooden_hoe", WOODEN_HOE); - register(registry, "stone_hoe", STONE_HOE); - register(registry, "iron_hoe", IRON_HOE); - register(registry, "diamond_hoe", DIAMOND_HOE); - register(registry, "golden_hoe", GOLDEN_HOE); - register(registry, "wheat_seeds", SEEDS); - register(registry, "wheat", WHEAT); - register(registry, "bread", BREAD); - register(registry, "leather_helmet", LEATHER_HELMET); - register(registry, "leather_chestplate", LEATHER_CHESTPLATE); - register(registry, "leather_leggings", LEATHER_LEGGINGS); - register(registry, "leather_boots", LEATHER_BOOTS); - register(registry, "chainmail_helmet", CHAIN_HELMET); - register(registry, "chainmail_chestplate", CHAIN_CHESTPLATE); - register(registry, "chainmail_leggings", CHAIN_LEGGINGS); - register(registry, "chainmail_boots", CHAIN_BOOTS); - register(registry, "iron_helmet", IRON_HELMET); - register(registry, "iron_chestplate", IRON_CHESTPLATE); - register(registry, "iron_leggings", IRON_LEGGINGS); - register(registry, "iron_boots", IRON_BOOTS); - register(registry, "diamond_helmet", DIAMOND_HELMET); - register(registry, "diamond_chestplate", DIAMOND_CHESTPLATE); - register(registry, "diamond_leggings", DIAMOND_LEGGINGS); - register(registry, "diamond_boots", DIAMOND_BOOTS); - register(registry, "golden_helmet", GOLDEN_HELMET); - register(registry, "golden_chestplate", GOLDEN_CHESTPLATE); - register(registry, "golden_leggings", GOLDEN_LEGGINGS); - register(registry, "golden_boots", GOLDEN_BOOTS); - register(registry, "flint", FLINT); - register(registry, "porkchop", RAW_PORKCHOP); - register(registry, "cooked_porkchop", COOKED_PORKCHOP); - register(registry, "painting", PAINTING); - register(registry, "golden_apple", GOLDEN_APPLE); - register(registry, "oak_sign", SIGN); - register(registry, "oak_door", WOODEN_DOOR); - register(registry, "bucket", BUCKET); - register(registry, "water_bucket", WATER_BUCKET); - register(registry, "lava_bucket", LAVA_BUCKET); - register(registry, "minecart", MINECART); - register(registry, "saddle", SADDLE); - register(registry, "iron_door", IRON_DOOR); - register(registry, "redstone", REDSTONE); - register(registry, "snowball", SNOWBALL); - register(registry, "oak_boat", BOAT); - register(registry, "leather", LEATHER); - register(registry, "milk_bucket", MILK_BUCKET); - register(registry, "brick", BRICK); - register(registry, "clay_ball", CLAY); - register(registry, "sugar_cane", SUGAR_CANE); - register(registry, "paper", PAPER); - register(registry, "book", BOOK); - register(registry, "slime_ball", SLIMEBALL); - register(registry, "chest_minecart", CHEST_MINECART); - register(registry, "furnace_minecart", FURNACE_MINECART); - register(registry, "egg", EGG); - register(registry, "compass", COMPASS); - register(registry, "fishing_rod", FISHING_ROD); - register(registry, "clock", CLOCK); - register(registry, "glowstone_dust", GLOWSTONE_DUST); - register(registry, "cod", RAW_FISH); - register(registry, "cooked_cod", COOKED_FISH); - register(registry, "dye", DYE); - register(registry, "bone", BONE); - register(registry, "sugar", SUGAR); - register(registry, "cake", CAKE); - register(registry, "red_bed", BED); - register(registry, "repeater", REPEATER); - register(registry, "cookie", COOKIE); - register(registry, "map", MAP); - register(registry, "shears", SHEARS); - register(registry, "music_disc_13", RECORD_THIRTEEN); - register(registry, "music_disc_cat", RECORD_CAT); + event.register(Namespace.MINECRAFT, item -> item.id) + .accept("iron_shovel", IRON_SHOVEL) + .accept("iron_pickaxe", IRON_PICKAXE) + .accept("iron_axe", IRON_AXE) + .accept("flint_and_steel", FLINT_AND_STEEL) + .accept("apple", APPLE) + .accept("bow", BOW) + .accept("arrow", ARROW) + .accept("coal", COAL) + .accept("diamond", DIAMOND) + .accept("iron_ingot", IRON_INGOT) + .accept("gold_ingot", GOLD_INGOT) + .accept("iron_sword", IRON_SWORD) + .accept("wooden_sword", WOODEN_SWORD) + .accept("wooden_shovel", WOODEN_SHOVEL) + .accept("wooden_pickaxe", WOODEN_PICKAXE) + .accept("wooden_axe", WOODEN_AXE) + .accept("stone_sword", STONE_SWORD) + .accept("stone_shovel", STONE_SHOVEL) + .accept("stone_pickaxe", STONE_PICKAXE) + .accept("stone_axe", STONE_HATCHET) + .accept("diamond_sword", DIAMOND_SWORD) + .accept("diamond_shovel", DIAMOND_SHOVEL) + .accept("diamond_pickaxe", DIAMOND_PICKAXE) + .accept("diamond_axe", DIAMOND_AXE) + .accept("stick", STICK) + .accept("bowl", BOWL) + .accept("mushroom_stew", MUSHROOM_STEW) + .accept("golden_sword", GOLDEN_SWORD) + .accept("golden_shovel", GOLDEN_SHOVEL) + .accept("golden_pickaxe", GOLDEN_PICKAXE) + .accept("golden_axe", GOLDEN_AXE) + .accept("string", STRING) + .accept("feather", FEATHER) + .accept("gunpowder", GUNPOWDER) + .accept("wooden_hoe", WOODEN_HOE) + .accept("stone_hoe", STONE_HOE) + .accept("iron_hoe", IRON_HOE) + .accept("diamond_hoe", DIAMOND_HOE) + .accept("golden_hoe", GOLDEN_HOE) + .accept("wheat_seeds", SEEDS) + .accept("wheat", WHEAT) + .accept("bread", BREAD) + .accept("leather_helmet", LEATHER_HELMET) + .accept("leather_chestplate", LEATHER_CHESTPLATE) + .accept("leather_leggings", LEATHER_LEGGINGS) + .accept("leather_boots", LEATHER_BOOTS) + .accept("chainmail_helmet", CHAIN_HELMET) + .accept("chainmail_chestplate", CHAIN_CHESTPLATE) + .accept("chainmail_leggings", CHAIN_LEGGINGS) + .accept("chainmail_boots", CHAIN_BOOTS) + .accept("iron_helmet", IRON_HELMET) + .accept("iron_chestplate", IRON_CHESTPLATE) + .accept("iron_leggings", IRON_LEGGINGS) + .accept("iron_boots", IRON_BOOTS) + .accept("diamond_helmet", DIAMOND_HELMET) + .accept("diamond_chestplate", DIAMOND_CHESTPLATE) + .accept("diamond_leggings", DIAMOND_LEGGINGS) + .accept("diamond_boots", DIAMOND_BOOTS) + .accept("golden_helmet", GOLDEN_HELMET) + .accept("golden_chestplate", GOLDEN_CHESTPLATE) + .accept("golden_leggings", GOLDEN_LEGGINGS) + .accept("golden_boots", GOLDEN_BOOTS) + .accept("flint", FLINT) + .accept("porkchop", RAW_PORKCHOP) + .accept("cooked_porkchop", COOKED_PORKCHOP) + .accept("painting", PAINTING) + .accept("golden_apple", GOLDEN_APPLE) + .accept("oak_sign", SIGN) + .accept("oak_door", WOODEN_DOOR) + .accept("bucket", BUCKET) + .accept("water_bucket", WATER_BUCKET) + .accept("lava_bucket", LAVA_BUCKET) + .accept("minecart", MINECART) + .accept("saddle", SADDLE) + .accept("iron_door", IRON_DOOR) + .accept("redstone", REDSTONE) + .accept("snowball", SNOWBALL) + .accept("oak_boat", BOAT) + .accept("leather", LEATHER) + .accept("milk_bucket", MILK_BUCKET) + .accept("brick", BRICK) + .accept("clay_ball", CLAY) + .accept("sugar_cane", SUGAR_CANE) + .accept("paper", PAPER) + .accept("book", BOOK) + .accept("slime_ball", SLIMEBALL) + .accept("chest_minecart", CHEST_MINECART) + .accept("furnace_minecart", FURNACE_MINECART) + .accept("egg", EGG) + .accept("compass", COMPASS) + .accept("fishing_rod", FISHING_ROD) + .accept("clock", CLOCK) + .accept("glowstone_dust", GLOWSTONE_DUST) + .accept("cod", RAW_FISH) + .accept("cooked_cod", COOKED_FISH) + .accept("dye", DYE) + .accept("bone", BONE) + .accept("sugar", SUGAR) + .accept("cake", CAKE) + .accept("red_bed", BED) + .accept("repeater", REPEATER) + .accept("cookie", COOKIE) + .accept("map", MAP) + .accept("shears", SHEARS) + .accept("music_disc_13", RECORD_THIRTEEN) + .accept("music_disc_cat", RECORD_CAT); LOGGER.info("Added vanilla items to the registry."); } - private static void register(Registry registry, String id, Item item) { - Registry.register(registry, item.id, of(id), item); - } } From 22c56220117fd8c2072658758317beba109237f9 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Fri, 10 Jan 2025 00:51:11 +0500 Subject: [PATCH 5/6] Moved bulk registration helpers implementation to Registry interface and redirected event method helpers to that. --- .../StationFlatteningNetworkingImpl.java | 4 +--- .../packet/StationItemsNetworkingImpl.java | 4 +--- .../api/event/registry/RegistryEvent.java | 6 +++--- .../stationapi/api/registry/Registry.java | 19 +++++++++++++++++++ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java index fafabe806..9ba7af6ac 100644 --- a/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java +++ b/station-flattening-v0/src/main/java/net/modificationstation/stationapi/impl/packet/StationFlatteningNetworkingImpl.java @@ -1,10 +1,8 @@ package net.modificationstation.stationapi.impl.packet; import net.fabricmc.api.ModInitializer; -import net.modificationstation.stationapi.api.network.packet.PacketType; import net.modificationstation.stationapi.api.registry.PacketTypeRegistry; import net.modificationstation.stationapi.api.registry.Registry; -import net.modificationstation.stationapi.api.util.function.BulkBiConsumer; import static net.modificationstation.stationapi.api.StationAPI.NAMESPACE; @@ -14,7 +12,7 @@ public class StationFlatteningNetworkingImpl implements ModInitializer { public void onInitialize() { // Registering packets for flattened save format - BulkBiConsumer.of((String id, PacketType type) -> Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id(id), type)) + Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE) .accept("flattening/chunk_data", FlattenedChunkDataS2CPacket.TYPE) .accept("flattening/multi_block_change", FlattenedMultiBlockChangeS2CPacket.TYPE) .accept("flattening/block_change", FlattenedBlockChangeS2CPacket.TYPE) diff --git a/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java b/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java index 8acf37e19..17db9c561 100644 --- a/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java +++ b/station-items-v0/src/main/java/net/modificationstation/stationapi/impl/network/packet/StationItemsNetworkingImpl.java @@ -1,10 +1,8 @@ package net.modificationstation.stationapi.impl.network.packet; import net.fabricmc.api.ModInitializer; -import net.modificationstation.stationapi.api.network.packet.PacketType; import net.modificationstation.stationapi.api.registry.PacketTypeRegistry; import net.modificationstation.stationapi.api.registry.Registry; -import net.modificationstation.stationapi.api.util.function.BulkBiConsumer; import net.modificationstation.stationapi.impl.network.packet.c2s.play.StationClickSlotC2SPacket; import net.modificationstation.stationapi.impl.network.packet.c2s.play.StationPlayerInteractBlockC2SPacket; import net.modificationstation.stationapi.impl.network.packet.s2c.play.StationEntityEquipmentUpdateS2CPacket; @@ -17,7 +15,7 @@ public class StationItemsNetworkingImpl implements ModInitializer { @Override public void onInitialize() { - BulkBiConsumer.of((String id, PacketType type) -> Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE.id(id), type)) + Registry.register(PacketTypeRegistry.INSTANCE, NAMESPACE) .accept("items/slot", StationClickSlotC2SPacket.TYPE) .accept("items/equipment", StationEntityEquipmentUpdateS2CPacket.TYPE) .accept("items/inventory", StationInventoryS2CPacket.TYPE) diff --git a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java index 8d1a70701..9e9fab6ce 100644 --- a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java +++ b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java @@ -39,17 +39,17 @@ public ENTRY register(int rawId, Identifier id, ENTRY entry) { @Contract(pure = true) public BulkBiConsumer register() { - return BulkBiConsumer.of(this::register); + return Registry.register(registry); } @Contract(pure = true) public BulkBiConsumer register(Namespace namespace) { - return BulkBiConsumer.of((id, entry) -> register(namespace.id(id), entry)); + return Registry.register(registry, namespace); } @Contract(pure = true) public BulkBiConsumer register(Namespace namespace, ToIntFunction rawIdGetter) { - return BulkBiConsumer.of((id, entry) -> register(rawIdGetter.applyAsInt(entry), namespace.id(id), entry)); + return Registry.register(registry, namespace, rawIdGetter); } } } diff --git a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java index 64228b6ca..8dbce299f 100644 --- a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java +++ b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java @@ -7,12 +7,16 @@ import net.minecraft.item.Item; import net.modificationstation.stationapi.api.tag.TagKey; import net.modificationstation.stationapi.api.util.Identifier; +import net.modificationstation.stationapi.api.util.Namespace; import net.modificationstation.stationapi.api.util.collection.IndexedIterable; import net.modificationstation.stationapi.api.util.dynamic.Codecs; +import net.modificationstation.stationapi.api.util.function.BulkBiConsumer; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.Nullable; import java.util.*; import java.util.function.Function; +import java.util.function.ToIntFunction; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -343,6 +347,21 @@ static T register(Registry registry, int rawId, Identifier i return entry; } + @Contract(pure = true) + static BulkBiConsumer register(Registry registry) { + return BulkBiConsumer.of((id, entry) -> register(registry, id, entry)); + } + + @Contract(pure = true) + static BulkBiConsumer register(Registry registry, Namespace namespace) { + return BulkBiConsumer.of((id, entry) -> register(registry, namespace.id(id), entry)); + } + + @Contract(pure = true) + static BulkBiConsumer register(Registry registry, Namespace namespace, ToIntFunction rawIdGetter) { + return BulkBiConsumer.of((id, entry) -> register(registry, rawIdGetter.applyAsInt(entry), namespace.id(id), entry)); + } + Registry freeze(); RegistryEntry.Reference createEntry(T var1); From fc8818b52fc0855a7be51a7f0069e17e8fae9725 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Fri, 10 Jan 2025 00:53:30 +0500 Subject: [PATCH 6/6] Swapped namespace and rawIdGetter placements so they better reflect the original method arguments. --- .../stationapi/api/event/registry/RegistryEvent.java | 4 ++-- .../modificationstation/stationapi/api/registry/Registry.java | 2 +- .../stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java | 2 +- .../stationapi/impl/vanillafix/item/VanillaItemFixImpl.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java index 9e9fab6ce..ce6958523 100644 --- a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java +++ b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/event/registry/RegistryEvent.java @@ -48,8 +48,8 @@ public BulkBiConsumer register(Namespace namespace) { } @Contract(pure = true) - public BulkBiConsumer register(Namespace namespace, ToIntFunction rawIdGetter) { - return Registry.register(registry, namespace, rawIdGetter); + public BulkBiConsumer register(ToIntFunction rawIdGetter, Namespace namespace) { + return Registry.register(registry, rawIdGetter, namespace); } } } diff --git a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java index 8dbce299f..b7f9f512e 100644 --- a/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java +++ b/station-registry-api-v0/src/main/java/net/modificationstation/stationapi/api/registry/Registry.java @@ -358,7 +358,7 @@ static BulkBiConsumer register(Registry registry, } @Contract(pure = true) - static BulkBiConsumer register(Registry registry, Namespace namespace, ToIntFunction rawIdGetter) { + static BulkBiConsumer register(Registry registry, ToIntFunction rawIdGetter, Namespace namespace) { return BulkBiConsumer.of((id, entry) -> register(registry, rawIdGetter.applyAsInt(entry), namespace.id(id), entry)); } diff --git a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java index 4fd1b7721..8c40bb81e 100644 --- a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java +++ b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/block/VanillaBlockFixImpl.java @@ -48,7 +48,7 @@ public final class VanillaBlockFixImpl { @EventListener private static void registerBlocks(BlockRegistryEvent event) { - event.register(Namespace.MINECRAFT, block -> block.id) + event.register(block -> block.id, Namespace.MINECRAFT) .accept("stone", STONE) .accept("grass_block", GRASS_BLOCK) .accept("dirt", DIRT) diff --git a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java index 1cd21d47a..faf3e271f 100644 --- a/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java +++ b/station-vanilla-fix-v0/src/main/java/net/modificationstation/stationapi/impl/vanillafix/item/VanillaItemFixImpl.java @@ -22,7 +22,7 @@ public final class VanillaItemFixImpl { @EventListener private static void registerItems(ItemRegistryEvent event) { - event.register(Namespace.MINECRAFT, item -> item.id) + event.register(item -> item.id, Namespace.MINECRAFT) .accept("iron_shovel", IRON_SHOVEL) .accept("iron_pickaxe", IRON_PICKAXE) .accept("iron_axe", IRON_AXE)