From d70b8353a6db5fc5d835af5d662372952703d2fd Mon Sep 17 00:00:00 2001 From: shedaniel Date: Mon, 12 Sep 2022 23:05:35 +0800 Subject: Obfuscate REI Internals --- .../rei/impl/client/gui/credits/CreditsScreen.java | 4 ++-- .../rei/impl/common/plugins/PluginManagerImpl.java | 4 +++- .../rei/impl/common/plugins/PluginReloaderImpl.java | 18 +++++++++++++++--- 3 files changed, 20 insertions(+), 6 deletions(-) (limited to 'runtime-engine') diff --git a/runtime-engine/configs/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java b/runtime-engine/configs/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java index 70834e457..379e6edc2 100644 --- a/runtime-engine/configs/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java +++ b/runtime-engine/configs/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java @@ -36,7 +36,6 @@ import net.minecraft.client.gui.components.AbstractButton; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.resources.language.I18n; -import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; @@ -135,7 +134,8 @@ public class CreditsScreen extends Screen { private static void fillTranslators(Exception[] exception, List>> translators) { try { - Class.forName("me.shedaniel.rei.impl.client.gui.credits.%s.CreditsScreenImpl".formatted(Platform.isForge() ? "forge" : "fabric")) + String s = "me.shedaniel.rei.impl.client.gui.credits.%s.CreditsScreenImpl"; + Class.forName(s.contains("%s") ? s.formatted(Platform.isForge() ? "forge" : "fabric") : s) .getDeclaredMethod("fillTranslators", Exception[].class, List.class) .invoke(null, exception, translators); } catch (IllegalAccessException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException e) { diff --git a/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java b/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java index 7544bdffd..cca94c79e 100644 --- a/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java +++ b/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java @@ -41,6 +41,8 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.function.UnaryOperator; +import static me.shedaniel.rei.impl.common.plugins.PluginReloaderImpl.name; + @ApiStatus.Internal public class PluginManagerImpl

> implements PluginManager

, PluginView

{ private final List> reloadables = new ArrayList<>(); @@ -97,7 +99,7 @@ public class PluginManagerImpl

> implements PluginManager< @Override public void registerPlugin(REIPluginProvider plugin) { plugins.add((REIPluginProvider

) plugin); - InternalLogger.getInstance().info("Registered plugin provider %s for %s", plugin.getPluginProviderName(), PluginReloaderImpl.name(pluginClass)); + InternalLogger.getInstance().info("Registered plugin provider %s for %s", plugin.getPluginProviderName(), name(pluginClass)); } @Override diff --git a/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginReloaderImpl.java b/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginReloaderImpl.java index 312d4e7e4..693969a9e 100644 --- a/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginReloaderImpl.java +++ b/runtime-engine/plugins/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginReloaderImpl.java @@ -283,9 +283,21 @@ public class PluginReloaderImpl

> { } static String name(Class clazz) { - String simpleName = clazz.getSimpleName(); - if (simpleName.isEmpty()) return clazz.getName(); - return simpleName; + for (Class anInterface : clazz.getInterfaces()) { + if (!anInterface.getName().startsWith("me.shedaniel.rei.impl")) { + return _name(anInterface); + } + } + + return _name(clazz); + } + + static String _name(Class clazz) { + String name = clazz.getName(); + if (name.contains(".")) { + name = name.substring(name.lastIndexOf(".") + 1); + } + return name.replace('$', '.'); } public List getObservedStages() { -- cgit