Closed Cronosus closed 8 years ago
Warez meaning a cracked client? interesting.
The links have rotted so I've no idea why this happens, but it's probably because we internally use the player's UID; if you're playing with a cracked client then you don't have one for us to work with.
It probably shouldn't crash, but...
i tried compile latest version here and looks fixed... just "released" version have this problem.
I'm not quite sure what you mean -- are you saying that if you compile LC yourself (including the coremod) and place it in the client it works, but the version we've compiled doesn't work?
problem was here https://github.com/PC-Logix/LanteaCraft/blob/lc-1.7.10/src/main/java/lc/common/network/LCNetworkController.java#L106
actual version looks like this: https://github.com/PC-Logix/LanteaCraft/blob/master/src/main/java/lc/common/network/LCNetworkController.java#L94
these crashes i already deleted with server, then i can not show it
The actual version you're looking at is the HEAD, which is currently set for the update to 1.8. The current code which we're building is the lc-1.7.0
branch.
The reason the bug exists is because LCNetworkController#players
might not contain the player
being provided to it. In the version you describe as the "actual version" you're seeing a bug; the network player we create must be .shutdown(player);
if it exists. The actual version doesn't do this, which leaves our networking active (though not connected to any actual player!).
A simple call to containsKey
would fix the problem, but, I don't understand why a network player wouldn't have been created since playerConnected
should always guarantee this from Forge.
The reason I'm not sure what is going on in your environment is because:
EntityPlayerMP
has a correct implementation of equals
and hashCode
so it can be used as a key in a HashMap
or a WeakHashMap
type. If this isn't the case, playerConnected
may create a player with XXXX
hashcode but later may identify the same player as ABCD
hashcode.playerConnected
should always be called by ServerEventHooks
, since it's used to see if the LanteaCraft client supports enhanced messaging or not when it first connects to the server. If we don't do this within a certain period of time, the client will stop listening for our handshake.PlayerLoggedInEvent
isn't arriving at LanteaCraft, or, for some reason, the EntityPlayerMP
is being meddled with (either by another mod or by the client).If you can provide fully detailed logs I can probably figure out what is going on and modify LanteaCraft to handle the situation more gracefully (since this isn't a situation I had considered when designing the networking engine), but in no way am I condoning using pirated copies of the game.
ah,.. found it http://cronos.wz.cz/mc/crash-2016-04-01_19.59.52-server.txt ad. server was in Online mode, warez player just tried to login, server crash when was kicked and as i see, sometimes happened with online to,... http://cronos.wz.cz/mc/2016-04-01-4.log
I'm not sure why the player is being disconnected, but the issue looks purely tied to the case where the player disconnects before PlayerLoggedInEvent
can fire for some reason.
yes.. as i say, it was later on server caused, when warez tried to join, but server kicked him before logged
repeated three-times, then i post it here http://cronos.wz.cz/mc/gc/crash-2016-06-12_10.45.38-server.txt
adit, cause found -when someone with warez try to join my server (online-mode) and is kicked, server crashing crash: http://cronos.wz.cz/mc/err/crash-2016-06-15_21.39.15-server.txt log: http://cronos.wz.cz/mc/err/2016-06-15-3.log