robingrether / iDisguise

Plugin for CraftBukkit and Spigot
https://www.spigotmc.org/resources/idisguise.5509/
Creative Commons Attribution Share Alike 4.0 International
20 stars 28 forks source link

Some minor bugs with the new 5.7.1 #18

Closed Sandukhan closed 6 years ago

Sandukhan commented 6 years ago

Hi, i took a quick look at the new 5.7.1 version (Spigot 1.12.2) of iDisguise and found some minor bugs, not sure you already aware of.

First: Error message during server start

[09:39:06 WARN]: [iDisguise] Update checking failed: ArrayIndexOutOfBoundsException

Second: Disguising a entity like a mob into a player, add a emty slot to the tablist. This emty slot stayes even after killing or undisguising that mob.

Third: A NullPointerException while trying to disguise a not existent entity (mob) or an entity that cannot be disguised, like an item on the floor?

[09:53:43 INFO]: LordSandukhan issued server command: /odis [1444] player Umbrax

org.bukkit.command.CommandException: Unhandled exception executing command 'odis' in plugin iDisguise v5.7.1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648) ~[spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1397) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1232) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_144] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_144] at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot_server.jar:git-Spigot-c5afb9f-21d5f75] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] Caused by: java.lang.NullPointerException at de.robingrether.idisguise.management.DisguiseManager.disguise(DisguiseManager.java:53) ~[?:?] at de.robingrether.idisguise.iDisguise.onCommand(iDisguise.java:294) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot_server.jar:git-Spigot-c5afb9f-21d5f75] ... 15 more

Sandukhan commented 6 years ago

Well i found another bigger issue with nocheatplus and idisguise, its actuly crashing minecraft clients.

serverside: https://pastebin.com/VzcMn7Wz

clientside: https://pastebin.com/d3Xk9t5B

robingrether commented 6 years ago

Would you mind testing iDisguise 5.7.2-SNAPSHOT #1? It should fix the problems...

Sandukhan commented 6 years ago

I did another testrun, but even with the new version its still crashing mc clients.

https://pastebin.com/VTd0SBcM

Also killed or undisguised mobs stay in the tablist, at least in bungeecord with bungeetablistplus. However i did enable bungee-cord option via config. bungee-cord: true

robingrether commented 6 years ago

When the client crash happened, what kind of mob did you disguise into which disguise type?

(It's very hard to guess it from the error message since the Minecraft client is obfuscated.)

Sandukhan commented 6 years ago

i was disguised as a baby llama, but im not sure how many other mobtypes could have been involved. (Happend to diffrent players on my server) Normaly i get a client error after joining the server and a crash a couple of minutes later.

FatherWh0 commented 6 years ago

I have be experiencing the same client-side crash when a disguised player teleports to another player, however I am not running nocheatplus or any other anticheat plugin. This is happening with iDisguise 5.7.1 and paper server 1.12.2 build 1416. This is happening on both of my servers with players disguised as baby priest villager, stray, skeleton, wither, enderman and numerous other mob types. It doesn't appear to matter which mob type. https://hastebin.com/yevusiqijo.md

robingrether commented 6 years ago

I can reproduce the client crash on my local server, too. It happens whenever a player joins the server already disguised as a mob (doesn't matter which type).

However I wasn't able to find the cause of this behavior in the source code... for now the only fix is to use the old version 5.6.4

FatherWh0 commented 6 years ago

It happened when I joined the server undisguised but I think we just discovered your tp has to cross worlds to crash the client. Yes, for now we're rolling back to 5.6.4.

Sandukhan commented 6 years ago

According to the client some wrong soundvalues are causing the trouble, maybe you should stay with the old sounds of 5.6.4 for now?

robingrether commented 6 years ago

As far as my understanding of the problem is at the moment, the sound problems only caused those error messages from NoCheatPlus. They are not involved in the client crashes.

(Besides that, the sound problems should technically be fixed in 5.7.2-SNAPSHOT 1)

robingrether commented 6 years ago

I will do my best in investigating and fixing the client crashes as soon as possible... however I don't have too much time currently

Sandukhan commented 6 years ago

The sound error messages were also client side and still occur with the new snapshot, nocheat was server side and fine at that point.

After switching from 5.7.1 to 5.6.4 i dont got any client side errors.

[15:33:09] [Client thread/INFO]: [CHAT] You have joined vanished. To appear: /vanish [15:33:09] [Client thread/INFO]: [CHAT] LordSandukhan has joined vanished and silently [15:33:09] [Client thread/FATAL]: Error executing task java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Default value cannot be lower than minimum value! at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_74] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_74] at h.a(SourceFile:47) [1.12.2.jar:?] at bib.az(SourceFile:991) [1.12.2.jar:?] at bib.a(SourceFile:419) [1.12.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:123) [1.12.2.jar:?] Caused by: java.lang.IllegalArgumentException: Default value cannot be lower than minimum value! at wj.(SourceFile:21) ~[1.12.2.jar:?] at brz.a(SourceFile:1744) ~[1.12.2.jar:?] at kv.a(SourceFile:70) ~[1.12.2.jar:?] at kv.a(SourceFile:15) ~[1.12.2.jar:?] at hv$1.run(SourceFile:13) ~[1.12.2.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_74] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_74] at h.a(SourceFile:46) ~[1.12.2.jar:?] ... 3 more

robingrether commented 6 years ago

No, there are no client-side sound problems. I analysed the crash reports and they are caused by invalid entity metadata sent to the clients... I guess, I will be able to fix the problem within the next 24 hours.

robingrether commented 6 years ago

The problem should be fixed now: iDisguise 5.7.2-SNAPSHOT #6

I will publish release 5.7.2 within the next hours :)

robingrether commented 6 years ago

The bug fixing release (5.7.2) is published: https://www.spigotmc.org/resources/idisguise.5509/

robingrether commented 6 years ago

All issues (including the player list) should be fixed now (version 5.7.3).