From bf34031711d3861e91d7f498a1d9c3c43c49d9e2 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 29 Jul 2021 23:03:06 +0800 Subject: [PATCH] WIP Forge port --- build.gradle | 10 +- common/build.gradle | 2 +- .../level/entity/EntityRendererRegistry.java | 11 +- .../fabric/EntityRendererRegistryImpl.java | 6 +- forge/build.gradle | 2 +- .../event/forge/EventFactoryImpl.java | 37 +----- .../event/forge/EventHandlerImpl.java | 6 +- .../event/forge/EventHandlerImplClient.java | 108 ++++++++--------- .../event/forge/EventHandlerImplCommon.java | 114 ++++++++++-------- .../event/forge/EventHandlerImplServer.java | 2 +- .../architectury/forge/ArchitecturyForge.java | 6 +- .../block}/forge/BlockEntityHooksImpl.java | 2 +- .../client/screen}/forge/ScreenHooksImpl.java | 30 +++-- .../fluid}/forge/FluidStackHooksForge.java | 9 +- .../fluid}/forge/FluidStackHooksImpl.java | 5 +- .../hooks/forge/DyeColorHooksImpl.java | 5 +- .../hooks/forge/PackRepositoryHooksImpl.java | 2 +- .../food}/forge/FoodPropertiesHooksImpl.java | 2 +- .../level/entity}/forge/EntityHooksImpl.java | 5 +- .../entity}/forge/ItemEntityHooksImpl.java | 4 +- .../level/entity}/forge/PlayerHooksImpl.java | 2 +- .../level}/forge/ExplosionHooksImpl.java | 2 +- .../hooks/tags}/forge/TagHooksImpl.java | 4 +- .../mixin/forge/MixinBlockEntity.java | 6 +- .../forge/MixinBlockEntityExtension.java | 6 +- .../mixin/forge/MixinChunkSerializer.java | 6 +- .../mixin/forge/MixinClientLevel.java | 6 +- .../mixin/forge/MixinItemExtension.java | 6 +- .../mixin/forge/MixinRegistryEntry.java | 6 +- .../mixin/forge/MixinWorldEvent.java | 6 +- .../mixin/forge/ParticleEngineAccessor.java | 4 +- .../forge/ClientNetworkingManager.java | 13 +- .../networking/forge/NetworkManagerImpl.java | 22 ++-- .../platform/forge/EventBuses.java | 2 +- .../platform/forge/PlatformImpl.java | 30 +++-- .../plugin/forge/ArchitecturyMixinPlugin.java | 4 +- .../block}/forge/BlockPropertiesImpl.java | 6 +- .../registry/block}/forge/ToolTypeImpl.java | 2 +- .../forge/KeyMappingRegistryImpl.java} | 8 +- .../forge/ParticleProviderRegistryImpl.java | 11 +- .../BlockEntityRendererRegistryImpl.java} | 15 +-- .../forge/ColorHandlerRegistryImpl.java} | 10 +- .../forge/RenderTypeRegistryImpl.java} | 4 +- .../forge/CreativeTabRegistryImpl.java} | 4 +- .../forge/ReloadListenerRegistryImpl.java} | 12 +- .../registry/fuel/forge/FuelRegistryImpl.java | 4 +- .../forge/CriteriaTriggersRegistryImpl.java | 2 +- .../biome}/forge/BiomeModificationsImpl.java | 19 ++- .../forge/EntityAttributeRegistryImpl.java} | 10 +- .../forge/EntityRendererRegistryImpl.java | 53 ++++++++ .../trade/forge/TradeRegistryImpl.java | 4 +- .../level}/forge/GameRuleFactoryImpl.java | 11 +- .../level}/forge/GameRuleRegistryImpl.java | 2 +- .../menu}/forge/MenuRegistryImpl.java | 12 +- .../registries}/forge/RegistriesImpl.java | 51 ++++---- .../utils/forge/GameInstanceImpl.java | 4 +- ...iomeGenerationSettingsBuilderAccessor.java | 34 ------ .../mixin/forge/GameRulesAccessor.java | 65 ---------- .../MobSpawnSettingsBuilderAccessor.java | 44 ------- .../entity/forge/EntityRenderersImpl.java | 34 ------ .../resources/META-INF/accesstransformer.cfg | 82 +++++++------ .../main/resources/architectury.mixins.json | 24 ++-- gradle.properties | 8 +- settings.gradle | 5 +- testmod-common/build.gradle | 2 +- .../java/dev/architectury/test/TestMod.java | 2 +- .../test/particle/TestParticles.java | 8 +- .../assets/architectury-test/lang/en_us.json | 4 - .../particles/test_particle.json | 5 - .../assets/architectury_test/lang/en_us.json | 4 + .../particles/test_particle.json | 1 + .../textures/particles}/test_particle.png | Bin .../tags/blocks/heart_particles2.json | 0 testmod-forge/build.gradle | 2 +- .../test/forge}/TestModForge.java | 5 +- .../src/main/resources/META-INF/mods.toml | 4 +- 76 files changed, 498 insertions(+), 572 deletions(-) rename forge/src/main/java/{me/shedaniel => dev}/architectury/event/forge/EventFactoryImpl.java (65%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/event/forge/EventHandlerImpl.java (92%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/event/forge/EventHandlerImplClient.java (75%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/event/forge/EventHandlerImplCommon.java (79%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/event/forge/EventHandlerImplServer.java (95%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/forge/ArchitecturyForge.java (89%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/block}/forge/BlockEntityHooksImpl.java (97%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/client/screen}/forge/ScreenHooksImpl.java (56%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/fluid}/forge/FluidStackHooksForge.java (78%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/fluid}/forge/FluidStackHooksImpl.java (97%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/hooks/forge/DyeColorHooksImpl.java (79%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/hooks/forge/PackRepositoryHooksImpl.java (96%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/item/food}/forge/FoodPropertiesHooksImpl.java (96%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/level/entity}/forge/EntityHooksImpl.java (83%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/level/entity}/forge/ItemEntityHooksImpl.java (92%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/level/entity}/forge/PlayerHooksImpl.java (95%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/level}/forge/ExplosionHooksImpl.java (96%) rename forge/src/main/java/{me/shedaniel/architectury/hooks => dev/architectury/hooks/tags}/forge/TagHooksImpl.java (94%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinBlockEntity.java (95%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinBlockEntityExtension.java (93%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinChunkSerializer.java (96%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinClientLevel.java (95%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinItemExtension.java (93%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinRegistryEntry.java (90%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/MixinWorldEvent.java (92%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/mixin/forge/ParticleEngineAccessor.java (96%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/networking/forge/ClientNetworkingManager.java (81%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/networking/forge/NetworkManagerImpl.java (92%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/platform/forge/EventBuses.java (97%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/platform/forge/PlatformImpl.java (81%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/plugin/forge/ArchitecturyMixinPlugin.java (98%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/block}/forge/BlockPropertiesImpl.java (94%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/block}/forge/ToolTypeImpl.java (96%) rename forge/src/main/java/{me/shedaniel/architectury/registry/forge/KeyBindingsImpl.java => dev/architectury/registry/client/keymappings/forge/KeyMappingRegistryImpl.java} (81%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/client/particle}/forge/ParticleProviderRegistryImpl.java (90%) rename forge/src/main/java/{me/shedaniel/architectury/registry/forge/BlockEntityRenderersImpl.java => dev/architectury/registry/client/rendering/forge/BlockEntityRendererRegistryImpl.java} (71%) rename forge/src/main/java/{me/shedaniel/architectury/registry/forge/ColorHandlersImpl.java => dev/architectury/registry/client/rendering/forge/ColorHandlerRegistryImpl.java} (93%) rename forge/src/main/java/{me/shedaniel/architectury/registry/forge/RenderTypesImpl.java => dev/architectury/registry/client/rendering/forge/RenderTypeRegistryImpl.java} (93%) rename forge/src/main/java/{me/shedaniel/architectury/registry/forge/CreativeTabsImpl.java => dev/architectury/registry/forge/CreativeTabRegistryImpl.java} (94%) rename forge/src/main/java/{me/shedaniel/architectury/registry/forge/ReloadListenersImpl.java => dev/architectury/registry/forge/ReloadListenerRegistryImpl.java} (84%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/registry/fuel/forge/FuelRegistryImpl.java (95%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/level/advancement}/forge/CriteriaTriggersRegistryImpl.java (94%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/level/biome}/forge/BiomeModificationsImpl.java (95%) rename forge/src/main/java/{me/shedaniel/architectury/registry/entity/forge/EntityAttributesImpl.java => dev/architectury/registry/level/entity/forge/EntityAttributeRegistryImpl.java} (88%) create mode 100644 forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityRendererRegistryImpl.java rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/level/entity}/trade/forge/TradeRegistryImpl.java (96%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/level}/forge/GameRuleFactoryImpl.java (76%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/level}/forge/GameRuleRegistryImpl.java (95%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/menu}/forge/MenuRegistryImpl.java (84%) rename forge/src/main/java/{me/shedaniel/architectury/registry => dev/architectury/registry/registries}/forge/RegistriesImpl.java (89%) rename forge/src/main/java/{me/shedaniel => dev}/architectury/utils/forge/GameInstanceImpl.java (90%) delete mode 100644 forge/src/main/java/me/shedaniel/architectury/mixin/forge/BiomeGenerationSettingsBuilderAccessor.java delete mode 100644 forge/src/main/java/me/shedaniel/architectury/mixin/forge/GameRulesAccessor.java delete mode 100644 forge/src/main/java/me/shedaniel/architectury/mixin/forge/MobSpawnSettingsBuilderAccessor.java delete mode 100644 forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityRenderersImpl.java delete mode 100644 testmod-common/src/main/resources/assets/architectury-test/lang/en_us.json delete mode 100644 testmod-common/src/main/resources/assets/architectury-test/particles/test_particle.json create mode 100644 testmod-common/src/main/resources/assets/architectury_test/lang/en_us.json create mode 100644 testmod-common/src/main/resources/assets/architectury_test/particles/test_particle.json rename testmod-common/src/main/resources/assets/{architectury-test/textures/particle => architectury_test/textures/particles}/test_particle.png (100%) rename testmod-common/src/main/resources/data/{architectury-test => architectury_test}/tags/blocks/heart_particles2.json (100%) rename testmod-forge/src/main/java/{me/shedaniel/architectury/test => dev/architectury/test/forge}/TestModForge.java (90%) diff --git a/build.gradle b/build.gradle index 87de1485..b636b476 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "3.2-SNAPSHOT" - id "dev.architectury.loom" version "0.8.0-SNAPSHOT" apply false + id "dev.architectury.loom" version "0.7.3-SNAPSHOT" apply false id "io.github.juuxel.loom-quiltflower" version "1.1.1" apply false id "org.cadixdev.licenser" version "0.5.0" id "com.matthewprenger.cursegradle" version "1.4.0" apply false @@ -34,6 +34,14 @@ allprojects { apply plugin: "java" apply plugin: "architectury-plugin" apply plugin: "org.cadixdev.licenser" + + repositories { + mavenLocal() + } + + architectury { + transformerVersion = "4.0.9999" + } ext { isSnapshot = System.getenv("PR_NUM") != null diff --git a/common/build.gradle b/common/build.gradle index 9d8c393f..85171517 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -9,7 +9,7 @@ dependencies { } architectury { - common(false) + common() } afterEvaluate { diff --git a/common/src/main/java/dev/architectury/registry/level/entity/EntityRendererRegistry.java b/common/src/main/java/dev/architectury/registry/level/entity/EntityRendererRegistry.java index aceb24c1..337619a1 100644 --- a/common/src/main/java/dev/architectury/registry/level/entity/EntityRendererRegistry.java +++ b/common/src/main/java/dev/architectury/registry/level/entity/EntityRendererRegistry.java @@ -25,14 +25,23 @@ import net.fabricmc.api.Environment; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; +import org.jetbrains.annotations.ApiStatus; + +import java.util.function.Supplier; @Environment(EnvType.CLIENT) public final class EntityRendererRegistry { private EntityRendererRegistry() { } - @ExpectPlatform + @Deprecated + @ApiStatus.ScheduledForRemoval public static void register(EntityType type, EntityRendererProvider provider) { + register(() -> type, provider); + } + + @ExpectPlatform + public static void register(Supplier> type, EntityRendererProvider provider) { throw new AssertionError(); } } diff --git a/fabric/src/main/java/dev/architectury/registry/level/entity/fabric/EntityRendererRegistryImpl.java b/fabric/src/main/java/dev/architectury/registry/level/entity/fabric/EntityRendererRegistryImpl.java index e34e46c6..84fc1a16 100644 --- a/fabric/src/main/java/dev/architectury/registry/level/entity/fabric/EntityRendererRegistryImpl.java +++ b/fabric/src/main/java/dev/architectury/registry/level/entity/fabric/EntityRendererRegistryImpl.java @@ -24,8 +24,10 @@ import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; +import java.util.function.Supplier; + public class EntityRendererRegistryImpl { - public static void register(EntityType type, EntityRendererProvider provider) { - EntityRendererRegistry.INSTANCE.register(type, provider); + public static void register(Supplier> type, EntityRendererProvider provider) { + EntityRendererRegistry.INSTANCE.register(type.get(), provider); } } diff --git a/forge/build.gradle b/forge/build.gradle index 2da96d75..daf6a0f7 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -4,7 +4,7 @@ plugins { } loom { - mixinConfigs = ["architectury.mixins.json", "architectury-common.mixins.json"] +// mixinConfigs = ["architectury.mixins.json", "architectury-common.mixins.json"] } configurations { diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventFactoryImpl.java b/forge/src/main/java/dev/architectury/event/forge/EventFactoryImpl.java similarity index 65% rename from forge/src/main/java/me/shedaniel/architectury/event/forge/EventFactoryImpl.java rename to forge/src/main/java/dev/architectury/event/forge/EventFactoryImpl.java index 5e397894..28e9c957 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventFactoryImpl.java +++ b/forge/src/main/java/dev/architectury/event/forge/EventFactoryImpl.java @@ -17,13 +17,11 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.event.forge; +package dev.architectury.event.forge; -import me.shedaniel.architectury.event.Actor; -import me.shedaniel.architectury.event.Event; -import me.shedaniel.architectury.event.EventActor; -import me.shedaniel.architectury.event.EventResult; -import net.minecraft.world.InteractionResult; +import dev.architectury.event.Event; +import dev.architectury.event.EventActor; +import dev.architectury.event.EventResult; import net.minecraftforge.common.MinecraftForge; import org.jetbrains.annotations.ApiStatus; @@ -40,33 +38,6 @@ public class EventFactoryImpl { return event; } - public static Event> attachToForgeActor(Event> event) { - event.register(eventObj -> { - if (!(eventObj instanceof net.minecraftforge.eventbus.api.Event)) { - throw new ClassCastException(eventObj.getClass() + " is not an instance of forge Event!"); - } - MinecraftForge.EVENT_BUS.post((net.minecraftforge.eventbus.api.Event) eventObj); - return InteractionResult.PASS; - }); - return event; - } - - public static Event> attachToForgeActorCancellable(Event> event) { - event.register(eventObj -> { - if (!(eventObj instanceof net.minecraftforge.eventbus.api.Event)) { - throw new ClassCastException(eventObj.getClass() + " is not an instance of forge Event!"); - } - if (!((net.minecraftforge.eventbus.api.Event) eventObj).isCancelable()) { - throw new ClassCastException(eventObj.getClass() + " is not cancellable Event!"); - } - if (MinecraftForge.EVENT_BUS.post((net.minecraftforge.eventbus.api.Event) eventObj)) { - return InteractionResult.FAIL; - } - return InteractionResult.PASS; - }); - return event; - } - @ApiStatus.Internal public static Event> attachToForgeEventActor(Event> event) { event.register(eventObj -> { diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImpl.java b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImpl.java similarity index 92% rename from forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImpl.java rename to forge/src/main/java/dev/architectury/event/forge/EventHandlerImpl.java index c5c1ebde..7e986a02 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImpl.java +++ b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImpl.java @@ -17,10 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.event.forge; +package dev.architectury.event.forge; -import me.shedaniel.architectury.forge.ArchitecturyForge; -import me.shedaniel.architectury.platform.forge.EventBuses; +import dev.architectury.platform.forge.EventBuses; +import dev.architectury.forge.ArchitecturyForge; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.MinecraftForge; diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java similarity index 75% rename from forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java rename to forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java index 41ad3e7f..4009fc68 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java +++ b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java @@ -17,20 +17,19 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.event.forge; +package dev.architectury.event.forge; -import me.shedaniel.architectury.event.events.TextureStitchEvent; -import me.shedaniel.architectury.event.events.client.ClientChatEvent; -import me.shedaniel.architectury.hooks.ScreenHooks; -import me.shedaniel.architectury.impl.TooltipEventColorContextImpl; -import me.shedaniel.architectury.impl.TooltipEventPositionContextImpl; +import dev.architectury.event.CompoundEventResult; +import dev.architectury.event.events.client.ClientChatEvent; +import dev.architectury.event.events.client.*; +import dev.architectury.event.events.common.InteractionEvent; +import dev.architectury.impl.ScreenAccessImpl; +import dev.architectury.impl.TooltipEventColorContextImpl; +import dev.architectury.impl.TooltipEventPositionContextImpl; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.network.chat.Component; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.InteractionResultHolder; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.*; @@ -41,13 +40,11 @@ import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import java.util.List; - @OnlyIn(Dist.CLIENT) public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ItemTooltipEvent event) { - TooltipEvent.ITEM.invoker().append(event.getItemStack(), event.getToolTip(), event.getFlags()); + ClientTooltipEvent.ITEM.invoker().append(event.getItemStack(), event.getToolTip(), event.getFlags()); } @SubscribeEvent(priority = EventPriority.HIGH) @@ -61,7 +58,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderGameOverlayEvent.Post event) { if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) - GuiEvent.RENDER_HUD.invoker().renderHud(event.getMatrixStack(), event.getPartialTicks()); + ClientGuiEvent.RENDER_HUD.invoker().renderHud(event.getMatrixStack(), event.getPartialTicks()); } @SubscribeEvent(priority = EventPriority.HIGH) @@ -81,72 +78,75 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.InitGuiEvent.Pre event) { - if (GuiEvent.INIT_PRE.invoker().init(event.getGui(), ScreenHooks.getButtons(event.getGui()), (List) event.getGui().children()) != InteractionResult.PASS) { + if (ClientGuiEvent.INIT_PRE.invoker().init(event.getGui(), new ScreenAccessImpl(event.getGui())).isFalse()) { event.setCanceled(true); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.InitGuiEvent.Post event) { - GuiEvent.INIT_POST.invoker().init(event.getGui(), ScreenHooks.getButtons(event.getGui()), (List) event.getGui().children()); + ClientGuiEvent.INIT_POST.invoker().init(event.getGui(), new ScreenAccessImpl(event.getGui())); } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderGameOverlayEvent.Text event) { if (Minecraft.getInstance().options.renderDebug) { - GuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(event.getLeft()); - GuiEvent.DEBUG_TEXT_RIGHT.invoker().gatherText(event.getRight()); + ClientGuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(event.getLeft()); + ClientGuiEvent.DEBUG_TEXT_RIGHT.invoker().gatherText(event.getRight()); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(net.minecraftforge.client.event.ClientChatEvent event) { - InteractionResultHolder process = ClientChatEvent.CLIENT.invoker().process(event.getMessage()); - if (process.getObject() != null) - event.setMessage(process.getObject()); - if (process.getResult() == InteractionResult.FAIL) - event.setCanceled(true); + CompoundEventResult process = ClientChatEvent.PROCESS.invoker().process(event.getMessage()); + if (process.isPresent()) { + if (process.isFalse()) + event.setCanceled(true); + else if (process.object() != null) + event.setMessage(process.object()); + } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ClientChatReceivedEvent event) { - InteractionResultHolder process = ClientChatEvent.CLIENT_RECEIVED.invoker().process(event.getType(), event.getMessage(), event.getSenderUUID()); - if (process.getObject() != null) - event.setMessage(process.getObject()); - if (process.getResult() == InteractionResult.FAIL) - event.setCanceled(true); + CompoundEventResult process = ClientChatEvent.RECEIVED.invoker().process(event.getType(), event.getMessage(), event.getSenderUUID()); + if (process.isPresent()) { + if (process.isFalse()) + event.setCanceled(true); + else if (process.object() != null) + event.setMessage(process.object()); + } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(WorldEvent.Load event) { if (event.getWorld().isClientSide()) { ClientLevel world = (ClientLevel) event.getWorld(); - ClientLifecycleEvent.CLIENT_WORLD_LOAD.invoker().act(world); + ClientLifecycleEvent.CLIENT_LEVEL_LOAD.invoker().act(world); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiOpenEvent event) { - InteractionResultHolder result = GuiEvent.SET_SCREEN.invoker().modifyScreen(event.getGui()); - switch (result.getResult()) { - case FAIL: + CompoundEventResult result = ClientGuiEvent.SET_SCREEN.invoker().modifyScreen(event.getGui()); + if (result.isPresent()) { + if (result.isFalse()) event.setCanceled(true); - return; - case SUCCESS: - event.setGui(result.getObject()); + else if (result.object() != null) + event.setGui(result.object()); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.DrawScreenEvent.Pre event) { - if (GuiEvent.RENDER_PRE.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()) != InteractionResult.PASS) { + if (ClientGuiEvent.RENDER_PRE.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()).isFalse()) { event.setCanceled(true); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.DrawScreenEvent.Post event) { - GuiEvent.RENDER_POST.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()); + ClientGuiEvent.RENDER_POST.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()); } @SubscribeEvent(priority = EventPriority.HIGH) @@ -161,7 +161,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RecipesUpdatedEvent event) { - RecipeUpdateEvent.EVENT.invoker().update(event.getRecipeManager()); + ClientRecipeUpdateEvent.EVENT.invoker().update(event.getRecipeManager()); } private static final ThreadLocal tooltipColorContext = ThreadLocal.withInitial(TooltipEventColorContextImpl::new); @@ -169,14 +169,14 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderTooltipEvent.Pre event) { - if (TooltipEvent.RENDER_FORGE_PRE.invoker().renderTooltip(event.getMatrixStack(), event.getLines(), event.getX(), event.getY()) == InteractionResult.FAIL) { + if (ClientTooltipEvent.RENDER_FORGE_PRE.invoker().renderTooltip(event.getMatrixStack(), event.getLines(), event.getX(), event.getY()).isFalse()) { event.setCanceled(true); return; } TooltipEventPositionContextImpl positionContext = tooltipPositionContext.get(); positionContext.reset(event.getX(), event.getY()); - TooltipEvent.RENDER_MODIFY_POSITION.invoker().renderTooltip(event.getMatrixStack(), positionContext); + ClientTooltipEvent.RENDER_MODIFY_POSITION.invoker().renderTooltip(event.getMatrixStack(), positionContext); event.setX(positionContext.getTooltipX()); event.setY(positionContext.getTooltipY()); } @@ -188,7 +188,7 @@ public class EventHandlerImplClient { colorContext.setBackgroundColor(event.getBackground()); colorContext.setOutlineGradientTopColor(event.getBorderStart()); colorContext.setOutlineGradientBottomColor(event.getBorderEnd()); - TooltipEvent.RENDER_MODIFY_COLOR.invoker().renderTooltip(event.getMatrixStack(), event.getX(), event.getY(), colorContext); + ClientTooltipEvent.RENDER_MODIFY_COLOR.invoker().renderTooltip(event.getMatrixStack(), event.getX(), event.getY(), colorContext); event.setBackground(colorContext.getBackgroundColor()); event.setBorderEnd(colorContext.getOutlineGradientBottomColor()); event.setBorderStart(colorContext.getOutlineGradientTopColor()); @@ -196,7 +196,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseScrollEvent.Pre event) { - if (ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getScrollDelta()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getScrollDelta()).isFalse()) { event.setCanceled(true); } } @@ -208,7 +208,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseClickedEvent.Pre event) { - if (ClientScreenInputEvent.MOUSE_CLICKED_PRE.invoker().mouseClicked(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.MOUSE_CLICKED_PRE.invoker().mouseClicked(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()).isFalse()) { event.setCanceled(true); } } @@ -220,7 +220,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseDragEvent.Pre event) { - if (ClientScreenInputEvent.MOUSE_DRAGGED_PRE.invoker().mouseDragged(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getMouseButton(), event.getDragX(), event.getDragY()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.MOUSE_DRAGGED_PRE.invoker().mouseDragged(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getMouseButton(), event.getDragX(), event.getDragY()).isFalse()) { event.setCanceled(true); } } @@ -232,7 +232,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseReleasedEvent.Pre event) { - if (ClientScreenInputEvent.MOUSE_RELEASED_PRE.invoker().mouseReleased(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.MOUSE_RELEASED_PRE.invoker().mouseReleased(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()).isFalse()) { event.setCanceled(true); } } @@ -244,7 +244,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardCharTypedEvent.Pre event) { - if (ClientScreenInputEvent.CHAR_TYPED_PRE.invoker().charTyped(Minecraft.getInstance(), event.getGui(), event.getCodePoint(), event.getModifiers()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.CHAR_TYPED_PRE.invoker().charTyped(Minecraft.getInstance(), event.getGui(), event.getCodePoint(), event.getModifiers()).isFalse()) { event.setCanceled(true); } } @@ -256,7 +256,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardKeyPressedEvent.Pre event) { - if (ClientScreenInputEvent.KEY_PRESSED_PRE.invoker().keyPressed(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.KEY_PRESSED_PRE.invoker().keyPressed(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()).isFalse()) { event.setCanceled(true); } } @@ -268,7 +268,7 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardKeyReleasedEvent.Pre event) { - if (ClientScreenInputEvent.KEY_RELEASED_PRE.invoker().keyReleased(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()) != InteractionResult.PASS) { + if (ClientScreenInputEvent.KEY_RELEASED_PRE.invoker().keyReleased(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()).isFalse()) { event.setCanceled(true); } } @@ -280,14 +280,14 @@ public class EventHandlerImplClient { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(InputEvent.MouseScrollEvent event) { - if (ClientRawInputEvent.MOUSE_SCROLLED.invoker().mouseScrolled(Minecraft.getInstance(), event.getScrollDelta()) != InteractionResult.PASS) { + if (ClientRawInputEvent.MOUSE_SCROLLED.invoker().mouseScrolled(Minecraft.getInstance(), event.getScrollDelta()).isFalse()) { event.setCanceled(true); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(InputEvent.RawMouseEvent event) { - if (ClientRawInputEvent.MOUSE_CLICKED_PRE.invoker().mouseClicked(Minecraft.getInstance(), event.getButton(), event.getAction(), event.getMods()) != InteractionResult.PASS) { + if (ClientRawInputEvent.MOUSE_CLICKED_PRE.invoker().mouseClicked(Minecraft.getInstance(), event.getButton(), event.getAction(), event.getMods()).isFalse()) { event.setCanceled(true); } } @@ -305,18 +305,18 @@ public class EventHandlerImplClient { @OnlyIn(Dist.CLIENT) public static class ModBasedEventHandler { @SubscribeEvent(priority = EventPriority.HIGH) - public static void event(net.minecraftforge.client.event.TextureStitchEvent.Pre event) { - TextureStitchEvent.PRE.invoker().stitch(event.getMap(), event::addSprite); + public static void event(TextureStitchEvent.Pre event) { + ClientTextureStitchEvent.PRE.invoker().stitch(event.getMap(), event::addSprite); } @SubscribeEvent(priority = EventPriority.HIGH) - public static void event(net.minecraftforge.client.event.TextureStitchEvent.Post event) { - TextureStitchEvent.POST.invoker().stitch(event.getMap()); + public static void event(TextureStitchEvent.Post event) { + ClientTextureStitchEvent.POST.invoker().stitch(event.getMap()); } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLClientSetupEvent event) { - ClientLifecycleEvent.CLIENT_SETUP.invoker().stateChanged(event.getMinecraftSupplier().get()); + ClientLifecycleEvent.CLIENT_SETUP.invoker().stateChanged(Minecraft.getInstance()); } } } diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplCommon.java similarity index 79% rename from forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java rename to forge/src/main/java/dev/architectury/event/forge/EventHandlerImplCommon.java index aff44c40..f20aa3fe 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java +++ b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplCommon.java @@ -17,18 +17,18 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.event.forge; +package dev.architectury.event.forge; -import me.shedaniel.architectury.event.CompoundEventResult; -import me.shedaniel.architectury.event.EventResult; -import me.shedaniel.architectury.event.events.PlayerEvent; -import me.shedaniel.architectury.event.events.*; -import me.shedaniel.architectury.utils.IntValue; +import dev.architectury.event.CompoundEventResult; +import dev.architectury.event.EventResult; +import dev.architectury.event.events.common.PlayerEvent; +import dev.architectury.event.events.common.*; +import dev.architectury.utils.value.IntValue; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.InteractionResultHolder; +import net.minecraft.server.network.TextFilter; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -39,7 +39,6 @@ import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.event.TickEvent.PlayerTickEvent; import net.minecraftforge.event.TickEvent.ServerTickEvent; import net.minecraftforge.event.TickEvent.WorldTickEvent; -import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.AnimalTameEvent; @@ -59,8 +58,8 @@ import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.LogicalSide; -import net.minecraftforge.fml.event.server.*; -import net.minecraftforge.fml.server.ServerLifecycleHooks; +import net.minecraftforge.fmllegacy.server.ServerLifecycleHooks; +import net.minecraftforge.fmlserverevents.*; public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) @@ -75,9 +74,9 @@ public class EventHandlerImplCommon { public static void event(WorldTickEvent event) { if (event.side == LogicalSide.SERVER) { if (event.phase == Phase.START) - TickEvent.SERVER_WORLD_PRE.invoker().tick((ServerLevel) event.world); + TickEvent.SERVER_LEVEL_PRE.invoker().tick((ServerLevel) event.world); else if (event.phase == Phase.END) - TickEvent.SERVER_WORLD_POST.invoker().tick((ServerLevel) event.world); + TickEvent.SERVER_LEVEL_POST.invoker().tick((ServerLevel) event.world); } } @@ -124,7 +123,7 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(CommandEvent event) { CommandPerformEvent performEvent = new CommandPerformEvent(event.getParseResults(), event.getException()); - if (CommandPerformEvent.EVENT.invoker().act(performEvent) == InteractionResult.FAIL) { + if (CommandPerformEvent.EVENT.invoker().act(performEvent).isFalse()) { event.setCanceled(true); } event.setParseResults(performEvent.getResults()); @@ -142,10 +141,30 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ServerChatEvent event) { - InteractionResultHolder process = ChatEvent.SERVER.invoker().process(event.getPlayer(), event.getMessage(), event.getComponent()); - if (process.getObject() != null) - event.setComponent(process.getObject()); - if (process.getResult() == InteractionResult.FAIL) + class ChatComponentImpl implements ChatEvent.ChatComponent { + @Override + public Component getRaw() { + return new TextComponent(event.getMessage()); + } + + @Override + public Component getFiltered() { + return event.getComponent(); + } + + @Override + public void setRaw(Component raw) { + // NO-OP + } + + @Override + public void setFiltered(Component filtered) { + event.setComponent(filtered); + } + } + + EventResult process = ChatEvent.SERVER.invoker().process(event.getPlayer(), TextFilter.FilteredText.passThrough(event.getMessage()), new ChatComponentImpl()); + if (process.isFalse()) event.setCanceled(true); } @@ -153,7 +172,7 @@ public class EventHandlerImplCommon { public static void event(WorldEvent.Load event) { if (event.getWorld() instanceof ServerLevel) { ServerLevel world = (ServerLevel) event.getWorld(); - LifecycleEvent.SERVER_WORLD_LOAD.invoker().act(world); + LifecycleEvent.SERVER_LEVEL_LOAD.invoker().act(world); } } @@ -161,7 +180,7 @@ public class EventHandlerImplCommon { public static void event(WorldEvent.Unload event) { if (event.getWorld() instanceof ServerLevel) { ServerLevel world = (ServerLevel) event.getWorld(); - LifecycleEvent.SERVER_WORLD_UNLOAD.invoker().act(world); + LifecycleEvent.SERVER_LEVEL_UNLOAD.invoker().act(world); } } @@ -169,13 +188,13 @@ public class EventHandlerImplCommon { public static void event(WorldEvent.Save event) { if (event.getWorld() instanceof ServerLevel) { ServerLevel world = (ServerLevel) event.getWorld(); - LifecycleEvent.SERVER_WORLD_SAVE.invoker().act(world); + LifecycleEvent.SERVER_LEVEL_SAVE.invoker().act(world); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(LivingDeathEvent event) { - if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntityLiving(), event.getSource()) == InteractionResult.FAIL) { + if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntityLiving(), event.getSource()).isFalse()) { event.setCanceled(true); } } @@ -196,7 +215,7 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(Start event) { - if (ExplosionEvent.PRE.invoker().explode(event.getWorld(), event.getExplosion()) == InteractionResult.FAIL) { + if (ExplosionEvent.PRE.invoker().explode(event.getWorld(), event.getExplosion()).isFalse()) { event.setCanceled(true); } } @@ -208,14 +227,14 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(LivingAttackEvent event) { - if (EntityEvent.LIVING_ATTACK.invoker().attack(event.getEntityLiving(), event.getSource(), event.getAmount()) == InteractionResult.FAIL) { + if (EntityEvent.LIVING_HURT.invoker().hurt(event.getEntityLiving(), event.getSource(), event.getAmount()).isFalse()) { event.setCanceled(true); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(EntityJoinWorldEvent event) { - if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getWorld()) == InteractionResult.FAIL) { + if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getWorld()).isFalse()) { event.setCanceled(true); } } @@ -241,10 +260,11 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent(priority = EventPriority.HIGH) - public static void event(EnteringChunk event) { - EntityEvent.ENTER_CHUNK.invoker().enterChunk(event.getEntity(), event.getNewChunkX(), event.getNewChunkZ(), event.getOldChunkX(), event.getOldChunkZ()); - } + // TODO: Hook ourselves when mixin is available + // @SubscribeEvent(priority = EventPriority.HIGH) + // public static void event(EnteringChunk event) { + // EntityEvent.ENTER_SECTION.invoker().enterChunk(event.getEntity(), event.getNewChunkX(), event.getNewChunkZ(), event.getOldChunkX(), event.getOldChunkZ()); + // } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(LivingSpawnEvent.CheckSpawn event) { @@ -259,8 +279,8 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(AnimalTameEvent event) { - InteractionResult result = EntityEvent.ANIMAL_TAMED.invoker().onTame(event.getAnimal(), event.getTamer()); - event.setCanceled(result == InteractionResult.FAIL); + EventResult result = EntityEvent.ANIMAL_TAME.invoker().tame(event.getAnimal(), event.getTamer()); + event.setCanceled(result.isFalse()); } @SubscribeEvent(priority = EventPriority.HIGH) @@ -300,19 +320,19 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.RightClickItem event) { - InteractionResultHolder result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getPlayer(), event.getHand()); - if (result.getResult() != InteractionResult.PASS) { + CompoundEventResult result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getPlayer(), event.getHand()); + if (result.isPresent()) { event.setCanceled(true); - event.setCancellationResult(result.getResult()); + event.setCancellationResult(result.result().asMinecraft()); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.RightClickBlock event) { - InteractionResult result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace()); - if (result != InteractionResult.PASS) { + EventResult result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace()); + if (result.isPresent()) { event.setCanceled(true); - event.setCancellationResult(result); + event.setCancellationResult(result.asMinecraft()); event.setUseBlock(Event.Result.DENY); event.setUseItem(Event.Result.DENY); } @@ -320,19 +340,19 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.EntityInteract event) { - InteractionResult result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getPlayer(), event.getTarget(), event.getHand()); - if (result != InteractionResult.PASS) { + EventResult result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getPlayer(), event.getTarget(), event.getHand()); + if (result.isPresent()) { event.setCanceled(true); - event.setCancellationResult(result); + event.setCancellationResult(result.asMinecraft()); } } @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.LeftClickBlock event) { - InteractionResult result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace()); - if (result != InteractionResult.PASS) { + EventResult result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace()); + if (result.isPresent()) { event.setCanceled(true); - event.setCancellationResult(result); + event.setCancellationResult(result.asMinecraft()); event.setUseBlock(Event.Result.DENY); event.setUseItem(Event.Result.DENY); } @@ -341,7 +361,7 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(BreakEvent event) { if (event.getPlayer() instanceof ServerPlayer && event.getWorld() instanceof Level) { - InteractionResult result = BlockEvent.BREAK.invoker().breakBlock((Level) event.getWorld(), event.getPos(), event.getState(), (ServerPlayer) event.getPlayer(), new IntValue() { + EventResult result = BlockEvent.BREAK.invoker().breakBlock((Level) event.getWorld(), event.getPos(), event.getState(), (ServerPlayer) event.getPlayer(), new IntValue() { @Override public int getAsInt() { return event.getExpToDrop(); @@ -352,7 +372,7 @@ public class EventHandlerImplCommon { event.setExpToDrop(value); } }); - if (result != InteractionResult.PASS) { + if (result.isFalse()) { event.setCanceled(true); } } @@ -361,8 +381,8 @@ public class EventHandlerImplCommon { @SubscribeEvent(priority = EventPriority.HIGH) public static void event(EntityPlaceEvent event) { if (event.getWorld() instanceof Level) { - InteractionResult result = BlockEvent.PLACE.invoker().placeBlock((Level) event.getWorld(), event.getPos(), event.getState(), event.getEntity()); - if (result != InteractionResult.PASS) { + EventResult result = BlockEvent.PLACE.invoker().placeBlock((Level) event.getWorld(), event.getPos(), event.getState(), event.getEntity()); + if (result.isFalse()) { event.setCanceled(true); } } diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplServer.java b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplServer.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplServer.java rename to forge/src/main/java/dev/architectury/event/forge/EventHandlerImplServer.java index 7d7dc2ac..9092138b 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplServer.java +++ b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplServer.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.event.forge; +package dev.architectury.event.forge; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/forge/src/main/java/me/shedaniel/architectury/forge/ArchitecturyForge.java b/forge/src/main/java/dev/architectury/forge/ArchitecturyForge.java similarity index 89% rename from forge/src/main/java/me/shedaniel/architectury/forge/ArchitecturyForge.java rename to forge/src/main/java/dev/architectury/forge/ArchitecturyForge.java index 6465435b..984e1039 100644 --- a/forge/src/main/java/me/shedaniel/architectury/forge/ArchitecturyForge.java +++ b/forge/src/main/java/dev/architectury/forge/ArchitecturyForge.java @@ -17,10 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.forge; +package dev.architectury.forge; -import me.shedaniel.architectury.event.EventHandler; -import me.shedaniel.architectury.platform.forge.EventBuses; +import dev.architectury.platform.forge.EventBuses; +import dev.architectury.event.EventHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/BlockEntityHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/block/forge/BlockEntityHooksImpl.java similarity index 97% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/BlockEntityHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/block/forge/BlockEntityHooksImpl.java index e664f099..eb15a3db 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/BlockEntityHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/block/forge/BlockEntityHooksImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.block.forge; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/ScreenHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java similarity index 56% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/ScreenHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java index 4cd6a999..a8876d90 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/ScreenHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/client/screen/forge/ScreenHooksImpl.java @@ -17,32 +17,46 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.client.screen.forge; import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Widget; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.screens.Screen; -import net.minecraftforge.fml.common.ObfuscationReflectionHelper; +import net.minecraftforge.fml.util.ObfuscationReflectionHelper; import java.lang.reflect.InvocationTargetException; import java.util.List; public class ScreenHooksImpl { - public static List getButtons(Screen screen) { - return screen.buttons; + public static List getNarratables(Screen screen) { + return screen.narratables; } - public static T addButton(Screen screen, T t) { + public static List getRenderables(Screen screen) { + return screen.renderables; + } + + public static T addRenderableWidget(Screen screen, T widget) { try { - return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "func_230480_a_", AbstractWidget.class).invoke(screen, t); + return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "m_142416_", GuiEventListener.class).invoke(screen, widget); } catch (IllegalAccessException | InvocationTargetException e) { throw new RuntimeException(e); } } - public static T addChild(Screen screen, T t) { + public static T addRenderableOnly(Screen screen, T listener) { try { - return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "func_230481_d_", GuiEventListener.class).invoke(screen, t); + return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "m_169394_", Widget.class).invoke(screen, listener); + } catch (IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + public static T addWidget(Screen screen, T listener) { + try { + return (T) ObfuscationReflectionHelper.findMethod(Screen.class, "m_7787_", GuiEventListener.class).invoke(screen, listener); } catch (IllegalAccessException | InvocationTargetException e) { throw new RuntimeException(e); } diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksForge.java b/forge/src/main/java/dev/architectury/hooks/fluid/forge/FluidStackHooksForge.java similarity index 78% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksForge.java rename to forge/src/main/java/dev/architectury/hooks/fluid/forge/FluidStackHooksForge.java index 808cf3f9..814f1e47 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksForge.java +++ b/forge/src/main/java/dev/architectury/hooks/fluid/forge/FluidStackHooksForge.java @@ -17,20 +17,19 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.fluid.forge; -import me.shedaniel.architectury.fluid.FluidStack; -import me.shedaniel.architectury.utils.Fraction; +import dev.architectury.fluid.FluidStack; public final class FluidStackHooksForge { private FluidStackHooksForge() { } public static FluidStack fromForge(net.minecraftforge.fluids.FluidStack stack) { - return FluidStack.create(stack.getFluid().delegate, Fraction.ofWhole(stack.getAmount()), stack.getTag()); + return FluidStack.create(stack.getFluid().delegate, stack.getAmount(), stack.getTag()); } public static net.minecraftforge.fluids.FluidStack toForge(FluidStack stack) { - return new net.minecraftforge.fluids.FluidStack(stack.getRawFluid(), stack.getAmount().intValue(), stack.getTag()); + return new net.minecraftforge.fluids.FluidStack(stack.getRawFluid(), (int) stack.getAmount(), stack.getTag()); } } diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/fluid/forge/FluidStackHooksImpl.java similarity index 97% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/fluid/forge/FluidStackHooksImpl.java index aa13d374..bb37522a 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/fluid/forge/FluidStackHooksImpl.java @@ -17,10 +17,9 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.fluid.forge; -import me.shedaniel.architectury.fluid.FluidStack; -import me.shedaniel.architectury.utils.Fraction; +import dev.architectury.fluid.FluidStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/DyeColorHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/forge/DyeColorHooksImpl.java similarity index 79% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/DyeColorHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/forge/DyeColorHooksImpl.java index 73034a52..25fad628 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/DyeColorHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/forge/DyeColorHooksImpl.java @@ -17,12 +17,13 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.forge; import net.minecraft.world.item.DyeColor; public class DyeColorHooksImpl { public static int getColorValue(DyeColor dyeColor) { - return dyeColor.getColorValue(); + var colors = dyeColor.getTextureDiffuseColors(); + return ((int) (colors[0] * 255.0F + 0.5D) & 255) << 16 | ((int) (colors[1] * 255.0F + 0.5D) & 255) << 8 | (int) (colors[2] * 255.0F + 0.5D); } } diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/PackRepositoryHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/forge/PackRepositoryHooksImpl.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/PackRepositoryHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/forge/PackRepositoryHooksImpl.java index 84db4f78..7dc6c14e 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/PackRepositoryHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/forge/PackRepositoryHooksImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.forge; import net.minecraft.server.packs.repository.PackRepository; import net.minecraft.server.packs.repository.RepositorySource; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/FoodPropertiesHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/item/food/forge/FoodPropertiesHooksImpl.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/FoodPropertiesHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/item/food/forge/FoodPropertiesHooksImpl.java index 665e85e7..441eabb6 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/FoodPropertiesHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/item/food/forge/FoodPropertiesHooksImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.item.food.forge; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.food.FoodProperties; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/EntityHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/level/entity/forge/EntityHooksImpl.java similarity index 83% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/EntityHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/level/entity/forge/EntityHooksImpl.java index 68e1a21c..46646169 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/EntityHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/level/entity/forge/EntityHooksImpl.java @@ -17,10 +17,11 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.level.entity.forge; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.EntityCollisionContext; import org.jetbrains.annotations.Nullable; public class EntityHooksImpl { @@ -30,6 +31,6 @@ public class EntityHooksImpl { @Nullable public static Entity fromCollision(CollisionContext ctx) { - return ctx.getEntity(); + return ctx instanceof EntityCollisionContext ? ((EntityCollisionContext) ctx).getEntity().orElse(null) : null; } } diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/ItemEntityHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/level/entity/forge/ItemEntityHooksImpl.java similarity index 92% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/ItemEntityHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/level/entity/forge/ItemEntityHooksImpl.java index f5582fd5..15454e4f 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/ItemEntityHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/level/entity/forge/ItemEntityHooksImpl.java @@ -17,9 +17,9 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.level.entity.forge; -import me.shedaniel.architectury.utils.IntValue; +import dev.architectury.utils.value.IntValue; import net.minecraft.world.entity.item.ItemEntity; public class ItemEntityHooksImpl { diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/PlayerHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/level/entity/forge/PlayerHooksImpl.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/PlayerHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/level/entity/forge/PlayerHooksImpl.java index 915b0b7e..637ed954 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/PlayerHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/level/entity/forge/PlayerHooksImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.level.entity.forge; import net.minecraft.world.entity.player.Player; import net.minecraftforge.common.util.FakePlayer; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/ExplosionHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/level/forge/ExplosionHooksImpl.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/ExplosionHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/level/forge/ExplosionHooksImpl.java index c21e947a..723091a3 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/ExplosionHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/level/forge/ExplosionHooksImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.level.forge; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Explosion; diff --git a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/TagHooksImpl.java b/forge/src/main/java/dev/architectury/hooks/tags/forge/TagHooksImpl.java similarity index 94% rename from forge/src/main/java/me/shedaniel/architectury/hooks/forge/TagHooksImpl.java rename to forge/src/main/java/dev/architectury/hooks/tags/forge/TagHooksImpl.java index b699fe03..33acd0f0 100644 --- a/forge/src/main/java/me/shedaniel/architectury/hooks/forge/TagHooksImpl.java +++ b/forge/src/main/java/dev/architectury/hooks/tags/forge/TagHooksImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.hooks.forge; +package dev.architectury.hooks.tags.forge; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.Tag; @@ -29,7 +29,7 @@ import java.util.Objects; import java.util.function.Supplier; public class TagHooksImpl { - public static Tag.Named getOptional(ResourceLocation id, Supplier> collection) { + public static Tag.Named optional(ResourceLocation id, Supplier> collection) { return new Tag.Named() { private volatile Tag backend; private volatile WeakReference> backendCollection; diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinBlockEntity.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinBlockEntity.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinBlockEntity.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinBlockEntity.java index d02d050a..2d935cee 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinBlockEntity.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinBlockEntity.java @@ -17,9 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.extensions.BlockEntityExtension; +/* +import dev.architectury.extensions.BlockEntityExtension; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.world.level.block.entity.BlockEntity; @@ -50,3 +51,4 @@ public abstract class MixinBlockEntity { } } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinBlockEntityExtension.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinBlockEntityExtension.java similarity index 93% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinBlockEntityExtension.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinBlockEntityExtension.java index a850d7e4..fd540ac1 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinBlockEntityExtension.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinBlockEntityExtension.java @@ -17,9 +17,9 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.extensions.BlockEntityExtension; +/*import dev.architectury.extensions.BlockEntityExtension; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.Connection; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; @@ -39,4 +39,4 @@ public interface MixinBlockEntityExtension extends IForgeTileEntity { default void onDataPacket(Connection connection, ClientboundBlockEntityDataPacket packet) { ((BlockEntityExtension) this).loadClientData(((BlockEntity) this).getBlockState(), packet.getTag()); } -} +}*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinChunkSerializer.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinChunkSerializer.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinChunkSerializer.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinChunkSerializer.java index 48799adb..0c09676b 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinChunkSerializer.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinChunkSerializer.java @@ -17,9 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.event.forge.EventHandlerImplCommon; +/* +import dev.architectury.event.forge.EventHandlerImplCommon; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.ai.village.poi.PoiManager; @@ -63,3 +64,4 @@ public class MixinChunkSerializer { return event; } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinClientLevel.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinClientLevel.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinClientLevel.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinClientLevel.java index 84ed32ea..f7996dca 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinClientLevel.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinClientLevel.java @@ -17,9 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.event.events.client.ClientTickEvent; +/* +import dev.architectury.event.events.client.ClientTickEvent; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.resources.ResourceKey; import net.minecraft.util.profiling.ProfilerFiller; @@ -55,3 +56,4 @@ public abstract class MixinClientLevel extends Level { profiler.pop(); } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinItemExtension.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinItemExtension.java similarity index 93% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinItemExtension.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinItemExtension.java index 04562c51..ea38c59c 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinItemExtension.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinItemExtension.java @@ -17,9 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.extensions.ItemExtension; +/* +import dev.architectury.extensions.ItemExtension; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -41,3 +42,4 @@ public interface MixinItemExtension extends IForgeItem { return ((ItemExtension) this).getCustomEquipmentSlot(stack); } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinRegistryEntry.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinRegistryEntry.java similarity index 90% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinRegistryEntry.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinRegistryEntry.java index 7ba71dea..3d8e85b8 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinRegistryEntry.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinRegistryEntry.java @@ -17,11 +17,13 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.core.RegistryEntry; +/* +import dev.architectury.core.RegistryEntry; import org.spongepowered.asm.mixin.Mixin; @Mixin(RegistryEntry.class) public class MixinRegistryEntry { } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinWorldEvent.java b/forge/src/main/java/dev/architectury/mixin/forge/MixinWorldEvent.java similarity index 92% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinWorldEvent.java rename to forge/src/main/java/dev/architectury/mixin/forge/MixinWorldEvent.java index d6cddfcf..7d0698c9 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MixinWorldEvent.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/MixinWorldEvent.java @@ -17,9 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; -import me.shedaniel.architectury.event.forge.EventHandlerImplCommon; +/* +import dev.architectury.event.forge.EventHandlerImplCommon; import net.minecraft.world.level.LevelAccessor; import net.minecraftforge.event.world.WorldEvent; import org.spongepowered.asm.mixin.Mixin; @@ -42,3 +43,4 @@ public class MixinWorldEvent implements EventHandlerImplCommon.WorldEventAttachm this.level = new WeakReference<>(level); } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/ParticleEngineAccessor.java b/forge/src/main/java/dev/architectury/mixin/forge/ParticleEngineAccessor.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/mixin/forge/ParticleEngineAccessor.java rename to forge/src/main/java/dev/architectury/mixin/forge/ParticleEngineAccessor.java index ebee0c3e..15df1b1b 100644 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/ParticleEngineAccessor.java +++ b/forge/src/main/java/dev/architectury/mixin/forge/ParticleEngineAccessor.java @@ -17,8 +17,9 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.mixin.forge; +package dev.architectury.mixin.forge; +/* import net.minecraft.client.particle.ParticleEngine; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @@ -38,3 +39,4 @@ public interface ParticleEngineAccessor { List getSprites(); } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java b/forge/src/main/java/dev/architectury/networking/forge/ClientNetworkingManager.java similarity index 81% rename from forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java rename to forge/src/main/java/dev/architectury/networking/forge/ClientNetworkingManager.java index e946eb8f..59f3f661 100644 --- a/forge/src/main/java/me/shedaniel/architectury/networking/forge/ClientNetworkingManager.java +++ b/forge/src/main/java/dev/architectury/networking/forge/ClientNetworkingManager.java @@ -17,9 +17,9 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.networking.forge; +package dev.architectury.networking.forge; -import me.shedaniel.architectury.networking.NetworkManager; +import dev.architectury.networking.NetworkManager; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; @@ -28,27 +28,24 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.ClientPlayerNetworkEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.network.NetworkEvent; +import net.minecraftforge.fmllegacy.network.NetworkEvent; import java.util.Set; -import static me.shedaniel.architectury.networking.forge.NetworkManagerImpl.C2S; -import static me.shedaniel.architectury.networking.forge.NetworkManagerImpl.SYNC_IDS; - @OnlyIn(Dist.CLIENT) public class ClientNetworkingManager { public static void initClient() { NetworkManagerImpl.CHANNEL.addListener(NetworkManagerImpl.createPacketHandler(NetworkEvent.ServerCustomPayloadEvent.class, NetworkManagerImpl.S2C)); MinecraftForge.EVENT_BUS.register(ClientNetworkingManager.class); - NetworkManagerImpl.registerS2CReceiver(SYNC_IDS, (buffer, context) -> { + NetworkManagerImpl.registerS2CReceiver(NetworkManagerImpl.SYNC_IDS, (buffer, context) -> { Set receivables = NetworkManagerImpl.serverReceivables; int size = buffer.readInt(); receivables.clear(); for (int i = 0; i < size; i++) { receivables.add(buffer.readResourceLocation()); } - NetworkManager.sendToServer(SYNC_IDS, NetworkManagerImpl.sendSyncPacket(C2S)); + NetworkManager.sendToServer(NetworkManagerImpl.SYNC_IDS, NetworkManagerImpl.sendSyncPacket(NetworkManagerImpl.C2S)); }); } diff --git a/forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java b/forge/src/main/java/dev/architectury/networking/forge/NetworkManagerImpl.java similarity index 92% rename from forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java rename to forge/src/main/java/dev/architectury/networking/forge/NetworkManagerImpl.java index ef6ab95e..6198942d 100644 --- a/forge/src/main/java/me/shedaniel/architectury/networking/forge/NetworkManagerImpl.java +++ b/forge/src/main/java/dev/architectury/networking/forge/NetworkManagerImpl.java @@ -17,15 +17,15 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.networking.forge; +package dev.architectury.networking.forge; import com.google.common.collect.*; +import dev.architectury.forge.ArchitecturyForge; +import dev.architectury.networking.NetworkManager; +import dev.architectury.networking.NetworkManager.NetworkReceiver; +import dev.architectury.utils.Env; import io.netty.buffer.Unpooled; -import me.shedaniel.architectury.forge.ArchitecturyForge; -import me.shedaniel.architectury.networking.NetworkManager; -import me.shedaniel.architectury.networking.NetworkManager.NetworkReceiver; -import me.shedaniel.architectury.utils.Env; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.Packet; import net.minecraft.resources.ResourceLocation; @@ -39,11 +39,11 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.network.NetworkDirection; -import net.minecraftforge.fml.network.NetworkEvent; -import net.minecraftforge.fml.network.NetworkHooks; -import net.minecraftforge.fml.network.NetworkRegistry; -import net.minecraftforge.fml.network.event.EventNetworkChannel; +import net.minecraftforge.fmllegacy.network.NetworkDirection; +import net.minecraftforge.fmllegacy.network.NetworkEvent; +import net.minecraftforge.fmllegacy.network.NetworkHooks; +import net.minecraftforge.fmllegacy.network.NetworkRegistry; +import net.minecraftforge.fmllegacy.network.event.EventNetworkChannel; import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -150,7 +150,7 @@ public class NetworkManagerImpl { return clientReceivables.get(player).contains(id); } - public static Packet createAddEntityPacket(Entity entity){ + public static Packet createAddEntityPacket(Entity entity) { return NetworkHooks.getEntitySpawningPacket(entity); } diff --git a/forge/src/main/java/me/shedaniel/architectury/platform/forge/EventBuses.java b/forge/src/main/java/dev/architectury/platform/forge/EventBuses.java similarity index 97% rename from forge/src/main/java/me/shedaniel/architectury/platform/forge/EventBuses.java rename to forge/src/main/java/dev/architectury/platform/forge/EventBuses.java index 2709ad85..7f63501d 100644 --- a/forge/src/main/java/me/shedaniel/architectury/platform/forge/EventBuses.java +++ b/forge/src/main/java/dev/architectury/platform/forge/EventBuses.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.platform.forge; +package dev.architectury.platform.forge; import net.minecraftforge.eventbus.api.IEventBus; diff --git a/forge/src/main/java/me/shedaniel/architectury/platform/forge/PlatformImpl.java b/forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java similarity index 81% rename from forge/src/main/java/me/shedaniel/architectury/platform/forge/PlatformImpl.java rename to forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java index 29c8fb66..73310af3 100644 --- a/forge/src/main/java/me/shedaniel/architectury/platform/forge/PlatformImpl.java +++ b/forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java @@ -17,18 +17,19 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.platform.forge; +package dev.architectury.platform.forge; -import me.shedaniel.architectury.platform.Mod; -import me.shedaniel.architectury.utils.Env; +import dev.architectury.platform.Mod; +import dev.architectury.utils.Env; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.fml.ExtensionPoint; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.fml.loading.FMLPaths; -import net.minecraftforge.fml.loading.moddiscovery.ModInfo; +import net.minecraftforge.fml.loading.moddiscovery.ModFileInfo; +import net.minecraftforge.fmlclient.ConfigGuiHandler; +import net.minecraftforge.forgespi.language.IModFileInfo; import net.minecraftforge.forgespi.language.IModInfo; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -79,7 +80,7 @@ public class PlatformImpl { } public static Collection getModIds() { - return ModList.get().getMods().stream().map(ModInfo::getModId).collect(Collectors.toList()); + return ModList.get().getMods().stream().map(IModInfo::getModId).collect(Collectors.toList()); } public static boolean isDevelopmentEnvironment() { @@ -88,7 +89,7 @@ public class PlatformImpl { private static class ModImpl implements Mod { private final ModContainer container; - private final ModInfo info; + private final IModInfo info; public ModImpl(String id) { this.container = ModList.get().getModContainerById(id).get(); @@ -134,7 +135,7 @@ public class PlatformImpl { @Override public @NotNull Collection getAuthors() { - Optional optional = this.info.getConfigElement("authors") + Optional optional = this.info.getConfig().getConfigElement("authors") .map(String::valueOf); return optional.isPresent() ? Collections.singleton(optional.get()) : Collections.emptyList(); } @@ -146,7 +147,7 @@ public class PlatformImpl { @Override public @NotNull Optional getHomepage() { - return this.info.getConfigElement("displayURL") + return this.info.getConfig().getConfigElement("displayURL") .map(String::valueOf); } @@ -157,13 +158,18 @@ public class PlatformImpl { @Override public @NotNull Optional getIssueTracker() { - return Optional.ofNullable(this.info.getOwningFile().getIssueURL()) - .map(URL::toString); + IModFileInfo owningFile = this.info.getOwningFile(); + if (owningFile instanceof ModFileInfo info) { + return Optional.ofNullable(info.getIssueURL()) + .map(URL::toString); + } + return Optional.empty(); } @Override public void registerConfigurationScreen(ConfigurationScreenProvider configurationScreenProvider) { - container.registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY, () -> (minecraft, screen) -> configurationScreenProvider.provide(screen)); + container.registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, () -> + new ConfigGuiHandler.ConfigGuiFactory((minecraft, screen) -> configurationScreenProvider.provide(screen))); } } } diff --git a/forge/src/main/java/me/shedaniel/architectury/plugin/forge/ArchitecturyMixinPlugin.java b/forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java similarity index 98% rename from forge/src/main/java/me/shedaniel/architectury/plugin/forge/ArchitecturyMixinPlugin.java rename to forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java index 348889b5..c34051ff 100644 --- a/forge/src/main/java/me/shedaniel/architectury/plugin/forge/ArchitecturyMixinPlugin.java +++ b/forge/src/main/java/dev/architectury/plugin/forge/ArchitecturyMixinPlugin.java @@ -17,8 +17,9 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.plugin.forge; +package dev.architectury.plugin.forge; +/* import org.objectweb.asm.Opcodes; import org.objectweb.asm.tree.AbstractInsnNode; import org.objectweb.asm.tree.ClassNode; @@ -86,3 +87,4 @@ public class ArchitecturyMixinPlugin implements IMixinConfigPlugin { } } +*/ diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BlockPropertiesImpl.java b/forge/src/main/java/dev/architectury/registry/block/forge/BlockPropertiesImpl.java similarity index 94% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/BlockPropertiesImpl.java rename to forge/src/main/java/dev/architectury/registry/block/forge/BlockPropertiesImpl.java index 44d50dd4..13844813 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BlockPropertiesImpl.java +++ b/forge/src/main/java/dev/architectury/registry/block/forge/BlockPropertiesImpl.java @@ -17,10 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.block.forge; -import me.shedaniel.architectury.registry.BlockProperties; -import me.shedaniel.architectury.registry.ToolType; +import dev.architectury.registry.block.BlockProperties; +import dev.architectury.registry.block.ToolType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ToolTypeImpl.java b/forge/src/main/java/dev/architectury/registry/block/forge/ToolTypeImpl.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/ToolTypeImpl.java rename to forge/src/main/java/dev/architectury/registry/block/forge/ToolTypeImpl.java index bc6ec489..7b87dbaa 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ToolTypeImpl.java +++ b/forge/src/main/java/dev/architectury/registry/block/forge/ToolTypeImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.block.forge; import net.minecraft.tags.Tag; diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/KeyBindingsImpl.java b/forge/src/main/java/dev/architectury/registry/client/keymappings/forge/KeyMappingRegistryImpl.java similarity index 81% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/KeyBindingsImpl.java rename to forge/src/main/java/dev/architectury/registry/client/keymappings/forge/KeyMappingRegistryImpl.java index 9b4a3d48..7c6307c4 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/KeyBindingsImpl.java +++ b/forge/src/main/java/dev/architectury/registry/client/keymappings/forge/KeyMappingRegistryImpl.java @@ -17,13 +17,13 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.client.keymappings.forge; import net.minecraft.client.KeyMapping; -import net.minecraftforge.fml.client.registry.ClientRegistry; +import net.minecraftforge.fmlclient.registry.ClientRegistry; -public class KeyBindingsImpl { - public static void registerKeyBinding(KeyMapping keyBinding) { +public class KeyMappingRegistryImpl { + public static void register(KeyMapping keyBinding) { ClientRegistry.registerKeyBinding(keyBinding); } } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ParticleProviderRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/client/particle/forge/ParticleProviderRegistryImpl.java similarity index 90% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/ParticleProviderRegistryImpl.java rename to forge/src/main/java/dev/architectury/registry/client/particle/forge/ParticleProviderRegistryImpl.java index a520e199..d6b15e6b 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ParticleProviderRegistryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/client/particle/forge/ParticleProviderRegistryImpl.java @@ -17,11 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.client.particle.forge; -import me.shedaniel.architectury.forge.ArchitecturyForge; -import me.shedaniel.architectury.mixin.forge.ParticleEngineAccessor; -import me.shedaniel.architectury.registry.ParticleProviderRegistry; +import dev.architectury.forge.ArchitecturyForge; +import dev.architectury.registry.client.particle.ParticleProviderRegistry; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.ParticleEngine; import net.minecraft.client.particle.ParticleProvider; @@ -52,12 +51,12 @@ public class ParticleProviderRegistryImpl { @Override public TextureAtlas getAtlas() { - return ((ParticleEngineAccessor) engine).getTextureAtlas(); + return engine.textureAtlas; } @Override public List getSprites() { - return ((ParticleEngineAccessor.MutableSpriteSetAccessor) delegate).getSprites(); + return ((ParticleEngine.MutableSpriteSet) delegate).sprites; } @Override diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BlockEntityRenderersImpl.java b/forge/src/main/java/dev/architectury/registry/client/rendering/forge/BlockEntityRendererRegistryImpl.java similarity index 71% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/BlockEntityRenderersImpl.java rename to forge/src/main/java/dev/architectury/registry/client/rendering/forge/BlockEntityRendererRegistryImpl.java index 3bdd56b0..d89eadfa 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BlockEntityRenderersImpl.java +++ b/forge/src/main/java/dev/architectury/registry/client/rendering/forge/BlockEntityRendererRegistryImpl.java @@ -17,18 +17,15 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.client.rendering.forge; -import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher; -import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraftforge.fml.client.registry.ClientRegistry; -import java.util.function.Function; - -public class BlockEntityRenderersImpl { - public static void registerRenderer(BlockEntityType type, Function> provider) { - ClientRegistry.bindTileEntityRenderer(type, provider); +public class BlockEntityRendererRegistryImpl { + public static void register(BlockEntityType type, BlockEntityRendererProvider provider) { + BlockEntityRenderers.register(type, provider); } } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ColorHandlersImpl.java b/forge/src/main/java/dev/architectury/registry/client/rendering/forge/ColorHandlerRegistryImpl.java similarity index 93% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/ColorHandlersImpl.java rename to forge/src/main/java/dev/architectury/registry/client/rendering/forge/ColorHandlerRegistryImpl.java index d6520b1f..a7656d5f 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ColorHandlersImpl.java +++ b/forge/src/main/java/dev/architectury/registry/client/rendering/forge/ColorHandlerRegistryImpl.java @@ -17,11 +17,11 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.client.rendering.forge; import com.google.common.collect.Lists; -import me.shedaniel.architectury.forge.ArchitecturyForge; -import me.shedaniel.architectury.platform.forge.EventBuses; +import dev.architectury.platform.forge.EventBuses; +import dev.architectury.forge.ArchitecturyForge; import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.item.ItemColor; @@ -35,13 +35,13 @@ import java.util.List; import java.util.Objects; import java.util.function.Supplier; -public class ColorHandlersImpl { +public class ColorHandlerRegistryImpl { private static final List[]>> ITEM_COLORS = Lists.newArrayList(); private static final List[]>> BLOCK_COLORS = Lists.newArrayList(); static { EventBuses.onRegistered(ArchitecturyForge.MOD_ID, bus -> { - bus.register(ColorHandlersImpl.class); + bus.register(ColorHandlerRegistryImpl.class); }); } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/RenderTypesImpl.java b/forge/src/main/java/dev/architectury/registry/client/rendering/forge/RenderTypeRegistryImpl.java similarity index 93% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/RenderTypesImpl.java rename to forge/src/main/java/dev/architectury/registry/client/rendering/forge/RenderTypeRegistryImpl.java index 7cb799a4..f5ae17c5 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/RenderTypesImpl.java +++ b/forge/src/main/java/dev/architectury/registry/client/rendering/forge/RenderTypeRegistryImpl.java @@ -17,14 +17,14 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.client.rendering.forge; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.Fluid; -public class RenderTypesImpl { +public class RenderTypeRegistryImpl { public static void register(RenderType type, Block... blocks) { for (Block block : blocks) { ItemBlockRenderTypes.setRenderLayer(block, type); diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/CreativeTabsImpl.java b/forge/src/main/java/dev/architectury/registry/forge/CreativeTabRegistryImpl.java similarity index 94% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/CreativeTabsImpl.java rename to forge/src/main/java/dev/architectury/registry/forge/CreativeTabRegistryImpl.java index 344d4242..8e9e7b20 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/CreativeTabsImpl.java +++ b/forge/src/main/java/dev/architectury/registry/forge/CreativeTabRegistryImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.forge; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.CreativeModeTab; @@ -26,7 +26,7 @@ import net.minecraft.world.item.ItemStack; import javax.annotation.Nonnull; import java.util.function.Supplier; -public class CreativeTabsImpl { +public class CreativeTabRegistryImpl { public static CreativeModeTab create(ResourceLocation resourceLocation, Supplier supplier) { return new CreativeModeTab(String.format("%s.%s", resourceLocation.getNamespace(), resourceLocation.getPath())) { @Override diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ReloadListenersImpl.java b/forge/src/main/java/dev/architectury/registry/forge/ReloadListenerRegistryImpl.java similarity index 84% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/ReloadListenersImpl.java rename to forge/src/main/java/dev/architectury/registry/forge/ReloadListenerRegistryImpl.java index 63a4f1b7..b0517b7d 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/ReloadListenersImpl.java +++ b/forge/src/main/java/dev/architectury/registry/forge/ReloadListenerRegistryImpl.java @@ -17,10 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.forge; import com.google.common.collect.Lists; -import me.shedaniel.architectury.forge.ArchitecturyForge; +import dev.architectury.forge.ArchitecturyForge; import net.minecraft.client.Minecraft; import net.minecraft.server.packs.PackType; import net.minecraft.server.packs.resources.PreparableReloadListener; @@ -34,19 +34,19 @@ import net.minecraftforge.fml.common.Mod; import java.util.List; @Mod.EventBusSubscriber(modid = ArchitecturyForge.MOD_ID) -public class ReloadListenersImpl { +public class ReloadListenerRegistryImpl { private static List serverDataReloadListeners = Lists.newArrayList(); - public static void registerReloadListener(PackType type, PreparableReloadListener listener) { + public static void register(PackType type, PreparableReloadListener listener) { if (type == PackType.SERVER_DATA) { serverDataReloadListeners.add(listener); } else if (type == PackType.CLIENT_RESOURCES) { - registerClientReloadListener(listener); + registerClient(listener); } } @OnlyIn(Dist.CLIENT) - private static void registerClientReloadListener(PreparableReloadListener listener) { + private static void registerClient(PreparableReloadListener listener) { ((ReloadableResourceManager) Minecraft.getInstance().getResourceManager()).registerReloadListener(listener); } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/fuel/forge/FuelRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/fuel/forge/FuelRegistryImpl.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/registry/fuel/forge/FuelRegistryImpl.java rename to forge/src/main/java/dev/architectury/registry/fuel/forge/FuelRegistryImpl.java index aae8ee5b..ac6848d9 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/fuel/forge/FuelRegistryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/fuel/forge/FuelRegistryImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.fuel.forge; +package dev.architectury.registry.fuel.forge; import it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; @@ -42,7 +42,7 @@ public class FuelRegistryImpl { } public static int get(ItemStack stack) { - return ForgeHooks.getBurnTime(stack); + return ForgeHooks.getBurnTime(stack, null); } @SubscribeEvent diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/CriteriaTriggersRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/level/advancement/forge/CriteriaTriggersRegistryImpl.java similarity index 94% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/CriteriaTriggersRegistryImpl.java rename to forge/src/main/java/dev/architectury/registry/level/advancement/forge/CriteriaTriggersRegistryImpl.java index 29f58fce..f12c6096 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/CriteriaTriggersRegistryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/advancement/forge/CriteriaTriggersRegistryImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.level.advancement.forge; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.advancements.CriterionTrigger; diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java b/forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java rename to forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java index 9a6b501f..4df4fd5e 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/biome/forge/BiomeModificationsImpl.java @@ -17,13 +17,12 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.level.biome.forge; import com.google.common.collect.Lists; -import me.shedaniel.architectury.forge.ArchitecturyForge; -import me.shedaniel.architectury.mixin.forge.BiomeGenerationSettingsBuilderAccessor; -import me.shedaniel.architectury.mixin.forge.MobSpawnSettingsBuilderAccessor; -import me.shedaniel.architectury.registry.BiomeModifications.BiomeContext; +import dev.architectury.forge.ArchitecturyForge; +import dev.architectury.hooks.level.biome.*; +import dev.architectury.registry.level.biome.BiomeModifications.BiomeContext; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; @@ -172,7 +171,7 @@ public class BiomeModificationsImpl { @Override public @NotNull List>>> getFeatures() { - return ((BiomeGenerationSettingsBuilderAccessor) generation).getFeatures(); + return generation.features; } @Override @@ -196,17 +195,17 @@ public class BiomeModificationsImpl { @Override public @NotNull Map> getSpawners() { - return ((MobSpawnSettingsBuilderAccessor) builder).getSpawners(); + return builder.spawners; } @Override public @NotNull Map, MobSpawnSettings.MobSpawnCost> getMobSpawnCosts() { - return ((MobSpawnSettingsBuilderAccessor) builder).getMobSpawnCosts(); + return builder.mobSpawnCosts; } @Override public boolean isPlayerSpawnFriendly() { - return ((MobSpawnSettingsBuilderAccessor) builder).isPlayerCanSpawn(); + return builder.playerCanSpawn; } } @@ -429,7 +428,7 @@ public class BiomeModificationsImpl { @Override public @NotNull Mutable setPlayerSpawnFriendly(boolean friendly) { - ((MobSpawnSettingsBuilderAccessor) builder).setPlayerCanSpawn(friendly); + builder.playerCanSpawn = friendly; return this; } } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityAttributesImpl.java b/forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityAttributeRegistryImpl.java similarity index 88% rename from forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityAttributesImpl.java rename to forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityAttributeRegistryImpl.java index 79ff13bf..4d3124e6 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityAttributesImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityAttributeRegistryImpl.java @@ -17,10 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.entity.forge; +package dev.architectury.registry.level.entity.forge; -import me.shedaniel.architectury.forge.ArchitecturyForge; -import me.shedaniel.architectury.platform.forge.EventBuses; +import dev.architectury.forge.ArchitecturyForge; +import dev.architectury.platform.forge.EventBuses; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; @@ -31,7 +31,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Supplier; -public class EntityAttributesImpl { +public class EntityAttributeRegistryImpl { private static final Map>, Supplier> ATTRIBUTES = new ConcurrentHashMap<>(); public static void register(Supplier> type, Supplier attribute) { @@ -40,7 +40,7 @@ public class EntityAttributesImpl { static { EventBuses.onRegistered(ArchitecturyForge.MOD_ID, bus -> { - bus.register(EntityAttributesImpl.class); + bus.register(EntityAttributeRegistryImpl.class); }); } diff --git a/forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityRendererRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityRendererRegistryImpl.java new file mode 100644 index 00000000..8901001b --- /dev/null +++ b/forge/src/main/java/dev/architectury/registry/level/entity/forge/EntityRendererRegistryImpl.java @@ -0,0 +1,53 @@ +/* + * This file is part of architectury. + * Copyright (C) 2020, 2021 architectury + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package dev.architectury.registry.level.entity.forge; + +import dev.architectury.forge.ArchitecturyForge; +import dev.architectury.platform.forge.EventBuses; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraftforge.client.event.EntityRenderersEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Supplier; + +public class EntityRendererRegistryImpl { + private static final Map>, EntityRendererProvider> RENDERERS = new ConcurrentHashMap<>(); + + public static void register(Supplier> type, EntityRendererProvider factory) { + RENDERERS.put((Supplier>) (Supplier>) type, factory); + } + + static { + EventBuses.onRegistered(ArchitecturyForge.MOD_ID, bus -> { + bus.register(EntityRendererRegistryImpl.class); + }); + } + + @SubscribeEvent + public static void event(EntityRenderersEvent.RegisterRenderers event) { + for (Map.Entry>, EntityRendererProvider> entry : RENDERERS.entrySet()) { + event.registerEntityRenderer(entry.getKey().get(), (EntityRendererProvider) entry.getValue()); + } + } +} diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/trade/forge/TradeRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/level/entity/trade/forge/TradeRegistryImpl.java similarity index 96% rename from forge/src/main/java/me/shedaniel/architectury/registry/trade/forge/TradeRegistryImpl.java rename to forge/src/main/java/dev/architectury/registry/level/entity/trade/forge/TradeRegistryImpl.java index 8cc7b2bf..b16808e2 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/trade/forge/TradeRegistryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/entity/trade/forge/TradeRegistryImpl.java @@ -17,11 +17,11 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.trade.forge; +package dev.architectury.registry.level.entity.trade.forge; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import me.shedaniel.architectury.forge.ArchitecturyForge; +import dev.architectury.forge.ArchitecturyForge; import net.minecraft.core.NonNullList; import net.minecraft.world.entity.npc.VillagerProfession; import net.minecraft.world.entity.npc.VillagerTrades; diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/GameRuleFactoryImpl.java b/forge/src/main/java/dev/architectury/registry/level/forge/GameRuleFactoryImpl.java similarity index 76% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/GameRuleFactoryImpl.java rename to forge/src/main/java/dev/architectury/registry/level/forge/GameRuleFactoryImpl.java index 72354bbd..f5850d68 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/GameRuleFactoryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/forge/GameRuleFactoryImpl.java @@ -17,9 +17,8 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.level.forge; -import me.shedaniel.architectury.mixin.forge.GameRulesAccessor; import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.GameRules; @@ -30,18 +29,18 @@ public class GameRuleFactoryImpl { } public static GameRules.Type createBooleanRule(boolean defaultValue) { - return GameRulesAccessor.BooleanValueSimple.invokeCreateArchitectury(defaultValue); + return GameRules.BooleanValue.create(defaultValue); } public static GameRules.Type createBooleanRule(boolean defaultValue, BiConsumer changedCallback) { - return GameRulesAccessor.BooleanValue.invokeCreateArchitectury(defaultValue, changedCallback); + return GameRules.BooleanValue.create(defaultValue, changedCallback); } public static GameRules.Type createIntRule(int defaultValue) { - return GameRulesAccessor.IntegerValueSimple.invokeCreateArchitectury(defaultValue); + return GameRules.IntegerValue.create(defaultValue); } public static GameRules.Type createIntRule(int defaultValue, BiConsumer changedCallback) { - return GameRulesAccessor.IntegerValue.invokeCreateArchitectury(defaultValue, changedCallback); + return GameRules.IntegerValue.create(defaultValue, changedCallback); } } diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/GameRuleRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/level/forge/GameRuleRegistryImpl.java similarity index 95% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/GameRuleRegistryImpl.java rename to forge/src/main/java/dev/architectury/registry/level/forge/GameRuleRegistryImpl.java index c256e12c..943a01be 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/GameRuleRegistryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/level/forge/GameRuleRegistryImpl.java @@ -17,7 +17,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.level.forge; import net.minecraft.world.level.GameRules; diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/MenuRegistryImpl.java b/forge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java similarity index 84% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/MenuRegistryImpl.java rename to forge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java index 9d94f326..2d8fbb8f 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/MenuRegistryImpl.java +++ b/forge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java @@ -17,12 +17,12 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.menu.forge; -import me.shedaniel.architectury.registry.MenuRegistry.ExtendedMenuTypeFactory; -import me.shedaniel.architectury.registry.MenuRegistry.ScreenFactory; -import me.shedaniel.architectury.registry.MenuRegistry.SimpleMenuTypeFactory; -import me.shedaniel.architectury.registry.menu.ExtendedMenuProvider; +import dev.architectury.registry.menu.ExtendedMenuProvider; +import dev.architectury.registry.menu.MenuRegistry.ExtendedMenuTypeFactory; +import dev.architectury.registry.menu.MenuRegistry.ScreenFactory; +import dev.architectury.registry.menu.MenuRegistry.SimpleMenuTypeFactory; import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.MenuAccess; @@ -32,7 +32,7 @@ import net.minecraft.world.inventory.MenuType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.extensions.IForgeContainerType; -import net.minecraftforge.fml.network.NetworkHooks; +import net.minecraftforge.fmllegacy.network.NetworkHooks; public class MenuRegistryImpl { public static void openExtendedMenu(ServerPlayer player, ExtendedMenuProvider provider) { diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/RegistriesImpl.java b/forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java similarity index 89% rename from forge/src/main/java/me/shedaniel/architectury/registry/forge/RegistriesImpl.java rename to forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java index e46227f1..3f172c5d 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/RegistriesImpl.java +++ b/forge/src/main/java/dev/architectury/registry/registries/forge/RegistriesImpl.java @@ -17,26 +17,25 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.registry.forge; +package dev.architectury.registry.registries.forge; import com.google.common.base.Objects; import com.google.common.base.Suppliers; import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; -import me.shedaniel.architectury.core.RegistryEntry; -import me.shedaniel.architectury.platform.forge.EventBuses; -import me.shedaniel.architectury.registry.Registries; -import me.shedaniel.architectury.registry.Registry; -import me.shedaniel.architectury.registry.RegistrySupplier; -import me.shedaniel.architectury.registry.registries.RegistryBuilder; -import me.shedaniel.architectury.registry.registries.RegistryOption; -import me.shedaniel.architectury.registry.registries.StandardRegistryOption; +import dev.architectury.platform.forge.EventBuses; +import dev.architectury.registry.registries.Registrar; +import dev.architectury.registry.registries.RegistrarBuilder; +import dev.architectury.registry.registries.Registries; +import dev.architectury.registry.registries.RegistrySupplier; +import dev.architectury.registry.registries.options.RegistrarOption; +import dev.architectury.registry.registries.options.StandardRegistrarOption; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.RegistryObject; +import net.minecraftforge.fmllegacy.RegistryObject; import net.minecraftforge.registries.ForgeRegistry; import net.minecraftforge.registries.IForgeRegistry; import net.minecraftforge.registries.IForgeRegistryEntry; @@ -80,21 +79,21 @@ public class RegistriesImpl { } @Override - public Registry get(ResourceKey> registryKey) { + public Registrar get(ResourceKey> registryKey) { return get(RegistryManager.ACTIVE.getRegistry(registryKey.location())); } - public Registry get(IForgeRegistry registry) { + public Registrar get(IForgeRegistry registry) { return new ForgeBackedRegistryImpl<>(this.registry, registry); } @Override - public Registry get(net.minecraft.core.Registry registry) { + public Registrar get(net.minecraft.core.Registry registry) { return new VanillaBackedRegistryImpl<>(registry); } @Override - public > RegistryBuilder builder(Class type, ResourceLocation registryId) { + public RegistrarBuilder builder(Class type, ResourceLocation registryId) { return new RegistryBuilderWrapper<>(this, new net.minecraftforge.registries.RegistryBuilder<>() .setName(registryId) .setType((Class) type)); @@ -117,7 +116,7 @@ public class RegistriesImpl { } } - public static class RegistryBuilderWrapper> implements RegistryBuilder { + public static class RegistryBuilderWrapper implements RegistrarBuilder { @NotNull private final RegistryProviderImpl provider; @NotNull @@ -131,24 +130,24 @@ public class RegistriesImpl { } @Override - public @NotNull Registry build() { + public @NotNull Registrar build() { if (!syncToClients) builder.disableSync(); if (!saveToDisk) builder.disableSaving(); return provider.get(builder.create()); } @Override - public @NotNull RegistryBuilder option(@NotNull RegistryOption option) { - if (option == StandardRegistryOption.SAVE_TO_DISC) { + public @NotNull RegistrarBuilder option(@NotNull RegistrarOption option) { + if (option == StandardRegistrarOption.SAVE_TO_DISC) { this.saveToDisk = true; - } else if (option == StandardRegistryOption.SYNC_TO_CLIENTS) { + } else if (option == StandardRegistrarOption.SYNC_TO_CLIENTS) { this.syncToClients = true; } return this; } } - public static class VanillaBackedRegistryImpl implements Registry { + public static class VanillaBackedRegistryImpl implements Registrar { private net.minecraft.core.Registry delegate; public VanillaBackedRegistryImpl(net.minecraft.core.Registry delegate) { @@ -156,7 +155,7 @@ public class RegistriesImpl { } @Override - public @NotNull RegistrySupplier delegateSupplied(ResourceLocation id) { + public @NotNull RegistrySupplier delegate(ResourceLocation id) { Supplier value = Suppliers.memoize(() -> get(id)); return new RegistrySupplier() { @Override @@ -200,9 +199,9 @@ public class RegistriesImpl { } @Override - public @NotNull RegistrySupplier registerSupplied(ResourceLocation id, Supplier supplier) { + public @NotNull RegistrySupplier register(ResourceLocation id, Supplier supplier) { net.minecraft.core.Registry.register(delegate, id, supplier.get()); - return (RegistrySupplier) delegateSupplied(id); + return (RegistrySupplier) delegate(id); } @Override @@ -263,7 +262,7 @@ public class RegistriesImpl { } } - public static class ForgeBackedRegistryImpl> implements Registry { + public static class ForgeBackedRegistryImpl> implements Registrar { private IForgeRegistry delegate; private Table, Supplier>> registry; @@ -273,7 +272,7 @@ public class RegistriesImpl { } @Override - public @NotNull RegistrySupplier delegateSupplied(ResourceLocation id) { + public @NotNull RegistrySupplier delegate(ResourceLocation id) { Supplier value = Suppliers.memoize(() -> get(id)); return new RegistrySupplier() { @Override @@ -317,7 +316,7 @@ public class RegistriesImpl { } @Override - public @NotNull RegistrySupplier registerSupplied(ResourceLocation id, Supplier supplier) { + public @NotNull RegistrySupplier register(ResourceLocation id, Supplier supplier) { RegistryObject registryObject = RegistryObject.of(id, delegate); registry.put(delegate.getRegistrySuperType(), registryObject, () -> supplier.get().setRegistryName(id)); return new RegistrySupplier() { diff --git a/forge/src/main/java/me/shedaniel/architectury/utils/forge/GameInstanceImpl.java b/forge/src/main/java/dev/architectury/utils/forge/GameInstanceImpl.java similarity index 90% rename from forge/src/main/java/me/shedaniel/architectury/utils/forge/GameInstanceImpl.java rename to forge/src/main/java/dev/architectury/utils/forge/GameInstanceImpl.java index ba0d4b69..350007e3 100644 --- a/forge/src/main/java/me/shedaniel/architectury/utils/forge/GameInstanceImpl.java +++ b/forge/src/main/java/dev/architectury/utils/forge/GameInstanceImpl.java @@ -17,10 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.utils.forge; +package dev.architectury.utils.forge; import net.minecraft.server.MinecraftServer; -import net.minecraftforge.fml.server.ServerLifecycleHooks; +import net.minecraftforge.fmllegacy.server.ServerLifecycleHooks; public class GameInstanceImpl { public static MinecraftServer getServer() { diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/BiomeGenerationSettingsBuilderAccessor.java b/forge/src/main/java/me/shedaniel/architectury/mixin/forge/BiomeGenerationSettingsBuilderAccessor.java deleted file mode 100644 index 43b68ed0..00000000 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/BiomeGenerationSettingsBuilderAccessor.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This file is part of architectury. - * Copyright (C) 2020, 2021 architectury - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package me.shedaniel.architectury.mixin.forge; - -import net.minecraft.world.level.biome.BiomeGenerationSettings; -import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.List; -import java.util.function.Supplier; - -@Mixin(BiomeGenerationSettings.Builder.class) -public interface BiomeGenerationSettingsBuilderAccessor { - @Accessor - List>>> getFeatures(); -} diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/GameRulesAccessor.java b/forge/src/main/java/me/shedaniel/architectury/mixin/forge/GameRulesAccessor.java deleted file mode 100644 index 0b2ec508..00000000 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/GameRulesAccessor.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * This file is part of architectury. - * Copyright (C) 2020, 2021 architectury - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package me.shedaniel.architectury.mixin.forge; - -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.level.GameRules; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -import java.util.function.BiConsumer; - -@Mixin(GameRules.class) -public interface GameRulesAccessor { - /** - * Spliting simple classes because mixin can't handle refmap using the same name - */ - @Mixin(GameRules.BooleanValue.class) - interface BooleanValue { - @Invoker("create") - static GameRules.Type invokeCreateArchitectury(boolean value, BiConsumer biConsumer) { - throw new AssertionError(); - } - } - - @Mixin(GameRules.BooleanValue.class) - interface BooleanValueSimple { - @Invoker("create") - static GameRules.Type invokeCreateArchitectury(boolean value) { - throw new AssertionError(); - } - } - - @Mixin(GameRules.IntegerValue.class) - interface IntegerValue { - @Invoker("create") - static GameRules.Type invokeCreateArchitectury(int value, BiConsumer biConsumer) { - throw new AssertionError(); - } - } - - @Mixin(GameRules.IntegerValue.class) - interface IntegerValueSimple { - @Invoker("create") - static GameRules.Type invokeCreateArchitectury(int value) { - throw new AssertionError(); - } - } -} diff --git a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MobSpawnSettingsBuilderAccessor.java b/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MobSpawnSettingsBuilderAccessor.java deleted file mode 100644 index 9430939a..00000000 --- a/forge/src/main/java/me/shedaniel/architectury/mixin/forge/MobSpawnSettingsBuilderAccessor.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of architectury. - * Copyright (C) 2020, 2021 architectury - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package me.shedaniel.architectury.mixin.forge; - -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.MobCategory; -import net.minecraft.world.level.biome.MobSpawnSettings; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.List; -import java.util.Map; - -@Mixin(MobSpawnSettings.Builder.class) -public interface MobSpawnSettingsBuilderAccessor { - @Accessor - Map, MobSpawnSettings.MobSpawnCost> getMobSpawnCosts(); - - @Accessor - boolean isPlayerCanSpawn(); - - @Accessor - void setPlayerCanSpawn(boolean canSpawn); - - @Accessor - Map> getSpawners(); -} diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityRenderersImpl.java b/forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityRenderersImpl.java deleted file mode 100644 index e043251e..00000000 --- a/forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityRenderersImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This file is part of architectury. - * Copyright (C) 2020, 2021 architectury - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package me.shedaniel.architectury.registry.entity.forge; - -import net.minecraft.client.renderer.entity.EntityRenderDispatcher; -import net.minecraft.client.renderer.entity.EntityRenderer; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraftforge.fml.client.registry.RenderingRegistry; - -import java.util.function.Function; - -public class EntityRenderersImpl { - public static void register(EntityType type, Function> factory) { - RenderingRegistry.registerEntityRenderingHandler(type, factory::apply); - } -} diff --git a/forge/src/main/resources/META-INF/accesstransformer.cfg b/forge/src/main/resources/META-INF/accesstransformer.cfg index b4afaea4..2cbec00e 100644 --- a/forge/src/main/resources/META-INF/accesstransformer.cfg +++ b/forge/src/main/resources/META-INF/accesstransformer.cfg @@ -1,35 +1,47 @@ -public net.minecraft.block.AbstractBlock field_235684_aB_ #properties -public net.minecraft.block.AbstractBlock$Properties (Lnet/minecraft/block/material/Material;Ljava/util/function/Function;)V -public net.minecraft.block.AbstractBlock$Properties field_200953_a #material -public net.minecraft.block.AbstractBlock$Properties field_200959_g #destroyTime -public net.minecraft.block.AbstractBlock$Properties field_200958_f #explosionResistance -public net.minecraft.block.AbstractBlock$Properties field_200955_c #hasCollision -public net.minecraft.block.AbstractBlock$Properties field_200960_h #isRandomlyTicking -public net.minecraft.block.AbstractBlock$Properties field_235803_e_ #lightEmission -public net.minecraft.block.AbstractBlock$Properties field_235800_b_ #materialColor -public net.minecraft.block.AbstractBlock$Properties field_200956_d #soundType -public net.minecraft.block.AbstractBlock$Properties field_200961_i #friction -public net.minecraft.block.AbstractBlock$Properties field_226893_j_ #speedFactor -public net.minecraft.block.AbstractBlock$Properties field_208772_j #dynamicShape -public net.minecraft.block.AbstractBlock$Properties field_226895_m_ #canOcclude -public net.minecraft.block.AbstractBlock$Properties field_235813_o_ #isAir -public net.minecraft.block.AbstractBlock$Properties field_235806_h_ #requiresCorrectToolForDrops -public-f net.minecraft.world.Explosion field_77280_f #radius -public net.minecraft.client.gui.screen.Screen field_230710_m_ #buttons -public-f net.minecraft.world.biome.Biome$Climate field_242460_b # precipitation -public-f net.minecraft.world.biome.Biome$Climate field_242461_c # temperature -public-f net.minecraft.world.biome.Biome$Climate field_242462_d # temperatureModifier -public-f net.minecraft.world.biome.Biome$Climate field_242463_e # downfall -public-f net.minecraft.world.biome.BiomeAmbience field_235205_b_ # fogColor -public-f net.minecraft.world.biome.BiomeAmbience field_235206_c_ # waterColor -public-f net.minecraft.world.biome.BiomeAmbience field_235207_d_ # waterFogColor -public-f net.minecraft.world.biome.BiomeAmbience field_235208_e_ # particle -public-f net.minecraft.world.biome.BiomeAmbience field_235209_f_ # ambientSound -public-f net.minecraft.world.biome.BiomeAmbience field_235210_g_ # moodSound -public-f net.minecraft.world.biome.BiomeAmbience field_235211_h_ # additionsSound -public-f net.minecraft.world.biome.BiomeAmbience field_235212_i_ # music -public-f net.minecraft.world.biome.BiomeAmbience field_242523_e # skyColor -public-f net.minecraft.world.biome.BiomeAmbience field_242524_f # foliageColor -public-f net.minecraft.world.biome.BiomeAmbience field_242525_g # grassColor -public-f net.minecraft.world.biome.BiomeAmbience field_242526_h # grassColorModifier -public net.minecraft.world.storage.FolderName (Ljava/lang/String;)V +public net.minecraft.world.level.block.state.BlockBehaviour f_60439_ #properties +public net.minecraft.world.level.block.state.BlockBehaviour$Properties (Lnet/minecraft/world/level/material/Material;Ljava/util/function/Function;)V +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60882_ #material +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60888_ #destroyTime +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60887_ #explosionResistance +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60884_ #hasCollision +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60890_ #isRandomlyTicking +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60886_ #lightEmission +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60883_ #materialColor +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60885_ #soundType +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60891_ #friction +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60892_ #speedFactor +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60903_ #dynamicShape +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60895_ #canOcclude +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60896_ #isAir +public net.minecraft.world.level.block.state.BlockBehaviour$Properties f_60889_ #requiresCorrectToolForDrops +public-f net.minecraft.world.level.Explosion f_46017_ #radius +public net.minecraft.client.gui.screens.Screen f_169368_ #narratables +public net.minecraft.client.gui.screens.Screen f_169369_ #renderables +public-f net.minecraft.world.level.biome.Biome$ClimateSettings field_242460_b # precipitation +public-f net.minecraft.world.level.biome.Biome$ClimateSettings field_242461_c # temperature +public-f net.minecraft.world.level.biome.Biome$ClimateSettings field_242462_d # temperatureModifier +public-f net.minecraft.world.level.biome.Biome$ClimateSettings field_242463_e # downfall +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47927_ # fogColor +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47928_ # waterColor +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47929_ # waterFogColor +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47934_ # ambientParticleSettings +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47935_ # ambientLoopSoundEvent +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47936_ # ambientMoodSettings +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47937_ # ambientAdditionsSettings +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47938_ # backgroundMusic +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47930_ # skyColor +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47931_ # foliageColorOverride +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47932_ # grassColorOverride +public-f net.minecraft.world.level.biome.BiomeSpecialEffects f_47933_ # grassColorModifier +public net.minecraft.world.level.storage.LevelResource (Ljava/lang/String;)V +public net.minecraft.world.level.biome.BiomeGenerationSettings$Builder f_47828_ # features +public net.minecraft.world.level.biome.MobSpawnSettings$Builder f_48362_ # spawners +public net.minecraft.world.level.biome.MobSpawnSettings$Builder f_48363_ # mobSpawnCosts +public net.minecraft.world.level.biome.MobSpawnSettings$Builder f_48365_ # playerCanSpawn +public net.minecraft.world.level.GameRules$BooleanValue m_46250_(Z)Lnet/minecraft/world/level/GameRules$Type; # create +public net.minecraft.world.level.GameRules$BooleanValue m_46252_(ZLjava/util/function/BiConsumer;)Lnet/minecraft/world/level/GameRules$Type; # create +public net.minecraft.world.level.GameRules$IntegerValue m_46312_(I)Lnet/minecraft/world/level/GameRules$Type; # create +public net.minecraft.world.level.GameRules$IntegerValue m_46294_(ILjava/util/function/BiConsumer;)Lnet/minecraft/world/level/GameRules$Type; # create +public net.minecraft.client.particle.ParticleEngine f_107296_ # textureAtlas +public net.minecraft.client.particle.ParticleEngine$MutableSpriteSet +public net.minecraft.client.particle.ParticleEngine$MutableSpriteSet f_107406_ # sprites diff --git a/forge/src/main/resources/architectury.mixins.json b/forge/src/main/resources/architectury.mixins.json index 6077bc56..13c87181 100644 --- a/forge/src/main/resources/architectury.mixins.json +++ b/forge/src/main/resources/architectury.mixins.json @@ -1,28 +1,28 @@ { "required": true, "package": "me.shedaniel.architectury.mixin.forge", - "plugin": "me.shedaniel.architectury.plugin.forge.ArchitecturyMixinPlugin", + "plugin": "dev.architectury.plugin.forge.ArchitecturyMixinPlugin", "compatibilityLevel": "JAVA_16", "minVersion": "0.8", "client": [ - "MixinClientLevel", - "ParticleEngineAccessor", + "dev.architectury.architectury.mixin.forge.MixinClientLevel", + "dev.architectury.architectury.mixin.forge.ParticleEngineAccessor", "ParticleEngineAccessor$MutableSpriteSetAccessor" ], "mixins": [ - "BiomeGenerationSettingsBuilderAccessor", - "GameRulesAccessor", + "dev.architectury.architectury.mixin.forge.BiomeGenerationSettingsBuilderAccessor", + "dev.architectury.architectury.mixin.forge.GameRulesAccessor", "GameRulesAccessor$BooleanValue", "GameRulesAccessor$BooleanValueSimple", "GameRulesAccessor$IntegerValue", "GameRulesAccessor$IntegerValueSimple", - "MixinBlockEntity", - "MixinBlockEntityExtension", - "MixinChunkSerializer", - "MixinItemExtension", - "MixinRegistryEntry", - "MixinWorldEvent", - "MobSpawnSettingsBuilderAccessor" + "dev.architectury.architectury.mixin.forge.MixinBlockEntity", + "dev.architectury.architectury.mixin.forge.MixinBlockEntityExtension", + "dev.architectury.architectury.mixin.forge.MixinChunkSerializer", + "dev.architectury.architectury.mixin.forge.MixinItemExtension", + "dev.architectury.architectury.mixin.forge.MixinRegistryEntry", + "dev.architectury.architectury.mixin.forge.MixinWorldEvent", + "dev.architectury.architectury.mixin.forge.MobSpawnSettingsBuilderAccessor" ], "injectors": { "defaultRequire": 1 diff --git a/gradle.properties b/gradle.properties index b43627a8..d23403da 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,9 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -minecraft_version=1.17 -supported_version=1.17 -crane_version=1.17+build.11 +minecraft_version=1.17.1 +supported_version=1.17.1 +crane_version=1.17.1+build.1 cf_type=release @@ -16,4 +16,4 @@ fabric_loader_version=0.11.6 fabric_api_version=0.34.9+1.17 mod_menu_version=2.0.0-beta.7 -#forge_version=36.0.42 +forge_version=37.0.13 diff --git a/settings.gradle b/settings.gradle index c224a3c0..01a3a492 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,6 @@ pluginManagement { repositories { + mavenLocal() maven { url "https://maven.fabricmc.net/" } maven { url "https://maven.architectury.dev/" } maven { url "https://files.minecraftforge.net/maven/" } @@ -14,9 +15,9 @@ if (JavaVersion.current().ordinal() + 1 < 16) { include("common") include("fabric") -//include("forge") +include("forge") include("testmod-common") include("testmod-fabric") -//include("testmod-forge") +include("testmod-forge") rootProject.name = "architectury" diff --git a/testmod-common/build.gradle b/testmod-common/build.gradle index c5f93dd9..c696eabe 100644 --- a/testmod-common/build.gradle +++ b/testmod-common/build.gradle @@ -6,5 +6,5 @@ dependencies { } architectury { - common(false) + common() } diff --git a/testmod-common/src/main/java/dev/architectury/test/TestMod.java b/testmod-common/src/main/java/dev/architectury/test/TestMod.java index 817ba63f..bdc91ad1 100644 --- a/testmod-common/src/main/java/dev/architectury/test/TestMod.java +++ b/testmod-common/src/main/java/dev/architectury/test/TestMod.java @@ -42,7 +42,7 @@ import net.minecraft.client.renderer.entity.MinecartRenderer; public class TestMod { public static final MessageSink SINK = EnvExecutor.getEnvSpecific(() -> ClientOverlayMessageSink::new, () -> ConsoleMessageSink::new); - public static final String MOD_ID = "architectury-test"; + public static final String MOD_ID = "architectury_test"; public static void initialize() { DebugEvents.initialize(); diff --git a/testmod-common/src/main/java/dev/architectury/test/particle/TestParticles.java b/testmod-common/src/main/java/dev/architectury/test/particle/TestParticles.java index 6529550e..1e40760d 100644 --- a/testmod-common/src/main/java/dev/architectury/test/particle/TestParticles.java +++ b/testmod-common/src/main/java/dev/architectury/test/particle/TestParticles.java @@ -19,6 +19,7 @@ package dev.architectury.test.particle; +import dev.architectury.event.events.client.ClientLifecycleEvent; import dev.architectury.platform.Platform; import dev.architectury.registry.client.particle.ParticleProviderRegistry; import dev.architectury.registry.registries.DeferredRegister; @@ -38,7 +39,10 @@ public class TestParticles { public static void initialize() { PARTICLE_TYPES.register(); - if (Platform.getEnvironment() == Env.CLIENT) - ParticleProviderRegistry.register(TEST_PARTICLE.get(), HeartParticle.Provider::new); + if (Platform.getEnvironment() == Env.CLIENT) { + ClientLifecycleEvent.CLIENT_SETUP.register(instance -> { + ParticleProviderRegistry.register(TEST_PARTICLE.get(), HeartParticle.Provider::new); + }); + } } } diff --git a/testmod-common/src/main/resources/assets/architectury-test/lang/en_us.json b/testmod-common/src/main/resources/assets/architectury-test/lang/en_us.json deleted file mode 100644 index 44b0918b..00000000 --- a/testmod-common/src/main/resources/assets/architectury-test/lang/en_us.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "category.architectury-test": "Architectury Test", - "key.architectury-test.test": "Test Keybind" -} \ No newline at end of file diff --git a/testmod-common/src/main/resources/assets/architectury-test/particles/test_particle.json b/testmod-common/src/main/resources/assets/architectury-test/particles/test_particle.json deleted file mode 100644 index 3743d66d..00000000 --- a/testmod-common/src/main/resources/assets/architectury-test/particles/test_particle.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": [ - "architectury-test:test_particle" - ] -} \ No newline at end of file diff --git a/testmod-common/src/main/resources/assets/architectury_test/lang/en_us.json b/testmod-common/src/main/resources/assets/architectury_test/lang/en_us.json new file mode 100644 index 00000000..bea09e90 --- /dev/null +++ b/testmod-common/src/main/resources/assets/architectury_test/lang/en_us.json @@ -0,0 +1,4 @@ +{ + "category.architectury_test": "Architectury Test", + "key.architectury_test.test": "Test Keybind" +} \ No newline at end of file diff --git a/testmod-common/src/main/resources/assets/architectury_test/particles/test_particle.json b/testmod-common/src/main/resources/assets/architectury_test/particles/test_particle.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/testmod-common/src/main/resources/assets/architectury_test/particles/test_particle.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/testmod-common/src/main/resources/assets/architectury-test/textures/particle/test_particle.png b/testmod-common/src/main/resources/assets/architectury_test/textures/particles/test_particle.png similarity index 100% rename from testmod-common/src/main/resources/assets/architectury-test/textures/particle/test_particle.png rename to testmod-common/src/main/resources/assets/architectury_test/textures/particles/test_particle.png diff --git a/testmod-common/src/main/resources/data/architectury-test/tags/blocks/heart_particles2.json b/testmod-common/src/main/resources/data/architectury_test/tags/blocks/heart_particles2.json similarity index 100% rename from testmod-common/src/main/resources/data/architectury-test/tags/blocks/heart_particles2.json rename to testmod-common/src/main/resources/data/architectury_test/tags/blocks/heart_particles2.json diff --git a/testmod-forge/build.gradle b/testmod-forge/build.gradle index 2c72f883..21bac55b 100644 --- a/testmod-forge/build.gradle +++ b/testmod-forge/build.gradle @@ -4,7 +4,7 @@ plugins { } loom { - mixinConfig "architectury.mixins.json" +// mixinConfig "architectury.mixins.json" localMods { it.add(project(":forge").sourceSets.main) diff --git a/testmod-forge/src/main/java/me/shedaniel/architectury/test/TestModForge.java b/testmod-forge/src/main/java/dev/architectury/test/forge/TestModForge.java similarity index 90% rename from testmod-forge/src/main/java/me/shedaniel/architectury/test/TestModForge.java rename to testmod-forge/src/main/java/dev/architectury/test/forge/TestModForge.java index cdf26df9..fa3b326a 100644 --- a/testmod-forge/src/main/java/me/shedaniel/architectury/test/TestModForge.java +++ b/testmod-forge/src/main/java/dev/architectury/test/forge/TestModForge.java @@ -17,9 +17,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package me.shedaniel.architectury.test; +package dev.architectury.test.forge; -import me.shedaniel.architectury.platform.forge.EventBuses; +import dev.architectury.platform.forge.EventBuses; +import dev.architectury.test.TestMod; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; diff --git a/testmod-forge/src/main/resources/META-INF/mods.toml b/testmod-forge/src/main/resources/META-INF/mods.toml index 7e073ef4..bcb130b1 100644 --- a/testmod-forge/src/main/resources/META-INF/mods.toml +++ b/testmod-forge/src/main/resources/META-INF/mods.toml @@ -4,8 +4,8 @@ issueTrackerURL = "https://github.com/shedaniel/architectury/issues" license = "LGPL-3" [[mods]] -modId = "architectury-test" -version = "${version}" +modId = "architectury_test" +version = "${file.jarVersion}" displayName = "Architectury Test" authors = "shedaniel" description = '''