aboutsummaryrefslogtreecommitdiff
path: root/fabric/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'fabric/src/main/java')
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java25
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java2
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/TooltipRendererImpl.java (renamed from fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplFabric.java)28
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinClientPacketListener.java4
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/fabric/DefaultCraftingDisplayImpl.java3
5 files changed, 28 insertions, 34 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 b4c410f00..a355183c3 100644
--- a/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java
+++ b/fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java
@@ -23,28 +23,20 @@
package me.shedaniel.rei.fabric;
-import com.google.common.base.Suppliers;
import dev.architectury.platform.Platform;
import dev.architectury.utils.Env;
import me.shedaniel.rei.RoughlyEnoughItemsState;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.common.plugins.*;
-import me.shedaniel.rei.impl.ClientInternals;
import me.shedaniel.rei.impl.init.PluginDetector;
import me.shedaniel.rei.impl.init.PrimitivePlatformAdapter;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
-import net.minecraft.client.gui.screens.Screen;
-import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
-import net.minecraft.world.inventory.tooltip.TooltipComponent;
import org.apache.commons.lang3.tuple.Pair;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.*;
-import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -144,23 +136,6 @@ public class PluginDetectorImpl implements PluginDetector {
public Supplier<Runnable> detectClientPlugins() {
return () -> () -> {
loadPlugin(REIClientPlugin.class, ((PluginView<REIClientPlugin>) PluginManager.getClientInstance())::registerPlugin);
- Supplier<Method> method = Suppliers.memoize(() -> {
- String methodName = FabricLoader.getInstance().getMappingResolver().mapMethodName("intermediary", "net.minecraft.class_437", "method_32635", "(Ljava/util/List;Lnet/minecraft/class_5632;)V");
- try {
- Method declaredMethod = Screen.class.getDeclaredMethod(methodName, List.class, TooltipComponent.class);
- if (declaredMethod != null) declaredMethod.setAccessible(true);
- return declaredMethod;
- } catch (NoSuchMethodException e) {
- throw new RuntimeException(e);
- }
- });
- ClientInternals.attachInstance((BiConsumer<List<ClientTooltipComponent>, TooltipComponent>) (lines, component) -> {
- try {
- method.get().invoke(null, lines, component);
- } catch (IllegalAccessException | InvocationTargetException e) {
- throw new RuntimeException(e);
- }
- }, "clientTooltipComponentProvider");
};
}
}
diff --git a/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java b/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java
index f148272e0..82425b64b 100644
--- a/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java
+++ b/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java
@@ -27,6 +27,7 @@ import com.google.common.collect.Lists;
import me.shedaniel.rei.impl.client.gui.credits.CreditsScreen;
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.metadata.CustomValue;
+import net.minecraft.obfuscate.DontObfuscate;
import net.minecraft.util.Tuple;
import java.util.Comparator;
@@ -34,6 +35,7 @@ import java.util.List;
import java.util.stream.Collectors;
public class CreditsScreenImpl {
+ @DontObfuscate
public static void fillTranslators(Exception[] exception, List<Tuple<String, List<CreditsScreen.TranslatorEntry>>> translators) {
FabricLoader.getInstance().getModContainer("roughlyenoughitems").ifPresent(rei -> {
try {
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/TooltipRendererImpl.java
index 9c2ba36f3..df7fdaddb 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/TooltipRendererImpl.java
@@ -23,11 +23,12 @@
package me.shedaniel.rei.impl.client.gui.fabric;
+import com.google.common.base.Suppliers;
import com.mojang.blaze3d.vertex.PoseStack;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
-import me.shedaniel.rei.impl.ClientInternals;
-import me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl;
-import me.shedaniel.rei.impl.client.gui.widget.QueuedTooltip;
+import me.shedaniel.rei.impl.client.gui.widget.TooltipImpl;
+import me.shedaniel.rei.impl.client.provider.TooltipRenderer;
+import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
@@ -37,13 +38,26 @@ import net.minecraft.network.chat.Style;
import net.minecraft.util.FormattedCharSequence;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
+import java.lang.reflect.Method;
import java.util.List;
+import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-public class ScreenOverlayImplFabric extends ScreenOverlayImpl {
+public class TooltipRendererImpl implements TooltipRenderer {
+ private final Supplier<Method> method = Suppliers.memoize(() -> {
+ String methodName = FabricLoader.getInstance().getMappingResolver().mapMethodName("intermediary", "net.minecraft.class_437", "method_32635", "(Ljava/util/List;Lnet/minecraft/class_5632;)V");
+ try {
+ Method declaredMethod = Screen.class.getDeclaredMethod(methodName, List.class, TooltipComponent.class);
+ if (declaredMethod != null) declaredMethod.setAccessible(true);
+ return declaredMethod;
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
@Override
- public void renderTooltipInner(Screen screen, PoseStack matrices, Tooltip tooltip, int mouseX, int mouseY) {
+ public void renderTooltip(Screen screen, PoseStack matrices, Tooltip tooltip, int mouseX, int mouseY) {
List<ClientTooltipComponent> lines = tooltip.entries().stream()
.flatMap(component -> {
if (component.isText()) {
@@ -51,7 +65,7 @@ public class ScreenOverlayImplFabric extends ScreenOverlayImpl {
Stream<FormattedCharSequence> sequenceStream = texts.isEmpty() ? Stream.of(component.getAsText().getVisualOrderText())
: texts.stream().map(Language.getInstance()::getVisualOrder);
return sequenceStream.map(ClientTooltipComponent::create);
- } else if (((QueuedTooltip.TooltipEntryImpl) component).isClientComponent()) {
+ } else if (((TooltipImpl.TooltipEntryImpl) component).isClientComponent()) {
return Stream.of(component.getAsComponent());
} else {
return Stream.empty();
@@ -65,7 +79,7 @@ public class ScreenOverlayImplFabric extends ScreenOverlayImpl {
if (component instanceof ClientTooltipComponent) break;
try {
- ClientInternals.getClientTooltipComponent(lines, component);
+ method.get().invoke(lines, component);
} catch (Throwable exception) {
throw new IllegalArgumentException("Failed to add tooltip component! " + component + ", Class: " + (component == null ? null : component.getClass().getCanonicalName()), exception);
}
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 c98edb2c9..63ff50dec 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
@@ -23,7 +23,7 @@
package me.shedaniel.rei.mixin.fabric;
-import me.shedaniel.rei.RoughlyEnoughItemsCoreClient;
+import me.shedaniel.rei.impl.client.init.CoreClientInitialization;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.network.protocol.game.ClientboundUpdateRecipesPacket;
import net.minecraft.world.item.crafting.RecipeManager;
@@ -40,6 +40,6 @@ public class MixinClientPacketListener {
@Inject(method = "handleUpdateRecipes", at = @At("HEAD"))
private void handleUpdateRecipes(ClientboundUpdateRecipesPacket clientboundUpdateRecipesPacket, CallbackInfo ci) {
- RoughlyEnoughItemsCoreClient.PRE_UPDATE_RECIPES.invoker().update(recipeManager);
+ CoreClientInitialization.PRE_UPDATE_RECIPES.invoker().update(recipeManager);
}
} \ No newline at end of file
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
index 60dff699b..06faa9f47 100644
--- 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
@@ -23,7 +23,10 @@
package me.shedaniel.rei.plugin.common.displays.crafting.fabric;
+import net.minecraft.obfuscate.DontObfuscate;
+
public class DefaultCraftingDisplayImpl {
+ @DontObfuscate
public static void registerPlatformSizeProvider() {
}
}