Set in transition on log in, now able to enter the game

The state is not set properly on logout though, so once you log out you can't log back in
This commit is contained in:
P0nk
2024-09-29 08:22:26 +02:00
parent 0bb14e415e
commit da4a467453
13 changed files with 88 additions and 38 deletions

View File

@@ -31,6 +31,7 @@ import net.server.coordinator.session.SessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.TransitionService;
import tools.PacketCreator;
import java.net.InetAddress;
@@ -39,6 +40,12 @@ import java.net.UnknownHostException;
public final class CharSelectedHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(CharSelectedHandler.class);
private final TransitionService transitionService;
public CharSelectedHandler(TransitionService transitionService) {
this.transitionService = transitionService;
}
private static int parseAntiMulticlientError(AntiMulticlientResult res) {
return switch (res) {
case REMOTE_PROCESSING -> 10;
@@ -99,7 +106,7 @@ public final class CharSelectedHandler extends AbstractPacketHandler {
}
server.unregisterLoginState(c);
c.setCharacterOnSessionTransitionState(charId);
transitionService.setInTransition(c, charId);
try {
c.sendPacket(PacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));
@@ -107,4 +114,4 @@ public final class CharSelectedHandler extends AbstractPacketHandler {
e.printStackTrace();
}
}
}
}

View File

@@ -10,6 +10,7 @@ import net.server.coordinator.session.SessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.TransitionService;
import tools.PacketCreator;
import java.net.InetAddress;
@@ -18,6 +19,12 @@ import java.net.UnknownHostException;
public class CharSelectedWithPicHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(CharSelectedWithPicHandler.class);
private final TransitionService transitionService;
public CharSelectedWithPicHandler(TransitionService transitionService) {
this.transitionService = transitionService;
}
private static int parseAntiMulticlientError(AntiMulticlientResult res) {
return switch (res) {
case REMOTE_PROCESSING -> 10;
@@ -80,7 +87,7 @@ public class CharSelectedWithPicHandler extends AbstractPacketHandler {
}
server.unregisterLoginState(c);
c.setCharacterOnSessionTransitionState(charId);
transitionService.setInTransition(c, charId);
try {
c.sendPacket(PacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));

View File

@@ -11,6 +11,7 @@ import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.AccountService;
import service.TransitionService;
import tools.PacketCreator;
import java.net.InetAddress;
@@ -19,10 +20,12 @@ import java.net.UnknownHostException;
public final class RegisterPicHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(RegisterPicHandler.class);
private final TransitionService transitionService;
private final AccountService accountService;
public RegisterPicHandler(AccountService accountService) {
public RegisterPicHandler(AccountService accountService, TransitionService transitionService) {
this.accountService = accountService;
this.transitionService = transitionService;
}
@Override
@@ -81,7 +84,7 @@ public final class RegisterPicHandler extends AbstractPacketHandler {
}
server.unregisterLoginState(c);
c.setCharacterOnSessionTransitionState(charId);
transitionService.setInTransition(c, charId);
try {
c.sendPacket(PacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));

View File

@@ -11,6 +11,7 @@ import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.AccountService;
import service.TransitionService;
import tools.PacketCreator;
import tools.Randomizer;
@@ -21,9 +22,11 @@ public final class ViewAllCharRegisterPicHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(ViewAllCharRegisterPicHandler.class);
private final AccountService accountService;
private final TransitionService transitionService;
public ViewAllCharRegisterPicHandler(AccountService accountService) {
public ViewAllCharRegisterPicHandler(AccountService accountService, TransitionService transitionService) {
this.accountService = accountService;
this.transitionService = transitionService;
}
@Override
@@ -85,7 +88,7 @@ public final class ViewAllCharRegisterPicHandler extends AbstractPacketHandler {
}
server.unregisterLoginState(c);
c.setCharacterOnSessionTransitionState(charId);
transitionService.setInTransition(c, charId);
try {
c.sendPacket(PacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));

View File

@@ -31,6 +31,7 @@ import net.server.coordinator.session.SessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.TransitionService;
import tools.PacketCreator;
import tools.Randomizer;
@@ -40,6 +41,12 @@ import java.net.UnknownHostException;
public final class ViewAllCharSelectedHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(ViewAllCharSelectedHandler.class);
private final TransitionService transitionService;
public ViewAllCharSelectedHandler(TransitionService transitionService) {
this.transitionService = transitionService;
}
private static int parseAntiMulticlientError(AntiMulticlientResult res) {
return switch (res) {
case REMOTE_PROCESSING -> 10;
@@ -110,7 +117,7 @@ public final class ViewAllCharSelectedHandler extends AbstractPacketHandler {
}
server.unregisterLoginState(c);
c.setCharacterOnSessionTransitionState(charId);
transitionService.setInTransition(c, charId);
try {
c.sendPacket(PacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));

View File

@@ -10,6 +10,7 @@ import net.server.coordinator.session.SessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import service.TransitionService;
import tools.PacketCreator;
import tools.Randomizer;
@@ -19,6 +20,12 @@ import java.net.UnknownHostException;
public class ViewAllCharSelectedWithPicHandler extends AbstractPacketHandler {
private static final Logger log = LoggerFactory.getLogger(ViewAllCharSelectedWithPicHandler.class);
private final TransitionService transitionService;
public ViewAllCharSelectedWithPicHandler(TransitionService transitionService) {
this.transitionService = transitionService;
}
private static int parseAntiMulticlientError(AntiMulticlientResult res) {
return switch (res) {
case REMOTE_PROCESSING -> 10;
@@ -86,7 +93,7 @@ public class ViewAllCharSelectedWithPicHandler extends AbstractPacketHandler {
}
server.unregisterLoginState(c);
c.setCharacterOnSessionTransitionState(charId);
transitionService.setInTransition(c, charId);
try {
c.sendPacket(PacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId));