diff options
Diffstat (limited to 'fabric/src/main/java')
| -rw-r--r-- | fabric/src/main/java/me/shedaniel/rei/fabric/PluginDetectorImpl.java | 25 | ||||
| -rw-r--r-- | fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java | 2 | ||||
| -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.java | 4 | ||||
| -rw-r--r-- | fabric/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/fabric/DefaultCraftingDisplayImpl.java | 3 |
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() { } } |
