diff options
Diffstat (limited to 'runtime/src')
3 files changed, 19 insertions, 5 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java index 8acb6c09e..6b97c8514 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java @@ -227,7 +227,8 @@ public class ClientHelperImpl implements ClientHelper { Minecraft.getInstance().player.displayClientMessage(Component.translatable("text.rei.too_long_nbt"), false); } try { - Class.forName("me.shedaniel.rei.impl.client.%s.CommandSenderImpl".formatted(Platform.isForge() ? "forge" : "fabric")) + String s = "me.shedaniel.rei.impl.client.%s.CommandSenderImpl"; + Class.forName(s.contains("%s") ? s.formatted(Platform.isForge() ? "forge" : "fabric") : s) .getDeclaredMethod("sendCommand", String.class) .invoke(null, StringUtils.removeStart(madeUpCommand, "/")); } catch (IllegalAccessException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException e) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java index 830bcae36..13ba4db46 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java @@ -131,7 +131,8 @@ public class CreditsScreen extends Screen { private static void fillTranslators(Exception[] exception, List<Tuple<String, List<TranslatorEntry>>> 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/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java index 1264b9abf..54342abdf 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java @@ -269,9 +269,21 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager< } private 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); + } + + private static String _name(Class<?> clazz) { + String name = clazz.getName(); + if (name.contains(".")) { + name = name.substring(name.lastIndexOf(".") + 1); + } + return name.replace('$', '.'); } @Override |
