From 38c3e8e64a417797f4e6774344281ecf1cd0135d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 21 Nov 2023 13:13:26 +0800 Subject: [PATCH 1/2] Fix #453 --- .../registry/menu/forge/MenuRegistryImpl.java | 0 .../registry/menu/forge/MenuRegistryImpl.java | 55 +++++++++++++++++++ 2 files changed, 55 insertions(+) rename {forge => minecraftforge}/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java (100%) create mode 100644 neoforge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java diff --git a/forge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java b/minecraftforge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java similarity index 100% rename from forge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java rename to minecraftforge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java diff --git a/neoforge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java b/neoforge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java new file mode 100644 index 00000000..c1c380eb --- /dev/null +++ b/neoforge/src/main/java/dev/architectury/registry/menu/forge/MenuRegistryImpl.java @@ -0,0 +1,55 @@ +/* + * This file is part of architectury. + * Copyright (C) 2020, 2021, 2022 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.menu.forge; + +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; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.flag.FeatureFlags; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.MenuType; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; +import net.neoforged.neoforge.network.NetworkHooks; + +public class MenuRegistryImpl { + public static void openExtendedMenu(ServerPlayer player, ExtendedMenuProvider provider) { + NetworkHooks.openScreen(player, provider, provider::saveExtraData); + } + + public static MenuType of(SimpleMenuTypeFactory factory) { + return new MenuType<>(factory::create, FeatureFlags.VANILLA_SET); + } + + public static MenuType ofExtended(ExtendedMenuTypeFactory factory) { + return IMenuTypeExtension.create(factory::create); + } + + @OnlyIn(Dist.CLIENT) + public static > void registerScreenFactory(MenuType type, ScreenFactory factory) { + MenuScreens.register(type, factory::create); + } +} From f63dc5d0e51b95a1ea79541dbd558e8ca988df2a Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 8 Dec 2023 21:08:34 +0800 Subject: [PATCH 2/2] Remove references to ForgeRegistries left --- .../forge/imitator/ArchitecturyFluidAttributesForge.java | 4 ++-- .../java/dev/architectury/fluid/forge/FluidStackImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/forge/src/main/java/dev/architectury/core/fluid/forge/imitator/ArchitecturyFluidAttributesForge.java b/forge/src/main/java/dev/architectury/core/fluid/forge/imitator/ArchitecturyFluidAttributesForge.java index 37158eda..fa530f37 100644 --- a/forge/src/main/java/dev/architectury/core/fluid/forge/imitator/ArchitecturyFluidAttributesForge.java +++ b/forge/src/main/java/dev/architectury/core/fluid/forge/imitator/ArchitecturyFluidAttributesForge.java @@ -24,6 +24,7 @@ import dev.architectury.core.fluid.ArchitecturyFluidAttributes; import dev.architectury.hooks.fluid.forge.FluidStackHooksForge; import net.minecraft.Util; import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; @@ -40,7 +41,6 @@ import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; import net.minecraftforge.common.SoundAction; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidType; -import net.minecraftforge.registries.ForgeRegistries; import org.jetbrains.annotations.Nullable; import java.util.function.Consumer; @@ -55,7 +55,7 @@ class ArchitecturyFluidAttributesForge extends FluidType { public ArchitecturyFluidAttributesForge(Properties builder, Fluid fluid, ArchitecturyFluidAttributes attributes) { super(addArchIntoBuilder(builder, attributes)); this.attributes = attributes; - this.defaultTranslationKey = Util.makeDescriptionId("fluid", ForgeRegistries.FLUIDS.getKey(fluid)); + this.defaultTranslationKey = Util.makeDescriptionId("fluid", BuiltInRegistries.FLUID.getKey(fluid)); } private static Properties addArchIntoBuilder(Properties builder, ArchitecturyFluidAttributes attributes) { diff --git a/forge/src/main/java/dev/architectury/fluid/forge/FluidStackImpl.java b/forge/src/main/java/dev/architectury/fluid/forge/FluidStackImpl.java index d9eedcd5..cdbc1543 100644 --- a/forge/src/main/java/dev/architectury/fluid/forge/FluidStackImpl.java +++ b/forge/src/main/java/dev/architectury/fluid/forge/FluidStackImpl.java @@ -19,10 +19,10 @@ package dev.architectury.fluid.forge; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.registries.ForgeRegistries; import org.jetbrains.annotations.ApiStatus; import java.util.function.Function; @@ -54,7 +54,7 @@ public enum FluidStackImpl implements dev.architectury.fluid.FluidStack.FluidSta @Override public Supplier getRawFluidSupplier(FluidStack object) { - return ForgeRegistries.FLUIDS.getDelegateOrThrow(object.getRawFluid()); + return BuiltInRegistries.FLUID.getHolderOrThrow(BuiltInRegistries.FLUID.getResourceKey(object.getRawFluid()).orElseThrow()); } @Override