aboutsummaryrefslogtreecommitdiff
path: root/fabric/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-10-26 16:55:52 +0800
committershedaniel <daniel@shedaniel.me>2024-10-26 16:55:57 +0800
commitddb48e2032d1986709cad973067693eec3118504 (patch)
treee7905130008c67767d2ad2a4d72f49ba4df7e6e3 /fabric/src/main/java
parenteaf9236e3da2adafcea204778ecc0072e70d0aa5 (diff)
downloadRoughlyEnoughItems-ddb48e2032d1986709cad973067693eec3118504.tar.gz
RoughlyEnoughItems-ddb48e2032d1986709cad973067693eec3118504.tar.bz2
RoughlyEnoughItems-ddb48e2032d1986709cad973067693eec3118504.zip
Update to 1.21.2 (Please read Primer)
https://hackmd.io/@shedaniel/rei17_primer
Diffstat (limited to 'fabric/src/main/java')
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java15
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplFabric.java8
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/impl/common/compat/FabricFluidAPISupportPlugin.java4
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinClientPacketListener.java5
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinEffectsInInventory.java (renamed from fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinEffectRenderingInventoryScreen.java)31
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinRecipeToast.java6
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java20
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagManager.java48
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/fabric/DefaultCraftingDisplayImpl.java29
9 files changed, 48 insertions, 118 deletions
diff --git a/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java b/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java
index 3561c9da5..7585fb2e6 100644
--- a/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java
+++ b/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java
@@ -123,27 +123,22 @@ public class PluginDetectorImpl implements PluginDetector {
return simpleName;
}
+ @SuppressWarnings({"RedundantCast", "rawtypes"})
@Override
- public void detectServerPlugins() {
- loadPlugin(REIServerPlugin.class, ((PluginView<REIServerPlugin>) PluginManager.getServerInstance())::registerPlugin);
+ public void detectCommonPlugins() {
+ loadPlugin((Class<? extends REICommonPlugin>) (Class) REICommonPlugin.class, PluginManager.getInstance().view()::registerPlugin);
try {
- PluginView.getServerInstance().registerPlugin((REIServerPlugin) Class.forName("me.shedaniel.rei.impl.common.compat.FabricFluidAPISupportPlugin").getConstructor().newInstance());
+ PluginView.getInstance().registerPlugin((REICommonPlugin) Class.forName("me.shedaniel.rei.impl.common.compat.FabricFluidAPISupportPlugin").getConstructor().newInstance());
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
- @SuppressWarnings({"RedundantCast", "rawtypes"})
- @Override
- public void detectCommonPlugins() {
- loadPlugin((Class<? extends REIPlugin<?>>) (Class) REIPlugin.class, ((PluginView<REIPlugin<?>>) PluginManager.getInstance())::registerPlugin);
- }
-
@Environment(EnvType.CLIENT)
@Override
public Supplier<Runnable> detectClientPlugins() {
return () -> () -> {
- loadPlugin(REIClientPlugin.class, ((PluginView<REIClientPlugin>) PluginManager.getClientInstance())::registerPlugin);
+ loadPlugin(REIClientPlugin.class, PluginManager.getClientInstance().view()::registerPlugin);
Supplier<Method> method = Suppliers.memoize(() -> {
String methodName = FabricLoader.getInstance().isDevelopmentEnvironment() ? FabricLoader.getInstance().getMappingResolver().mapMethodName("intermediary", "net.minecraft.class_332", "method_51442", "(Ljava/util/List;Lnet/minecraft/class_5632;)V")
: "method_51442";
diff --git a/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplFabric.java b/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplFabric.java
index ad6bedf4b..89883f9fd 100644
--- a/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplFabric.java
+++ b/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplFabric.java
@@ -34,8 +34,10 @@ import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPosition
import net.minecraft.locale.Language;
import net.minecraft.network.chat.FormattedText;
import net.minecraft.network.chat.Style;
+import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.FormattedCharSequence;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.stream.Collectors;
@@ -72,15 +74,15 @@ public class ScreenOverlayImplFabric extends ScreenOverlayImpl {
}
}
}
- renderTooltipInner(graphics, lines, tooltip.getX(), tooltip.getY());
+ renderTooltipInner(graphics, lines, tooltip.getX(), tooltip.getY(), tooltip.getTooltipStyle());
}
- public static void renderTooltipInner(GuiGraphics graphics, List<ClientTooltipComponent> lines, int mouseX, int mouseY) {
+ public static void renderTooltipInner(GuiGraphics graphics, List<ClientTooltipComponent> lines, int mouseX, int mouseY, @Nullable ResourceLocation tooltipStyle) {
if (lines.isEmpty()) {
return;
}
graphics.pose().pushPose();
- graphics.renderTooltipInternal(Minecraft.getInstance().font, lines, mouseX, mouseY, DefaultTooltipPositioner.INSTANCE);
+ graphics.renderTooltipInternal(Minecraft.getInstance().font, lines, mouseX, mouseY, DefaultTooltipPositioner.INSTANCE, tooltipStyle);
graphics.pose().popPose();
}
}
diff --git a/fabric/src/main/java/me/shedaniel/rei/impl/common/compat/FabricFluidAPISupportPlugin.java b/fabric/src/main/java/me/shedaniel/rei/impl/common/compat/FabricFluidAPISupportPlugin.java
index 4fbd24e27..930d940dd 100644
--- a/fabric/src/main/java/me/shedaniel/rei/impl/common/compat/FabricFluidAPISupportPlugin.java
+++ b/fabric/src/main/java/me/shedaniel/rei/impl/common/compat/FabricFluidAPISupportPlugin.java
@@ -28,7 +28,7 @@ import dev.architectury.fluid.FluidStack;
import dev.architectury.hooks.fluid.fabric.FluidStackHooksFabric;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.fluid.FluidSupportProvider;
-import me.shedaniel.rei.api.common.plugins.REIServerPlugin;
+import me.shedaniel.rei.api.common.plugins.REICommonPlugin;
import me.shedaniel.rei.api.common.util.EntryStacks;
import net.fabricmc.fabric.api.transfer.v1.context.ContainerItemContext;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage;
@@ -40,7 +40,7 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
-public class FabricFluidAPISupportPlugin implements REIServerPlugin {
+public class FabricFluidAPISupportPlugin implements REICommonPlugin {
@Override
public void registerFluidSupport(FluidSupportProvider support) {
support.register(entry -> {
diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinClientPacketListener.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinClientPacketListener.java
index 4cff54d51..c2ba18810 100644
--- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinClientPacketListener.java
+++ b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinClientPacketListener.java
@@ -28,6 +28,7 @@ import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.protocol.common.ClientboundUpdateTagsPacket;
import net.minecraft.network.protocol.game.ClientboundUpdateRecipesPacket;
+import net.minecraft.world.item.crafting.RecipeAccess;
import net.minecraft.world.item.crafting.RecipeManager;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@@ -38,13 +39,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ClientPacketListener.class)
public abstract class MixinClientPacketListener {
- @Shadow @Final private RecipeManager recipeManager;
+ @Shadow public abstract RecipeAccess recipes();
@Shadow public abstract RegistryAccess.Frozen registryAccess();
@Inject(method = "handleUpdateRecipes", at = @At("HEAD"))
private void handleUpdateRecipes(ClientboundUpdateRecipesPacket clientboundUpdateRecipesPacket, CallbackInfo ci) {
- RoughlyEnoughItemsCoreClient.PRE_UPDATE_RECIPES.invoker().accept(recipeManager, registryAccess());
+ RoughlyEnoughItemsCoreClient.PRE_UPDATE_RECIPES.invoker().accept(recipes(), registryAccess());
}
@Inject(method = "handleUpdateTags", at = @At("HEAD"))
diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinEffectRenderingInventoryScreen.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinEffectsInInventory.java
index d4909d391..fefbec21f 100644
--- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinEffectRenderingInventoryScreen.java
+++ b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinEffectsInInventory.java
@@ -25,20 +25,19 @@ package me.shedaniel.rei.mixin.fabric;
import me.shedaniel.rei.api.client.config.ConfigObject;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
-import net.minecraft.client.gui.screens.inventory.EffectRenderingInventoryScreen;
-import net.minecraft.network.chat.Component;
-import net.minecraft.world.entity.player.Inventory;
-import net.minecraft.world.inventory.AbstractContainerMenu;
+import net.minecraft.client.gui.screens.inventory.EffectsInInventory;
+import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
-@Mixin(EffectRenderingInventoryScreen.class)
-public abstract class MixinEffectRenderingInventoryScreen extends AbstractContainerScreen<AbstractContainerMenu> {
- public MixinEffectRenderingInventoryScreen(AbstractContainerMenu menu, Inventory inventory, Component component) {
- super(menu, inventory, component);
- }
+@Mixin(EffectsInInventory.class)
+public abstract class MixinEffectsInInventory {
+ @Shadow
+ @Final
+ private AbstractContainerScreen<?> screen;
@Unique
private boolean leftSideEffects() {
@@ -46,19 +45,19 @@ public abstract class MixinEffectRenderingInventoryScreen extends AbstractContai
}
@ModifyVariable(method = "renderEffects",
- at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;getActiveEffects()Ljava/util/Collection;", ordinal = 0),
- ordinal = 2) // 3rd int
+ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;getActiveEffects()Ljava/util/Collection;", ordinal = 0),
+ ordinal = 2) // 3rd int
public int modifyK(int k) {
if (!leftSideEffects()) return k;
- boolean bl = this.leftPos >= 120;
- return bl ? this.leftPos - 120 - 4 : this.leftPos - 32 - 4;
+ boolean bl = this.screen.leftPos >= 120;
+ return bl ? this.screen.leftPos - 120 - 4 : this.screen.leftPos - 32 - 4;
}
@ModifyVariable(method = "renderEffects",
- at = @At(value = "INVOKE", target = "Lcom/google/common/collect/Ordering;sortedCopy(Ljava/lang/Iterable;)Ljava/util/List;", ordinal = 0),
- ordinal = 0) // 1st bool
+ at = @At(value = "INVOKE", target = "Lcom/google/common/collect/Ordering;sortedCopy(Ljava/lang/Iterable;)Ljava/util/List;", ordinal = 0),
+ ordinal = 0) // 1st bool
public boolean modifyBl(boolean bl) {
if (!leftSideEffects()) return bl;
- return this.leftPos >= 120;
+ return this.screen.leftPos >= 120;
}
}
diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinRecipeToast.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinRecipeToast.java
index fd8a6a12c..8c462b86d 100644
--- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinRecipeToast.java
+++ b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinRecipeToast.java
@@ -25,8 +25,8 @@ package me.shedaniel.rei.mixin.fabric;
import me.shedaniel.rei.api.client.config.ConfigObject;
import net.minecraft.client.gui.components.toasts.RecipeToast;
-import net.minecraft.client.gui.components.toasts.ToastComponent;
-import net.minecraft.world.item.crafting.RecipeHolder;
+import net.minecraft.client.gui.components.toasts.ToastManager;
+import net.minecraft.world.item.crafting.display.RecipeDisplay;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
@@ -36,7 +36,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(RecipeToast.class)
public class MixinRecipeToast {
@Inject(method = "addOrUpdate", at = @At("HEAD"), cancellable = true)
- private static void addOrUpdate(ToastComponent toastGui, RecipeHolder<?> recipe, CallbackInfo info) {
+ private static void addOrUpdate(ToastManager toastManager, RecipeDisplay recipeDisplay, CallbackInfo info) {
if (disableRecipeBook()) info.cancel();
}
diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java
index 05b0fa9f8..8255b633a 100644
--- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java
+++ b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagLoader.java
@@ -33,8 +33,10 @@ import me.shedaniel.rei.impl.common.InternalLogger;
import me.shedaniel.rei.plugin.common.displays.tag.TagNodes;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
+import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
+import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.tags.TagEntry;
import net.minecraft.tags.TagLoader;
import org.spongepowered.asm.mixin.Final;
@@ -48,7 +50,15 @@ import java.util.*;
@Mixin(TagLoader.class)
public class MixinTagLoader<T> {
- @Shadow @Final private String directory;
+ @Shadow
+ @Final
+ private String directory;
+
+ @Inject(method = "loadPendingTags", at = @At("HEAD"))
+ private static <T> void loadPendingTags(ResourceManager resourceManager, Registry<T> registry, CallbackInfoReturnable<Optional<Registry.PendingTags<T>>> cir) {
+ ResourceKey<? extends Registry<T>> resourceKey = registry.key();
+ TagNodes.TAG_DIR_MAP.put(Registries.tagsDirPath(resourceKey), resourceKey);
+ }
@Inject(method = "build(Ljava/util/Map;)Ljava/util/Map;", at = @At("HEAD"))
private void load(Map<ResourceLocation, TagLoader.EntryWithSource> map, CallbackInfoReturnable<Map<ResourceLocation, Collection<T>>> cir) {
@@ -67,7 +77,7 @@ public class MixinTagLoader<T> {
TagNodes.TAG_DATA_MAP.put(resourceKey, new HashMap<>());
Map<ResourceLocation, TagNodes.TagData> tagDataMap = TagNodes.TAG_DATA_MAP.get(resourceKey);
if (tagDataMap == null) return;
- Registry<T> registry = ((Registry<Registry<T>>) BuiltInRegistries.REGISTRY).get((ResourceKey<Registry<T>>) resourceKey);
+ Registry<T> registry = ((Registry<Registry<T>>) BuiltInRegistries.REGISTRY).getValue((ResourceKey<Registry<T>>) resourceKey);
Stopwatch stopwatch = Stopwatch.createStarted();
Iterator<Map.Entry<TagNodes.CollectionWrapper<?>, TagNodes.RawTagData>> entryIterator = TagNodes.RAW_TAG_DATA_MAP.getOrDefault(directory, Reference2ObjectMaps.emptyMap())
@@ -87,7 +97,7 @@ public class MixinTagLoader<T> {
TagNodes.RawTagData rawTagData = entry.getValue();
IntList elements = new IntArrayList();
for (ResourceLocation element : rawTagData.otherElements()) {
- T t = registry.get(element);
+ T t = registry.getValue(element);
if (t != null) {
elements.add(registry.getId(t));
}
@@ -100,7 +110,7 @@ public class MixinTagLoader<T> {
InternalLogger.getInstance().debug("Processed %d tags in %s for %s", tagDataMap.size(), stopwatch.stop(), resourceKey.location());
}
- @Inject(method = "build(Lnet/minecraft/tags/TagEntry$Lookup;Ljava/util/List;)Lcom/mojang/datafixers/util/Either;", at = @At("RETURN"))
+ @Inject(method = "tryBuildTag", at = @At("RETURN"))
private void load(TagEntry.Lookup<T> lookup, List<TagLoader.EntryWithSource> entries, CallbackInfoReturnable<Either<Collection<TagLoader.EntryWithSource>, Collection<T>>> cir) {
Collection<T> tag = cir.getReturnValue().right().orElse(null);
if (tag != null) {
@@ -121,7 +131,7 @@ public class MixinTagLoader<T> {
otherTags.add(entry.id);
}
} else {
- T apply = lookup.element(entry.id);
+ T apply = lookup.element(entry.id, entry.required);
if (apply != null) {
otherElements.add(entry.id);
}
diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagManager.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagManager.java
deleted file mode 100644
index c87b2073e..000000000
--- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinTagManager.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * This file is licensed under the MIT License, part of Roughly Enough Items.
- * Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 shedaniel
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package me.shedaniel.rei.mixin.fabric;
-
-import me.shedaniel.rei.plugin.common.displays.tag.TagNodes;
-import net.minecraft.core.Registry;
-import net.minecraft.core.RegistryAccess;
-import net.minecraft.core.registries.Registries;
-import net.minecraft.resources.ResourceKey;
-import net.minecraft.server.packs.resources.ResourceManager;
-import net.minecraft.tags.TagManager;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Executor;
-
-@Mixin(TagManager.class)
-public abstract class MixinTagManager<T> {
- @Inject(method = "createLoader", at = @At("HEAD"))
- private void load(ResourceManager resourceManager, Executor executor, RegistryAccess.RegistryEntry<T> registryEntry, CallbackInfoReturnable<CompletableFuture<TagManager.LoadResult<T>>> cir) {
- ResourceKey<? extends Registry<T>> resourceKey = registryEntry.key();
- TagNodes.TAG_DIR_MAP.put(Registries.tagsDirPath(resourceKey), resourceKey);
- }
-}
diff --git a/fabric/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/fabric/DefaultCraftingDisplayImpl.java b/fabric/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/fabric/DefaultCraftingDisplayImpl.java
deleted file mode 100644
index d985dc64d..000000000
--- a/fabric/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/fabric/DefaultCraftingDisplayImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * This file is licensed under the MIT License, part of Roughly Enough Items.
- * Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 shedaniel
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package me.shedaniel.rei.plugin.common.displays.crafting.fabric;
-
-public class DefaultCraftingDisplayImpl {
- public static void registerPlatformSizeProvider() {
- }
-}