Error when executing the "/logout" command for the first time.
Qveshn opened this issue · 3 comments
Error when executing the /logout
command for the first time after starting the server.
Terms used below:
bungee-server - BungeeCord-1598 with AuthMeBungee-2.2.0-beta1
authme-server - spigot-1.17.1-3221 with AuthMe-5.6.0-beta2 (AuthMeReloaded) + ProtocolLib-4.7.0-b529.jar
Test case:
- START bungee-server => OK
- START authme-server => OK
- the player connects to bungee-server -> authme-server => OK
/login
=> OK/logout
=> ERROR (this is the first time the command is executed after starting the server)
[02:06:07] [Server thread/INFO]: player issued server command: /logout
[02:06:07] [Server thread/WARN]: java.lang.NoSuchMethodException: java.util.Arrays$ArrayList.<init>()
[02:06:07] [Server thread/WARN]: at java.base/java.lang.Class.getConstructor0(Class.java:3517)
[02:06:07] [Server thread/WARN]: at java.base/java.lang.Class.getConstructor(Class.java:2238)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372)
[02:06:07] [Server thread/WARN]: at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345)
[02:06:07] [Server thread/WARN]: at fr.xephi.authme.listener.protocollib.InventoryPacketAdapter.sendBlankInventoryPacket(InventoryPacketAdapter.java:114)
[02:06:07] [Server thread/WARN]: at fr.xephi.authme.listener.protocollib.ProtocolLibService.sendBlankInventoryPacket(ProtocolLibService.java:113)
[02:06:07] [Server thread/WARN]: at fr.xephi.authme.process.logout.ProcessSyncPlayerLogout.processSyncLogout(ProcessSyncPlayerLogout.java:57)
[02:06:07] [Server thread/WARN]: at fr.xephi.authme.process.SyncProcessManager.lambda$processSyncPlayerLogout$2(SyncProcessManager.java:48)
[02:06:07] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:82)
[02:06:07] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:415)
[02:06:07] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1269)
[02:06:07] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:438)
[02:06:07] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1217)
[02:06:07] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1050)
[02:06:07] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:305)
[02:06:07] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:831)
[02:06:07] [Server thread/INFO]: [AuthMe] player logged out
- continue:
/login
,/logout
, ...,/login
,/logout
=> OK - player is disconnected => OK
- STOP and START authme-server => OK
- player joins bungee-server -> authme-server => OK
/login
=> OK/logout
=> ERROR (the same error as above)- continue:
/login
,/logout
, ...,/login
,/logout
=> OK
@Qveshn which version of ProtocolLib are you using? (Please include the build number)
Sorry, forgot... now added this to the description
ProtocolLib-4.7.0.jar
https://www.spigotmc.org/threads/protocollib.36230/
direct link https://www.spigotmc.org/resources/protocollib.1997/download?version=408253
or
github https://github.com/dmulloy2/ProtocolLib/releases/tag/4.7.0
direct link https://github.com/dmulloy2/ProtocolLib/releases/download/4.7.0/ProtocolLib.jar
Both files have the same bytes when compared
There is some problems with build number... I did not use dev-build versions
ATM https://ci.dmulloy2.net/job/ProtocolLib/ has last dev-build number 531, but I use version under section "recomended versions" v4.7.0. Url goes to github (as above one). And I use it (v4.7.0).
Just compared 10 last dev builds with github one, When comparing bytes, no devbuild version matches the github version =\
...
Сompared in more detail. Found a devbuild version corresponding to what is on github/spigot. - 529.
All files in jar are equal except two maven files:
META-INF\maven\com.comphenix.protocol\ProtocolLib\pom.properties
META-INF\maven\com.comphenix.protocol\ProtocolLib\pom.xml
Difference is only in end-of-line chars (CRLF vs LF)
Should I try to use last devbuild version 4.7.1-SNAPSHOT-b531 ?
... I will test last dev build version tonight
PS. As I understood, looking at the source codes, the exception occurs during the update of the player's inventory (probably deleting the previously given item after login). I also noticed that in 1.17.1 the "Window Items" packet format has changed compared to 1.17
1.17.1: https://wiki.vg/index.php?title=Protocol&oldid=16918#Window_Items
1.17: https://wiki.vg/index.php?title=Protocol&oldid=16866#Window_Items
on 10 Jul