From 457262049d82e2b76dfd101c928a12736156bf10 Mon Sep 17 00:00:00 2001 From: Marc Baloup Date: Mon, 14 Jul 2025 00:16:38 +0200 Subject: [PATCH] Fix some reflection wrapping issues --- .../paper/commands/PaperBrigadierCommand.java | 30 +++++++++---------- .../lib/reflect/wrapper/ReflectWrapper.java | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java index c8f2997..f185324 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java @@ -304,14 +304,8 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand command) { - @SuppressWarnings("unchecked") - fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode wrappedCommandNode = wrap(command, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); - if (wrappedCommandNode.pluginCommandMeta() != null) { - PluginCommandMeta meta = wrappedCommandNode.pluginCommandMeta(); - return "Node /" + command.getName() + " from plugin " + meta.plugin().getName(); - } - else if (BukkitCommandNode.REFLECT.get().isInstance(command)) { + if (BukkitCommandNode.REFLECT.get().isInstance(command)) { BukkitCommandNode wrappedBCN = wrap(command, BukkitCommandNode.class); Command bukkitCmd = wrappedBCN.getBukkitCommand(); if (bukkitCmd instanceof PluginCommand cmd) { @@ -329,18 +323,22 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand wrappedCommandNode = wrap(command, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); + + if (wrappedCommandNode.pluginCommandMeta() != null) { + PluginCommandMeta meta = wrappedCommandNode.pluginCommandMeta(); + return "Node /" + command.getName() + " from plugin " + meta.plugin().getName(); + } + else { + return "Node /" + command.getName() + " (unspecific)"; + } } } private static Boolean isPluginCommand(CommandNode command) { - @SuppressWarnings("unchecked") - fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode wrappedCommandNode = wrap(command, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); - if (wrappedCommandNode.pluginCommandMeta() != null) { - return true; - } - else if (BukkitCommandNode.REFLECT.get().isInstance(command)) { + if (BukkitCommandNode.REFLECT.get().isInstance(command)) { BukkitCommandNode wrappedBCN = wrap(command, BukkitCommandNode.class); Command bukkitCmd = wrappedBCN.getBukkitCommand(); if (bukkitCmd instanceof PluginCommand) { @@ -358,7 +356,9 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand wrappedCommandNode = wrap(command, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); + return wrappedCommandNode.pluginCommandMeta() != null; } } diff --git a/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java b/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java index 1cd4369..b5cf339 100644 --- a/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java +++ b/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java @@ -116,7 +116,7 @@ public abstract class ReflectWrapper implements ReflectWrapperI { } if (expectedWrapperClass != null && !expectedWrapperClass.isAssignableFrom(wrapperClass)) { - throw new ClassCastException("Wrapper class " + wrapperClass + " is not a sub-class or a sub-interface of expected wrapper class" + expectedWrapperClass); + throw new ClassCastException("Wrapper class " + wrapperClass + " is not a sub-class or a sub-interface of expected wrapper class " + expectedWrapperClass); } ReflectConstructor constructor = WrapperRegistry.getWrapperConstructorOfWrapperClass(wrapperClass); if (constructor == null) {