Turnabout on Character stats concurrency + Null remote IP patch
Cleared the concurrency conflicts that started occuring after the abstract character's listener code was set to run on new thread, potentally leading to several onStatChange mishaps. Added a check for remoteHost being possibly null when opening a new session with the client.
This commit is contained in:
@@ -8590,14 +8590,22 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final boolean chrDied = playerDied;
|
||||
Runnable r = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updatePartyMemberHP(); // thanks BHB (BHB88) for detecting a deadlock case within player stats.
|
||||
|
||||
updatePartyMemberHP();
|
||||
|
||||
if (playerDied) {
|
||||
playerDead();
|
||||
} else {
|
||||
checkBerserk(isHidden());
|
||||
}
|
||||
if (chrDied) {
|
||||
playerDead();
|
||||
} else {
|
||||
checkBerserk(isHidden());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
map.registerCharacterStatUpdate(r);
|
||||
}
|
||||
|
||||
private Pair<MapleStat, Integer> calcHpRatioUpdate(int newHp, int oldHp) {
|
||||
|
||||
Reference in New Issue
Block a user