-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
None
-
>version [13:11:35] [Server thread/INFO]: This server is running CraftBukkit version 4369-Spigot-e65d67a-285df6e (MC: 1.21.3) (Implementing API version 1.21.3-R0.1-SNAPSHOT) [13:11:35] [Server thread/INFO]: Checking version, please wait... [13:11:35] [Th
-
Yes
Based on https://github.com/PaperMC/Paper/issues/11562
What I did:
Registered a listener that runs a command as a player when they join the server:
public final class BukkitTestPlugin extends JavaPlugin { @Override public void onEnable() { Bukkit.getPluginManager().registerEvents(new Listener() { @EventHandler public void onPlayerJoin(final PlayerJoinEvent event) { final Player player = event.getPlayer(); Bukkit.dispatchCommand(player, "say Hello World!"); } }, this); } }
Excepted result:{}
On 1.21.1, the command runs as expected:
[13:07:59] [User Authenticator #1/INFO]: UUID of player willkroboth is efff2855-758f-45d6-8a35-8d6fdde5c78c
[13:08:00] [Server thread/INFO]: [Not Secure] [willkroboth] Hello World!
[13:08:00] [Server thread/INFO]: willkroboth joined the game
[13:08:00] [Server thread/INFO]: willkroboth[/127.0.0.1:50752] logged in with entity id 52 at ([world]-29.5, 71.0, 60.5)
>version
[13:08:06] [Server thread/INFO]: This server is running CraftBukkit version 4344-Spigot-a759b62-19bf846 (MC: 1.21.1) (Implementing API version 1.21.1-R0.1-SNAPSHOT)
[13:08:06] [Server thread/INFO]: Checking version, please wait...
[13:08:06] [Thread-8/INFO]: You are 28 version(s) behind
Actual result:
On 1.21.3, an error occurs:
[13:10:49] [User Authenticator #1/INFO]: UUID of player willkroboth is efff2855-758f-45d6-8a35-8d6fdde5c78c [13:10:50] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to BukkitTestPlugin v1.0-SNAPSHOT org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:601) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:588) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at net.minecraft.server.players.PlayerList.a(PlayerList.java:299) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.network.ServerConfigurationPacketListenerImpl.a(ServerConfigurationPacketListenerImpl.java:168) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.a(SourceFile:22) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.network.protocol.configuration.ServerboundFinishConfigurationPacket.a(SourceFile:8) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$ensureRunningOnSameThread$0(PlayerConnectionUtils.java:35) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.TickTask.run(SourceFile:18) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.util.thread.IAsyncTaskHandler.d(SourceFile:164) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(SourceFile:23) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1319) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:210) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.util.thread.IAsyncTaskHandler.B(SourceFile:138) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.bv(MinecraftServer.java:1298) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.B(MinecraftServer.java:1291) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.util.thread.IAsyncTaskHandler.b(SourceFile:147) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1248) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.x_(MinecraftServer.java:1258) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.y(MinecraftServer.java:1101) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] Caused by: org.bukkit.command.CommandException: Unhandled exception executing 'say Hello World!' in org.bukkit.craftbukkit.v1_21_R2.command.VanillaCommandWrapper(say) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:157) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_21_R2.CraftServer.dispatchCommand(CraftServer.java:925) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at org.bukkit.Bukkit.dispatchCommand(Bukkit.java:921) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at me.willkroboth.bukkitTestPlugin.BukkitTestPlugin$1.onPlayerJoin(BukkitTestPlugin.java:18) ~[?:?] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] ... 22 more Caused by: java.lang.UnsupportedOperationException: Not supported yet. at net.minecraft.commands.ICommandListener$1.getBukkitSender(ICommandListener.java:29) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.commands.CommandListenerWrapper.getBukkitSender(CommandListenerWrapper.java:423) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.commands.CommandListenerWrapper.hasPermission(CommandListenerWrapper.java:190) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.commands.CommandListenerWrapper.c(CommandListenerWrapper.java:180) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at net.minecraft.server.commands.CommandSay.a(SourceFile:18) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at com.mojang.brigadier.tree.CommandNode.canUse(CommandNode.java:79) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at com.mojang.brigadier.CommandDispatcher.parseNodes(CommandDispatcher.java:302) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:?] at com.mojang.brigadier.CommandDispatcher.parse(CommandDispatcher.java:292) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:?] at com.mojang.brigadier.CommandDispatcher.parse(CommandDispatcher.java:260) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:?] at net.minecraft.commands.CommandDispatcher.performPrefixedCommand(CommandDispatcher.java:323) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at org.bukkit.craftbukkit.v1_21_R2.command.VanillaCommandWrapper.execute(VanillaCommandWrapper.java:43) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:150) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_21_R2.CraftServer.dispatchCommand(CraftServer.java:925) ~[spigot-1.21.3-R0.1-SNAPSHOT.jar:4369-Spigot-e65d67a-285df6e] at org.bukkit.Bukkit.dispatchCommand(Bukkit.java:921) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] at me.willkroboth.bukkitTestPlugin.BukkitTestPlugin$1.onPlayerJoin(BukkitTestPlugin.java:18) ~[?:?] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-api-1.21.3-R0.1-SNAPSHOT.jar:?] ... 22 more [13:10:50] [Server thread/INFO]: willkroboth joined the game [13:10:50] [Server thread/INFO]: willkroboth[/127.0.0.1:47944] logged in with entity id 107 at ([world]-29.5, 71.0, 60.5) >version [13:11:35] [Server thread/INFO]: This server is running CraftBukkit version 4369-Spigot-e65d67a-285df6e (MC: 1.21.3) (Implementing API version 1.21.3-R0.1-SNAPSHOT) [13:11:35] [Server thread/INFO]: Checking version, please wait... [13:11:35] [Thread-9/INFO]: You are running the latest version
The same error occurs using `Player#performCommand` (which is the method used in the Paper issue), which makes sense since it looks like it just calls `dispatchCommand`.
- relates to
-
SPIGOT-7948 `Bukkit#dispatchCommand` uses the wrong `CommandListenerWrapper` for Players
- Resolved