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

Crash mc client #24

Closed x1p closed 6 years ago

x1p commented 6 years ago

/dis whatever makes my client crash.

---- Minecraft Crash Report ----
// My bad.

Time: 9-10-18 22:21
Description: Unexpected error

java.lang.NullPointerException: Unexpected error
    at axx.a(SourceFile:942)
    at ctw.a(FogRenderer.java:195)
    at ctw.a(FogRenderer.java:74)
    at ctx.b(EntityRenderer.java:1239)
    at ctx.a(EntityRenderer.java:1216)
    at ctx.a(EntityRenderer.java:978)
    at cfs.c(SourceFile:850)
    at cfs.a(SourceFile:395)
    at net.minecraft.client.main.Main.main(SourceFile:144)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
x1p commented 6 years ago

No errors on the server, nor bungee. Just disconnected.

robingrether commented 6 years ago

Thing is that the Minecraft client's source code is not publicly available. Which means that the error log you posted means about nothing to me.

I need the following information in order to help you:

  1. Which Minecraft version do you use? (server and client)
  2. Do you run CraftBukkit or Spigot?
  3. Which version of iDisguise do you use?
  4. Do you use any of the following: BungeeCord, ProtocolLib, ViaVersion, LibsDisguises (anything similar)
x1p commented 6 years ago

Client: Minecraft 1.13.1 (tried optifine too, same) Server: Paperspigot git-Paper-355 (MC: 1.13.1) (Implementing API version 1.13.1-R0.1-SNAPSHOT) idisguise-full-5.8.1-20181004.131440-55 BungeeCord latest ProtocolLib-421 Viaversion on the bungee. Latest ViaVersion-1.5.3-SNAPSHOT-246 No LibsDisguises.

robingrether commented 6 years ago

Ok, thank you for the information and thanks a lot for the bug report. I will have time to take a look at it tomorrow :)

x1p commented 6 years ago

Funny thing is, my other server runs fine. But this creative has no funny things

robingrether commented 6 years ago

Do you use ProtocolLib and ViaVersion on the other server as well?

x1p commented 6 years ago

Yes

robingrether commented 6 years ago

Ok, that's weird :D

x1p commented 6 years ago

Could it have something to do with plotssquared? Just a wild guess

robingrether commented 6 years ago

I don't think so.

robingrether commented 6 years ago

Would you mind testing iDisguise 5.8.1-SNAPSHOT #57? I hope this snapshot fixes the issue....

x1p commented 6 years ago

Tried both 57 and 58 and it still crashes. When I do /dis cow, the screen goes off for a while. That's also on my other servers. But this time it display's "Saving world" and crashes. If I can provide any details, please let me know.

robingrether commented 6 years ago

Do you use the new feature "disguise.view-self" ?

x1p commented 6 years ago

Yes, it was turned on long time ago

robingrether commented 6 years ago

Would you mind testing #58 with view-self disabled?

x1p commented 6 years ago

No crash. Works instant. So no "turning off the screen for a moment"

robingrether commented 6 years ago

Just a short explanation of what this feature does: It simulates the player changing to another world (that's why the screen is off for a moment) in order to make the Minecraft client rerender the player itself. This is necessary to apply the disguise skin to view one's own disguise.

However, a specific modification is needed to realize player disguises via BungeeCord. This results in view-self having no effect via BungeeCord.

Therefore, I could theoretically try to "fix" this issue. But it would still have no effect since view-self will never work via BungeeCord. (at least not in the way iDisguise realizes this feature)

robingrether commented 6 years ago

Also, disguise.view-self is disabled by default now. (it was enabled by default a few snapshots earlier)

x1p commented 6 years ago

Ah ok. No problem. I would not use dis as a player soon, so I won't miss anything. But I wonder, you speak about disguise via Bungee, but disguise is only on the (paper)spigot server. Should disguise be used on bungee as well, or rather only on bungee?

robingrether commented 6 years ago

iDisguise is a bukkit only plugin. So it won't even load on a Bungee proxy.

iDisguise works by intercepting the packets that are sent between server and client. Bungee does basically the same thing. This results in interference if the two are not coded to work together smoothly.

In the case of iDisguise this means: 1) If you use Bungee, player disguises won't work by default. To make them work enable "disguise.bungee-cord" in the config.yml 2) If you use Bungee, disguise view-self won't work. There is no workaround for this feature however.

x1p commented 6 years ago

Ok. Thanks for explaining things.

robingrether commented 6 years ago

In summary:

If you use Spigot/Bukkit WITHOUT Bungee: 1) Install iDisguise on Spigot/Bukkit 2) Disable "disguise.bungee-cord" (default) 3) Optional: Enable "disguise.view-self"

If you use Spigot/Bukkit WITH Bungee: 1) Install iDisguise on Spigot/Bukkit 2) Enable "disguise.bungee-cord" 3) Disable "disguise.view-self" (default)

iDisguise should work properly then :)

x1p commented 6 years ago

Thanks for the explanation. This makes things much more clear