aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-04-10 02:50:13 +0900
committershedaniel <daniel@shedaniel.me>2024-04-10 20:37:13 +0900
commitfccc677951d7d5352ab7bf154951b7198d440e90 (patch)
treea641e63c744d00ed991cf673c310a69130c9d5b9
parentaebe0f1c05e5b8240b5136f3ab4f1e4a84039d96 (diff)
downloadRoughlyEnoughItems-fccc677951d7d5352ab7bf154951b7198d440e90.tar.gz
RoughlyEnoughItems-fccc677951d7d5352ab7bf154951b7198d440e90.tar.bz2
RoughlyEnoughItems-fccc677951d7d5352ab7bf154951b7198d440e90.zip
Update to 24w14a
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java23
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java2
-rw-r--r--api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java10
-rwxr-xr-xbuild.gradle10
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/tag/TagNodes.java6
-rw-r--r--gradle.properties17
-rwxr-xr-xgradle/wrapper/gradle-wrapper.properties2
-rw-r--r--neoforge/build.gradle7
-rw-r--r--neoforge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java3
-rw-r--r--neoforge/src/main/java/me/shedaniel/rei/impl/client/forge/CreativeModeTabCollectorImpl.java9
-rw-r--r--neoforge/src/main/java/me/shedaniel/rei/plugin/client/forge/DefaultClientPluginImpl.java33
-rw-r--r--neoforge/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/forge/DefaultCraftingDisplayImpl.java2
-rw-r--r--neoforge/src/main/resources/META-INF/neoforge.mods.toml (renamed from neoforge/src/main/resources/META-INF/mods.toml)0
-rw-r--r--neoforge/src/serverComponent/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForgeServerComponent.java3
-rw-r--r--neoforge/src/serverComponent/resources/META-INF/neoforge.mods.toml (renamed from neoforge/src/serverComponent/resources/META-INF/mods.toml)0
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/favorites/DelegatingFavoriteEntryProviderImpl.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TooltipContextImpl.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/rows/FavoritesPanelEntriesRow.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/RegexArgumentType.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TextArgumentType.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TooltipArgumentType.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/transfer/SimpleTransferHandlerImpl.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/NewInputSlotCrafter.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java4
-rwxr-xr-xsettings.gradle6
36 files changed, 127 insertions, 84 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java
index 085eb772b..43be06845 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java
@@ -28,6 +28,7 @@ import me.shedaniel.math.impl.PointHelper;
import me.shedaniel.rei.impl.ClientInternals;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
+import net.minecraft.world.item.Item;
import net.minecraft.world.item.TooltipFlag;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
@@ -35,24 +36,24 @@ import org.jetbrains.annotations.Nullable;
@Environment(EnvType.CLIENT)
@ApiStatus.NonExtendable
public interface TooltipContext {
- static TooltipContext of() {
- return TooltipContext.of(new Point());
+ static TooltipContext of(Item.TooltipContext vanillaContext) {
+ return TooltipContext.of(new Point(), vanillaContext);
}
- static TooltipContext of(Point point) {
- return TooltipContext.of(point, null);
+ static TooltipContext of(Point point, Item.TooltipContext vanillaContext) {
+ return TooltipContext.of(point, vanillaContext, null);
}
- static TooltipContext of(Point point, @Nullable TooltipFlag flag) {
- return TooltipContext.of(point, flag, false);
+ static TooltipContext of(Point point, Item.TooltipContext vanillaContext, @Nullable TooltipFlag flag) {
+ return TooltipContext.of(point, vanillaContext, flag, false);
}
- static TooltipContext of(Point point, @Nullable TooltipFlag flag, boolean isSearch) {
- return ClientInternals.createTooltipContext(point, flag, isSearch);
+ static TooltipContext of(Point point, Item.TooltipContext vanillaContext, @Nullable TooltipFlag flag, boolean isSearch) {
+ return ClientInternals.createTooltipContext(point, flag, isSearch, vanillaContext);
}
- static TooltipContext ofMouse() {
- return TooltipContext.of(PointHelper.ofMouse());
+ static TooltipContext ofMouse(Item.TooltipContext vanillaContext) {
+ return TooltipContext.of(PointHelper.ofMouse(), vanillaContext);
}
TooltipFlag getFlag();
@@ -60,4 +61,6 @@ public interface TooltipContext {
Point getPoint();
boolean isSearch();
+
+ Item.TooltipContext vanillaContext();
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java
index 9f1fe8593..dda6344df 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java
@@ -55,6 +55,6 @@ public interface DumpHandler<T extends AbstractContainerMenu, D extends Display>
}
static boolean canStackAddMore(ItemStack existingStack, ItemStack stack) {
- return !existingStack.isEmpty() && ItemStack.isSameItemSameTags(existingStack, stack) && existingStack.isStackable() && existingStack.getCount() + stack.getCount() <= existingStack.getMaxStackSize();
+ return !existingStack.isEmpty() && ItemStack.isSameItemSameComponents(existingStack, stack) && existingStack.isStackable() && existingStack.getCount() + stack.getCount() <= existingStack.getMaxStackSize();
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java
index 27e4280d1..f4f36769c 100644
--- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java
+++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java
@@ -47,14 +47,16 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
+import net.minecraft.data.models.blockstates.PropertyDispatch;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
+import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
-import org.apache.commons.lang3.function.TriFunction;
+import org.apache.commons.io.function.IOQuadFunction;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import org.joml.Matrix4f;
@@ -83,7 +85,7 @@ public final class ClientInternals {
private static Function<Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup();
private static BiConsumer<List<ClientTooltipComponent>, TooltipComponent> clientTooltipComponentProvider = (tooltip, result) -> throwNotSetup();
private static BiFunction<@Nullable Point, Collection<Tooltip.Entry>, Tooltip> tooltipProvider = (point, texts) -> throwNotSetup();
- private static TriFunction<Point, @Nullable TooltipFlag, Boolean, TooltipContext> tooltipContextProvider = (point, texts, search) -> throwNotSetup();
+ private static PropertyDispatch.QuadFunction<Point, @Nullable TooltipFlag, Boolean, Item.TooltipContext, TooltipContext> tooltipContextProvider = (point, texts, search, context) -> throwNotSetup();
private static Function<Object, Tooltip.Entry> tooltipEntryProvider = (component) -> throwNotSetup();
private static Supplier<List<String>> jeiCompatMods = ClientInternals::throwNotSetup;
private static Supplier<Object> builtinClientPlugin = ClientInternals::throwNotSetup;
@@ -146,8 +148,8 @@ public final class ClientInternals {
return tooltipProvider.apply(point, texts);
}
- public static TooltipContext createTooltipContext(Point point, @Nullable TooltipFlag flag, boolean isSearch) {
- return tooltipContextProvider.apply(point, flag, isSearch);
+ public static TooltipContext createTooltipContext(Point point, @Nullable TooltipFlag flag, boolean isSearch, Item.TooltipContext context) {
+ return tooltipContextProvider.apply(point, flag, isSearch, context);
}
public static Tooltip.Entry createTooltipEntry(Object component) {
diff --git a/build.gradle b/build.gradle
index cac71adbb..45b98dd22 100755
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,6 @@
plugins {
id("architectury-plugin") version("3.4-SNAPSHOT")
- id("dev.architectury.loom") version("1.5-SNAPSHOT") apply false
+ id("dev.architectury.loom") version("1.6-SNAPSHOT") apply false
id("org.cadixdev.licenser") version("0.6.1")
id("me.shedaniel.unified-publishing") version("0.1.+")
id("maven-publish")
@@ -30,6 +30,14 @@ subprojects {
repositories {
maven { url "https://maven.neoforged.net/releases/" }
+ if (rootProject.neoforge_pr != "") {
+ maven {
+ url "https://prmaven.neoforged.net/NeoForge/pr$rootProject.neoforge_pr"
+ content {
+ includeModule("net.neoforged", "neoforge")
+ }
+ }
+ }
}
dependencies {
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/tag/TagNodes.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/tag/TagNodes.java
index 9e4fafadd..488beb78e 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/tag/TagNodes.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/tag/TagNodes.java
@@ -32,6 +32,7 @@ import dev.architectury.utils.EnvExecutor;
import io.netty.buffer.Unpooled;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
+import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
@@ -40,6 +41,7 @@ import net.minecraft.core.HolderSet;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.network.FriendlyByteBuf;
+import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
@@ -124,7 +126,7 @@ public class TagNodes {
NetworkManager.registerReceiver(NetworkManager.c2s(), REQUEST_TAGS_PACKET_C2S, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> {
UUID uuid = buf.readUUID();
ResourceKey<? extends Registry<?>> resourceKey = ResourceKey.createRegistryKey(buf.readResourceLocation());
- FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
+ RegistryFriendlyByteBuf newBuf = new RegistryFriendlyByteBuf(Unpooled.buffer(), context.registryAccess());
newBuf.writeUUID(uuid);
Map<ResourceLocation, TagData> dataMap = TAG_DATA_MAP.getOrDefault(resourceKey, Collections.emptyMap());
newBuf.writeInt(dataMap.size());
@@ -146,7 +148,7 @@ public class TagNodes {
requestedTags.get(resourceKey).accept(callback);
callback.accept(DataResult.success(TAG_DATA_MAP.getOrDefault(resourceKey, Collections.emptyMap())));
} else {
- FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
+ RegistryFriendlyByteBuf buf = new RegistryFriendlyByteBuf(Unpooled.buffer(), BasicDisplay.registryAccess());
UUID uuid = UUID.randomUUID();
buf.writeUUID(uuid);
buf.writeResourceLocation(resourceKey.location());
diff --git a/gradle.properties b/gradle.properties
index 94e8ac4d9..478dc6d7f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,15 +1,16 @@
org.gradle.jvmargs=-Xmx6G
base_version=14.0
unstable=true
-supported_version=1.20.5 (24w09a)
-minecraft_version=24w09a
-platforms=fabric
+supported_version=1.20.5 (24w14a)
+minecraft_version=24w14a
+platforms=fabric,neoforge
forge_version=49.0.3
-neoforge_version=20.4.48-beta
-fabricloader_version=0.15.7
-cloth_config_version=14.0.122
+neoforge_version=20.5.0-alpha.24w14a.20240408.221956
+neoforge_pr=787
+fabricloader_version=0.15.9
+cloth_config_version=14.0.125
modmenu_version=7.0.0
-fabric_api=0.96.6+1.20.5
-architectury_version=12.0.16
+fabric_api=0.96.14+1.20.5
+architectury_version=12.0.24-beta
api_exculde=
#api_include=me.shedaniel.cloth:cloth-events,me.shedaniel.cloth:config-2,me.sargunvohra.mcmods:autoconfig1u,org.jetbrains:annotations,net.fabricmc.fabric-api:fabric
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 4b8cf416a..f9014382c 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
diff --git a/neoforge/build.gradle b/neoforge/build.gradle
index a0747ec53..7869466cd 100644
--- a/neoforge/build.gradle
+++ b/neoforge/build.gradle
@@ -15,7 +15,7 @@ configurations {
}
processResources {
- filesMatching("META-INF/mods.toml") {
+ filesMatching("META-INF/neoforge.mods.toml") {
expand "version": project.version
}
inputs.property "version", project.version
@@ -42,7 +42,7 @@ sourceSets {
}
processServerComponentResources {
- filesMatching("META-INF/mods.toml") {
+ filesMatching("META-INF/neoforge.mods.toml") {
expand "version": project.version
}
inputs.property "version", project.version
@@ -110,7 +110,7 @@ sourcesJar {
task serverOnlyJar(type: Jar, dependsOn: [remapJar]) {
archiveClassifier = "server-only"
from(zipTree(remapJar.archiveFile.get().asFile)) {
- exclude "META-INF/mods.toml", "mezz/**", "me/shedaniel/rei/forge/RoughlyEnoughItemsForge.class", "me/shedaniel/rei/forge/JEIStub.class"
+ exclude "META-INF/neoforge.mods.toml", "mezz/**", "me/shedaniel/rei/forge/RoughlyEnoughItemsForge.class", "me/shedaniel/rei/forge/JEIStub.class"
}
from(sourceSets.serverComponent.output)
}
@@ -159,6 +159,7 @@ publishing {
}
unifiedPublishing {
+ if (rootProject.neoforge_pr != "") return
project {
displayName = "[NeoForge $rootProject.supported_version] v$project.version"
releaseType = "beta"
diff --git a/neoforge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java b/neoforge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java
index ae7c88c96..409fc0a35 100644
--- a/neoforge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java
+++ b/neoforge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java
@@ -26,8 +26,6 @@ package me.shedaniel.rei.forge;
import me.shedaniel.rei.impl.init.RoughlyEnoughItemsInitializer;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.fml.DistExecutor;
-import net.neoforged.fml.IExtensionPoint;
-import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.data.loading.DatagenModLoader;
import org.jetbrains.annotations.ApiStatus;
@@ -36,7 +34,6 @@ import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
public class RoughlyEnoughItemsForge {
public RoughlyEnoughItemsForge() {
- ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> "", (a, b) -> true));
if (!DatagenModLoader.isRunningDataGen()) {
RoughlyEnoughItemsInitializer.onInitialize();
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> RoughlyEnoughItemsInitializer::onInitializeClient);
diff --git a/neoforge/src/main/java/me/shedaniel/rei/impl/client/forge/CreativeModeTabCollectorImpl.java b/neoforge/src/main/java/me/shedaniel/rei/impl/client/forge/CreativeModeTabCollectorImpl.java
index 752631dcb..b6033245b 100644
--- a/neoforge/src/main/java/me/shedaniel/rei/impl/client/forge/CreativeModeTabCollectorImpl.java
+++ b/neoforge/src/main/java/me/shedaniel/rei/impl/client/forge/CreativeModeTabCollectorImpl.java
@@ -23,6 +23,8 @@
package me.shedaniel.rei.impl.client.forge;
+import com.google.common.base.MoreObjects;
+import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.impl.common.InternalLogger;
import net.minecraft.core.RegistryAccess;
import net.minecraft.core.registries.BuiltInRegistries;
@@ -32,17 +34,18 @@ import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.ItemStack;
-import net.neoforged.neoforge.client.ClientHooks;
+import net.neoforged.neoforge.event.EventHooks;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Objects;
public class CreativeModeTabCollectorImpl {
public static Map<CreativeModeTab, Collection<ItemStack>> collectTabs() {
Map<CreativeModeTab, Collection<ItemStack>> map = new LinkedHashMap<>();
FeatureFlagSet featureFlags = FeatureFlags.REGISTRY.allFlags();
- CreativeModeTab.ItemDisplayParameters parameters = new CreativeModeTab.ItemDisplayParameters(featureFlags, true, RegistryAccess.fromRegistryOfRegistries(BuiltInRegistries.REGISTRY));
+ CreativeModeTab.ItemDisplayParameters parameters = new CreativeModeTab.ItemDisplayParameters(featureFlags, true, Objects.requireNonNullElseGet(BasicDisplay.registryAccess(), () -> RegistryAccess.fromRegistryOfRegistries(BuiltInRegistries.REGISTRY)));
for (CreativeModeTab tab : CreativeModeTabs.allTabs()) {
if (tab.getType() != CreativeModeTab.Type.HOTBAR && tab.getType() != CreativeModeTab.Type.INVENTORY) {
@@ -51,7 +54,7 @@ public class CreativeModeTabCollectorImpl {
ResourceKey<CreativeModeTab> resourceKey = BuiltInRegistries.CREATIVE_MODE_TAB
.getResourceKey(tab)
.orElseThrow(() -> new IllegalStateException("Unregistered creative tab: " + tab));
- ClientHooks.onCreativeModeTabBuildContents(tab, resourceKey, tab.displayItemsGenerator, parameters, (stack, visibility) -> {
+ EventHooks.onCreativeModeTabBuildContents(tab, resourceKey, tab.displayItemsGenerator, parameters, (stack, visibility) -> {
if (visibility == CreativeModeTab.TabVisibility.SEARCH_TAB_ONLY) return;
builder.accept(stack, visibility);
});
diff --git a/neoforge/src/main/java/me/shedaniel/rei/plugin/client/forge/DefaultClientPluginImpl.java b/neoforge/src/main/java/me/shedaniel/rei/plugin/client/forge/DefaultClientPluginImpl.java
index fe3a2aa3d..e379ff5a8 100644
--- a/neoforge/src/main/java/me/shedaniel/rei/plugin/client/forge/DefaultClientPluginImpl.java
+++ b/neoforge/src/main/java/me/shedaniel/rei/plugin/client/forge/DefaultClientPluginImpl.java
@@ -23,15 +23,17 @@
package me.shedaniel.rei.plugin.client.forge;
-import com.google.common.collect.Sets;
+import com.google.gson.internal.LinkedTreeMap;
import me.shedaniel.rei.api.client.registry.display.DisplayRegistry;
import me.shedaniel.rei.plugin.client.BuiltinClientPlugin;
import me.shedaniel.rei.plugin.client.DefaultClientPlugin;
+import net.minecraft.core.Holder;
+import net.minecraft.core.component.DataComponents;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.alchemy.Potion;
import net.minecraft.world.item.alchemy.PotionBrewing;
-import net.minecraft.world.item.alchemy.PotionUtils;
+import net.minecraft.world.item.alchemy.PotionContents;
import net.minecraft.world.item.crafting.Ingredient;
import net.neoforged.neoforge.common.brewing.BrewingRecipe;
import net.neoforged.neoforge.common.brewing.BrewingRecipeRegistry;
@@ -39,6 +41,8 @@ import net.neoforged.neoforge.common.brewing.IBrewingRecipe;
import net.neoforged.neoforge.common.brewing.VanillaBrewingRecipe;
import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Set;
public class DefaultClientPluginImpl extends DefaultClientPlugin {
@@ -55,31 +59,34 @@ public class DefaultClientPluginImpl extends DefaultClientPlugin {
}
private static void registerVanillaPotions(DisplayRegistry registry, BuiltinClientPlugin clientPlugin) {
- Set<Potion> potions = Sets.newLinkedHashSet();
+ Set<Holder<Potion>> potions = Collections.newSetFromMap(new LinkedTreeMap<>(Comparator.comparing(Holder::getRegisteredName), false));
for (Ingredient container : PotionBrewing.ALLOWED_CONTAINERS) {
for (PotionBrewing.Mix<Potion> mix : PotionBrewing.POTION_MIXES) {
- Potion from = mix.from;
+ Holder<Potion> from = mix.from();
Ingredient ingredient = mix.ingredient;
- Potion to = mix.to;
+ Holder<Potion> to = mix.to();
Ingredient base = Ingredient.of(Arrays.stream(container.getItems())
.map(ItemStack::copy)
- .map(stack -> PotionUtils.setPotion(stack, from)));
+ .peek(stack -> stack.set(DataComponents.POTION_CONTENTS, new PotionContents(from))));
ItemStack output = Arrays.stream(container.getItems())
.map(ItemStack::copy)
- .map(stack -> PotionUtils.setPotion(stack, to))
+ .peek(stack -> stack.set(DataComponents.POTION_CONTENTS, new PotionContents(to)))
.findFirst().orElse(ItemStack.EMPTY);
clientPlugin.registerBrewingRecipe(base, ingredient, output);
potions.add(from);
potions.add(to);
}
}
- for (Potion potion : potions) {
+ for (Holder<Potion> potion : potions) {
for (PotionBrewing.Mix<Item> mix : PotionBrewing.CONTAINER_MIXES) {
- Item from = mix.from;
- Ingredient ingredient = mix.ingredient;
- Item to = mix.to;
- Ingredient base = Ingredient.of(PotionUtils.setPotion(new ItemStack(from), potion));
- ItemStack output = PotionUtils.setPotion(new ItemStack(to), potion);
+ Holder<Item> from = mix.from();
+ Ingredient ingredient = mix.ingredient();
+ Holder<Item> to = mix.to();
+ ItemStack baseStack = new ItemStack(from);
+ baseStack.set(DataComponents.POTION_CONTENTS, new PotionContents(potion));
+ Ingredient base = Ingredient.of(baseStack);
+ ItemStack output = new ItemStack(to);
+ output.set(DataComponents.POTION_CONTENTS, new PotionContents(potion));
clientPlugin.registerBrewingRecipe(base, ingredient, output);
}
}
diff --git a/neoforge/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/forge/DefaultCraftingDisplayImpl.java b/neoforge/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/forge/DefaultCraftingDisplayImpl.java
index 24605d30f..1c3f28a37 100644
--- a/neoforge/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/forge/DefaultCraftingDisplayImpl.java
+++ b/neoforge/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/forge/DefaultCraftingDisplayImpl.java
@@ -31,7 +31,7 @@ public class DefaultCraftingDisplayImpl {
public static void registerPlatformSizeProvider() {
DefaultCraftingDisplay.registerSizeProvider(recipe -> {
if (recipe instanceof IShapedRecipe<?>) {
- return new CraftingRecipeSizeProvider.Size(((IShapedRecipe<?>) recipe).getRecipeWidth(), ((IShapedRecipe<?>) recipe).getRecipeHeight());
+ return new CraftingRecipeSizeProvider.Size(((IShapedRecipe<?>) recipe).getWidth(), ((IShapedRecipe<?>) recipe).getHeight());
}
return null;
diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml
index 3140415fb..3140415fb 100644
--- a/neoforge/src/main/resources/META-INF/mods.toml
+++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml
diff --git a/neoforge/src/serverComponent/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForgeServerComponent.java b/neoforge/src/serverComponent/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForgeServerComponent.java
index 36a6cfb02..afcb3bbca 100644
--- a/neoforge/src/serverComponent/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForgeServerComponent.java
+++ b/neoforge/src/serverComponent/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForgeServerComponent.java
@@ -25,9 +25,7 @@ package me.shedaniel.rei.forge;
import me.shedaniel.rei.impl.init.RoughlyEnoughItemsInitializer;
import net.neoforged.api.distmarker.Dist;
-import net.neoforged.fml.IExtensionPoint;
import net.neoforged.fml.ModList;
-import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.neoforge.data.loading.DatagenModLoader;
@@ -37,7 +35,6 @@ import org.apache.logging.log4j.Logger;
@Mod("roughlyenoughitems_servercomponent")
public class RoughlyEnoughItemsForgeServerComponent {
public RoughlyEnoughItemsForgeServerComponent() {
- ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> IExtensionPoint.DisplayTest.IGNORESERVERONLY, (a, b) -> true));
Logger logger = LogManager.getLogger(RoughlyEnoughItemsForgeServerComponent.class);
if (!DatagenModLoader.isRunningDataGen()) {
if (FMLEnvironment.dist == Dist.CLIENT) {
diff --git a/neoforge/src/serverComponent/resources/META-INF/mods.toml b/neoforge/src/serverComponent/resources/META-INF/neoforge.mods.toml
index 5ff3ac8e3..5ff3ac8e3 100644
--- a/