Save gender to PG
This commit is contained in:
@@ -23,30 +23,57 @@
|
||||
package net.server.handlers.login;
|
||||
|
||||
import client.Client;
|
||||
import client.Gender;
|
||||
import net.AbstractPacketHandler;
|
||||
import net.packet.InPacket;
|
||||
import net.server.Server;
|
||||
import net.server.coordinator.session.SessionCoordinator;
|
||||
import service.AccountService;
|
||||
import tools.PacketCreator;
|
||||
|
||||
/**
|
||||
* @author kevintjuh93
|
||||
* @author Ponk
|
||||
*/
|
||||
public class SetGenderHandler extends AbstractPacketHandler {
|
||||
private final AccountService accountService;
|
||||
|
||||
public SetGenderHandler(AccountService accountService) {
|
||||
this.accountService = accountService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePacket(InPacket p, Client c) {
|
||||
if (c.getGender() == Client.NO_GENDER) { //Packet shouldn't come if Gender isn't 10.
|
||||
byte confirmed = p.readByte();
|
||||
if (confirmed == 0x01) {
|
||||
c.setGender(p.readByte());
|
||||
c.sendPacket(PacketCreator.getAuthSuccess(c));
|
||||
|
||||
Server.getInstance().registerLoginState(c);
|
||||
} else {
|
||||
SessionCoordinator.getInstance().closeSession(c, false);
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
}
|
||||
if (c.getGender() != Gender.NOT_SET) { // Packet shouldn't come if Gender isn't 10.
|
||||
close(c);
|
||||
return;
|
||||
}
|
||||
|
||||
byte confirmed = p.readByte();
|
||||
if (confirmed != 0x01) {
|
||||
close(c);
|
||||
return;
|
||||
}
|
||||
|
||||
byte gender = p.readByte();
|
||||
if (gender != Gender.MALE && gender != Gender.FEMALE) {
|
||||
close(c);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!accountService.setGender(c.getAccID(), gender)) {
|
||||
close(c);
|
||||
return;
|
||||
}
|
||||
|
||||
c.setGender(gender);
|
||||
c.sendPacket(PacketCreator.getAuthSuccess(c));
|
||||
Server.getInstance().registerLoginState(c);
|
||||
}
|
||||
|
||||
private void close(Client c) {
|
||||
SessionCoordinator.getInstance().closeSession(c, false);
|
||||
c.updateLoginState(Client.LOGIN_NOTLOGGEDIN);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user