Log out through AccountService

This commit is contained in:
P0nk
2024-09-28 07:22:30 +02:00
parent 93bbe868cb
commit 55c9d4abbb
7 changed files with 81 additions and 21 deletions

View File

@@ -277,7 +277,7 @@ public final class PacketProcessor {
private void registerLoginHandlers() {
registerHandler(RecvOpcode.ACCEPT_TOS, new AcceptToSHandler(channelDeps.accountService()));
registerHandler(RecvOpcode.AFTER_LOGIN, new AfterLoginHandler());
registerHandler(RecvOpcode.AFTER_LOGIN, new AfterLoginHandler(channelDeps.accountService()));
registerHandler(RecvOpcode.SERVERLIST_REREQUEST, new ServerlistRequestHandler());
registerHandler(RecvOpcode.CHARLIST_REQUEST, new CharlistRequestHandler());
registerHandler(RecvOpcode.CHAR_SELECT, new CharSelectedHandler());

View File

@@ -22,13 +22,17 @@
package net.server.handlers.login;
import client.Client;
import client.LoginState;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import net.server.coordinator.session.SessionCoordinator;
import service.AccountService;
import tools.PacketCreator;
public final class AfterLoginHandler extends AbstractPacketHandler {
private final AccountService accountService;
public AfterLoginHandler(final AccountService accountService) {
this.accountService = accountService;
}
@Override
public final void handlePacket(InPacket p, Client c) {
@@ -58,8 +62,7 @@ public final class AfterLoginHandler extends AbstractPacketHandler {
c.sendPacket(PacketCreator.requestPinAfterFailure());
}
} else if (c2 == 0 && c3 == 5) {
SessionCoordinator.getInstance().closeSession(c, false);
c.updateLoginState(LoginState.NOT_LOGGED_IN);
accountService.logOut(c);
}
}
}

View File

@@ -22,10 +22,8 @@
package net.server.handlers.login;
import client.Client;
import client.LoginState;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import net.server.coordinator.session.SessionCoordinator;
import service.AccountService;
import tools.PacketCreator;
@@ -44,8 +42,7 @@ public final class RegisterPinHandler extends AbstractPacketHandler {
public void handlePacket(InPacket p, Client c) {
boolean cancel = p.readByte() == 0;
if (cancel) {
SessionCoordinator.getInstance().closeSession(c, false);
c.updateLoginState(LoginState.NOT_LOGGED_IN);
accountService.logOut(c);
return;
}
@@ -54,7 +51,6 @@ public final class RegisterPinHandler extends AbstractPacketHandler {
c.setPin(pin);
c.sendPacket(PacketCreator.pinRegistered());
SessionCoordinator.getInstance().closeSession(c, false);
c.updateLoginState(LoginState.NOT_LOGGED_IN);
accountService.logOut(c);
}
}

View File

@@ -24,11 +24,9 @@ package net.server.handlers.login;
import client.Client;
import client.Gender;
import client.LoginState;
import net.AbstractPacketHandler;
import net.packet.InPacket;
import net.server.Server;
import net.server.coordinator.session.SessionCoordinator;
import service.AccountService;
import tools.PacketCreator;
@@ -46,24 +44,24 @@ public class SetGenderHandler extends AbstractPacketHandler {
@Override
public void handlePacket(InPacket p, Client c) {
if (c.getGender() != Gender.NOT_SET) { // Packet shouldn't come if Gender isn't 10.
close(c);
logOut(c);
return;
}
byte confirmed = p.readByte();
if (confirmed != 0x01) {
close(c);
logOut(c);
return;
}
byte gender = p.readByte();
if (gender != Gender.MALE && gender != Gender.FEMALE) {
close(c);
logOut(c);
return;
}
if (!accountService.setGender(c.getAccID(), gender)) {
close(c);
logOut(c);
return;
}
@@ -72,9 +70,8 @@ public class SetGenderHandler extends AbstractPacketHandler {
Server.getInstance().registerLoginState(c);
}
private void close(Client c) {
SessionCoordinator.getInstance().closeSession(c, false);
c.updateLoginState(LoginState.NOT_LOGGED_IN);
private void logOut(Client c) {
accountService.logOut(c);
}
}