Consistently use Hwid domain object, fix login bypass

Login bypass (skip pin/pic) was broken due to an
inconsistency in hwid format.
This commit is contained in:
P0nk
2021-07-15 23:51:01 +02:00
parent 12a415e3d5
commit 6e6fbf3be7
14 changed files with 183 additions and 227 deletions

View File

@@ -112,20 +112,18 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler {
MapleCharacter player = wserv.getPlayerStorage().getCharacterById(cid);
String remoteHwid;
final Hwid hwid;
if (player == null) {
remoteHwid = MapleSessionCoordinator.getInstance().pickLoginSessionHwid(c);
if (remoteHwid == null) {
hwid = MapleSessionCoordinator.getInstance().pickLoginSessionHwid(c);
if (hwid == null) {
c.disconnect(true, false);
return;
}
} else {
Hwid clientHwid = player.getClient().getHwid();
remoteHwid = clientHwid == null ? null : clientHwid.hwid();
hwid = player.getClient().getHwid();
}
c.setRemoteHwid(remoteHwid);
c.setHwid(new Hwid(remoteHwid));
c.setHwid(hwid);
if (!server.validateCharacteridInTransition(c, cid)) {
c.disconnect(true, false);