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:
@@ -280,7 +280,7 @@ public final class PacketProcessor {
|
||||
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());
|
||||
registerHandler(RecvOpcode.CHAR_SELECT, new CharSelectedHandler(channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.LOGIN_PASSWORD, new LoginPasswordHandler(channelDeps.accountService(),
|
||||
channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.RELOG, new RelogRequestHandler());
|
||||
@@ -290,15 +290,18 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.CREATE_CHAR, new CreateCharHandler(channelDeps.characterCreator()));
|
||||
registerHandler(RecvOpcode.DELETE_CHAR, new DeleteCharHandler());
|
||||
registerHandler(RecvOpcode.VIEW_ALL_CHAR, new ViewAllCharHandler());
|
||||
registerHandler(RecvOpcode.PICK_ALL_CHAR, new ViewAllCharSelectedHandler());
|
||||
registerHandler(RecvOpcode.PICK_ALL_CHAR, new ViewAllCharSelectedHandler(channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.REGISTER_PIN, new RegisterPinHandler(channelDeps.accountService()));
|
||||
registerHandler(RecvOpcode.GUEST_LOGIN, new GuestLoginHandler());
|
||||
registerHandler(RecvOpcode.REGISTER_PIC, new RegisterPicHandler(channelDeps.accountService()));
|
||||
registerHandler(RecvOpcode.CHAR_SELECT_WITH_PIC, new CharSelectedWithPicHandler());
|
||||
registerHandler(RecvOpcode.REGISTER_PIC, new RegisterPicHandler(channelDeps.accountService(),
|
||||
channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.CHAR_SELECT_WITH_PIC, new CharSelectedWithPicHandler(
|
||||
channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.SET_GENDER, new SetGenderHandler(channelDeps.accountService()));
|
||||
registerHandler(RecvOpcode.VIEW_ALL_WITH_PIC, new ViewAllCharSelectedWithPicHandler());
|
||||
registerHandler(RecvOpcode.VIEW_ALL_WITH_PIC, new ViewAllCharSelectedWithPicHandler(
|
||||
channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.VIEW_ALL_PIC_REGISTER, new ViewAllCharRegisterPicHandler(
|
||||
channelDeps.accountService()));
|
||||
channelDeps.accountService(), channelDeps.transitionService()));
|
||||
}
|
||||
|
||||
private void registerChannelHandlers() {
|
||||
@@ -319,7 +322,7 @@ public final class PacketProcessor {
|
||||
registerHandler(RecvOpcode.MESO_DROP, new MesoDropHandler());
|
||||
registerHandler(RecvOpcode.PLAYER_LOGGEDIN, new PlayerLoggedinHandler(channelDeps.characterLoader(),
|
||||
channelDeps.accountService(), channelDeps.noteService()));
|
||||
registerHandler(RecvOpcode.CHANGE_MAP, new ChangeMapHandler());
|
||||
registerHandler(RecvOpcode.CHANGE_MAP, new ChangeMapHandler(channelDeps.transitionService()));
|
||||
registerHandler(RecvOpcode.MOVE_LIFE, new MoveLifeHandler());
|
||||
registerHandler(RecvOpcode.CLOSE_RANGE_ATTACK, new CloseRangeDamageHandler(channelDeps.dropProvider(), channelDeps.banService()));
|
||||
registerHandler(RecvOpcode.RANGED_ATTACK, new RangedAttackHandler(channelDeps.dropProvider(), channelDeps.banService()));
|
||||
|
||||
@@ -824,12 +824,13 @@ public class Server {
|
||||
CharacterRepository characterRepository = new CharacterRepository();
|
||||
MonsterCardRepository monsterCardRepository = new MonsterCardRepository(connection);
|
||||
CharacterSaver characterSaver = new CharacterSaver(connection, characterRepository, monsterCardRepository);
|
||||
TransitionService transitionService = new TransitionService(characterSaver);
|
||||
AccountService accountService = new AccountService(new AccountRepository(connection));
|
||||
TransitionService transitionService = new TransitionService(characterSaver, accountService);
|
||||
NoteService noteService = new NoteService(new NoteDao(connection));
|
||||
DropProvider dropProvider = new DropProvider(new DropRepository(connection));
|
||||
ShopFactory shopFactory = new ShopFactory(new ShopDao(connection));
|
||||
ChannelDependencies channelDependencies = ChannelDependencies.builder()
|
||||
.accountService(new AccountService(new AccountRepository(connection)))
|
||||
.accountService(accountService)
|
||||
.characterCreator(new CharacterCreator(connection, characterRepository))
|
||||
.characterLoader(new CharacterLoader(monsterCardRepository))
|
||||
.characterSaver(characterSaver)
|
||||
@@ -1631,6 +1632,7 @@ public class Server {
|
||||
return SessionCoordinator.getSessionRemoteHost(client);
|
||||
}
|
||||
|
||||
// Move to TransitionService
|
||||
public void setCharacteridInTransition(Client client, int charId) {
|
||||
String remoteIp = getRemoteHost(client);
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory;
|
||||
import server.Trade;
|
||||
import server.maps.MapleMap;
|
||||
import server.maps.Portal;
|
||||
import service.TransitionService;
|
||||
import tools.PacketCreator;
|
||||
|
||||
import java.awt.*;
|
||||
@@ -45,6 +46,12 @@ import java.net.UnknownHostException;
|
||||
public final class ChangeMapHandler extends AbstractPacketHandler {
|
||||
private static final Logger log = LoggerFactory.getLogger(ChangeMapHandler.class);
|
||||
|
||||
private final TransitionService transitionService;
|
||||
|
||||
public ChangeMapHandler(TransitionService transitionService) {
|
||||
this.transitionService = transitionService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePacket(InPacket p, Client c) {
|
||||
Character chr = c.getPlayer();
|
||||
@@ -188,7 +195,7 @@ public final class ChangeMapHandler extends AbstractPacketHandler {
|
||||
}
|
||||
chr.getCashShop().open(false);
|
||||
|
||||
chr.setSessionTransitionState();
|
||||
transitionService.setInTransition(c, chr.getId());
|
||||
try {
|
||||
c.sendPacket(PacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1])));
|
||||
} catch (UnknownHostException ex) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user