From 2f3079faac92a1700583e5ff4fe88ea21d4e27ed Mon Sep 17 00:00:00 2001 From: Aki Goto Date: Mon, 1 Jan 2024 21:51:21 +0900 Subject: [PATCH] refactor server --- .../org/kareha/hareka/client/Session.java | 10 ++-- .../org/kareha/hareka/server/Context.java | 10 ++-- .../java/org/kareha/hareka/server/Main.java | 4 +- .../org/kareha/hareka/server/MainFrame.java | 4 +- .../java/org/kareha/hareka/server/Saver.java | 15 +++++- .../kareha/hareka/server/ServerConstants.java | 7 +-- .../org/kareha/hareka/server/Starter.java | 11 ++-- .../hareka/server/external/Sessions.java | 52 ------------------- .../org/kareha/hareka/server/game/Player.java | 2 +- .../server/handler/AddDownstairsHandler.java | 2 +- .../server/handler/AddGatePairHandler.java | 2 +- .../server/handler/AddUpstairsHandler.java | 2 +- .../server/handler/AutopilotHandler.java | 2 +- .../server/handler/CancelPowHandler.java | 2 +- .../server/handler/CancelTokenHandler.java | 2 +- .../server/handler/ChangeNameHandler.java | 2 +- .../hareka/server/handler/CommandHandler.java | 2 +- .../handler/ConsumeRoleTokenHandler.java | 2 +- .../server/handler/DefineRoleHandler.java | 2 +- .../handler/DeleteCharacterHandler.java | 2 +- .../server/handler/DeleteItemHandler.java | 2 +- .../handler/DeleteRoleTokenHandler.java | 2 +- .../server/handler/DiceChoiceHandler.java | 2 +- .../server/handler/DiceTokenHandler.java | 2 +- .../server/handler/DrawLineHandler.java | 2 +- .../server/handler/DrawRingHandler.java | 2 +- .../server/handler/DropItemHandler.java | 2 +- .../server/handler/FillRangeHandler.java | 2 +- .../handler/GenerateTerrainHandler.java | 2 +- .../handler/GetPlacementRecordHandler.java | 2 +- .../handler/InspectChatEntityHandler.java | 2 +- .../handler/InspectFieldEntityHandler.java | 2 +- .../handler/IssueInvitationTokenHandler.java | 2 +- .../server/handler/IssueRoleTokenHandler.java | 2 +- .../server/handler/LocalChatHandler.java | 2 +- .../hareka/server/handler/LocaleHandler.java | 2 +- .../server/handler/LoginCharacterHandler.java | 2 +- .../server/handler/LoginUserHandler.java | 2 +- .../handler/LogoutCharacterHandler.java | 2 +- .../server/handler/LogoutUserHandler.java | 2 +- .../hareka/server/handler/MoveHandler.java | 2 +- .../server/handler/NewCharacterHandler.java | 2 +- .../server/handler/NewFieldHandler.java | 2 +- .../server/handler/NoPublicKeyHandler.java | 2 +- .../hareka/server/handler/PowHandler.java | 2 +- .../server/handler/PrivateChatHandler.java | 2 +- .../server/handler/PublicKeyHandler.java | 2 +- .../hareka/server/handler/RebootHandler.java | 2 +- .../ReduceToBackgroundTilesHandler.java | 2 +- .../server/handler/RemoveOrphansHandler.java | 2 +- .../handler/RemoveSpecialTileHandler.java | 2 +- .../server/handler/RequestEchoHandler.java | 2 +- .../server/handler/RequestMyRolesHandler.java | 2 +- .../handler/RequestPublicKeyHandler.java | 2 +- .../handler/RequestRegionListHandler.java | 2 +- .../handler/RequestRoleListHandler.java | 2 +- .../handler/RequestRoleTokenListHandler.java | 2 +- .../handler/RequestSettingsHandler.java | 2 +- .../hareka/server/handler/SaveHandler.java | 2 +- .../handler/SetDefaultTilePatternHandler.java | 2 +- .../hareka/server/handler/SetMarkHandler.java | 2 +- .../server/handler/SetRegionListHandler.java | 2 +- .../SetRescueMethodsEnabledHandler.java | 2 +- .../SetUserRegistrationModeHandler.java | 2 +- .../server/handler/ShutdownHandler.java | 2 +- .../handler/TeleportToCenterHandler.java | 2 +- .../TeleportToPlacementRecordHandler.java | 2 +- .../hareka/server/handler/TileHandler.java | 2 +- .../hareka/server/handler/TokenHandler.java | 2 +- .../server/handler/UndefineRoleHandler.java | 2 +- .../server/handler/UseActiveSkillHandler.java | 2 +- .../hareka/server/handler/UseItemHandler.java | 2 +- .../hareka/server/net/AbstractServer.java | 14 +++-- .../net/IllegalServerStateException.java | 10 ++++ .../kareha/hareka/server/net/PlainServer.java | 17 ++++++ .../hareka/server/net/SecureServer.java | 23 ++++---- .../org/kareha/hareka/server/net/Server.java | 9 ++-- .../hareka/server/net/ServerException.java | 14 ----- .../server/net/ServerSocketException.java | 22 ++++++++ .../session/IllegalSessionStateException.java | 10 ++++ .../server/{external => session}/Session.java | 18 +++++-- .../{external => session}/SessionId.java | 2 +- .../SessionServer.java} | 37 ++++++------- .../{external => session}/SessionStatic.java | 2 +- .../hareka/server/session/Sessions.java | 43 +++++++++++++++ .../kareha/hareka/server/user/IdCipher.java | 2 +- .../org/kareha/hareka/server/user/User.java | 2 +- .../org/kareha/hareka/server/user/Users.java | 2 +- .../hareka/annotation/NotFinalForTesting.java | 14 +++++ .../annotation/NotPrivateForTesting.java | 14 +++++ 90 files changed, 293 insertions(+), 203 deletions(-) delete mode 100644 server/src/main/java/org/kareha/hareka/server/external/Sessions.java create mode 100644 server/src/main/java/org/kareha/hareka/server/net/IllegalServerStateException.java create mode 100644 server/src/main/java/org/kareha/hareka/server/net/PlainServer.java delete mode 100644 server/src/main/java/org/kareha/hareka/server/net/ServerException.java create mode 100644 server/src/main/java/org/kareha/hareka/server/net/ServerSocketException.java create mode 100644 server/src/main/java/org/kareha/hareka/server/session/IllegalSessionStateException.java rename server/src/main/java/org/kareha/hareka/server/{external => session}/Session.java (94%) rename server/src/main/java/org/kareha/hareka/server/{external => session}/SessionId.java (89%) rename server/src/main/java/org/kareha/hareka/server/{external/GameServer.java => session/SessionServer.java} (64%) rename server/src/main/java/org/kareha/hareka/server/{external => session}/SessionStatic.java (97%) create mode 100644 server/src/main/java/org/kareha/hareka/server/session/Sessions.java create mode 100644 util/src/main/java/org/kareha/hareka/annotation/NotFinalForTesting.java create mode 100644 util/src/main/java/org/kareha/hareka/annotation/NotPrivateForTesting.java diff --git a/client/src/main/java/org/kareha/hareka/client/Session.java b/client/src/main/java/org/kareha/hareka/client/Session.java index e0df9081..3fb30b21 100644 --- a/client/src/main/java/org/kareha/hareka/client/Session.java +++ b/client/src/main/java/org/kareha/hareka/client/Session.java @@ -9,6 +9,8 @@ import java.util.concurrent.atomic.AtomicLong; import org.kareha.hareka.ManuallyClosable; import org.kareha.hareka.annotation.GuardedBy; +import org.kareha.hareka.annotation.NotFinalForTesting; +import org.kareha.hareka.annotation.NotPrivateForTesting; import org.kareha.hareka.client.mirror.Mirrors; import org.kareha.hareka.client.protocol.ServerPacket; import org.kareha.hareka.client.protocol.ServerRequestPacket; @@ -19,7 +21,7 @@ import org.kareha.hareka.protocol.ClientPacketType; import org.kareha.hareka.protocol.HandlerTable; import org.kareha.hareka.protocol.ProtocolSocket; -// not final for FakeSession +@NotFinalForTesting public class Session implements ManuallyClosable { private volatile ConnectionSettings.Entry connection; @@ -37,12 +39,12 @@ public class Session implements ManuallyClosable { private volatile Mirrors mirrors; private final DiceRollTable diceRollTable = new DiceRollTable(); - // not private for test + @NotPrivateForTesting protected Session(final Context context) { this.context = context; } - // not private for test + @NotPrivateForTesting protected ProtocolSocket newPacketSocket(final Socket socket, final HandlerTable parserTable) { return new ProtocolSocket(socket, parserTable, this) { @@ -53,7 +55,7 @@ public class Session implements ManuallyClosable { }; } - // not private for test + @NotPrivateForTesting protected void initialize(final Socket socket, final HandlerTable parserTable) { packetSocket = newPacketSocket(socket, parserTable); mirrors = new Mirrors(this); diff --git a/server/src/main/java/org/kareha/hareka/server/Context.java b/server/src/main/java/org/kareha/hareka/server/Context.java index 1761c498..2b855164 100644 --- a/server/src/main/java/org/kareha/hareka/server/Context.java +++ b/server/src/main/java/org/kareha/hareka/server/Context.java @@ -12,9 +12,6 @@ import org.kareha.hareka.persistent.FastPersistentHashTable; import org.kareha.hareka.persistent.PersistentHashTable; import org.kareha.hareka.server.entity.Entities; import org.kareha.hareka.server.entity.EntityStatic; -import org.kareha.hareka.server.external.SessionStatic; -import org.kareha.hareka.server.external.Sessions; -import org.kareha.hareka.server.external.GameServer; import org.kareha.hareka.server.field.FieldStatic; import org.kareha.hareka.server.field.Fields; import org.kareha.hareka.server.game.CharacterSpawner; @@ -22,6 +19,9 @@ import org.kareha.hareka.server.game.Clock; import org.kareha.hareka.server.game.ItemSpawner; import org.kareha.hareka.server.item.Items; import org.kareha.hareka.server.net.Server; +import org.kareha.hareka.server.session.SessionServer; +import org.kareha.hareka.server.session.SessionStatic; +import org.kareha.hareka.server.session.Sessions; import org.kareha.hareka.server.skill.ActiveSkills; import org.kareha.hareka.server.stat.SpeciesTable; import org.kareha.hareka.server.user.AccessController; @@ -97,10 +97,10 @@ public final class Context { characterSpawner = new CharacterSpawner(new File(dataDirectory, "CharacterSpawner.xml")); itemSpawner = new ItemSpawner(new File(dataDirectory, "ItemSpawner.xml")); if (parameters.noTls()) { - server = new GameServer(this, parameters.port(), null); + server = new SessionServer(this, parameters.port(), null); } else { final var keyStoreFile = new File(dataDirectory.getParent(), ServerConstants.KEY_STORE_FILENAME); - server = new GameServer(this, parameters.port(), keyStoreFile); + server = new SessionServer(this, parameters.port(), keyStoreFile); } } diff --git a/server/src/main/java/org/kareha/hareka/server/Main.java b/server/src/main/java/org/kareha/hareka/server/Main.java index 8bac60cc..8b3f470d 100644 --- a/server/src/main/java/org/kareha/hareka/server/Main.java +++ b/server/src/main/java/org/kareha/hareka/server/Main.java @@ -9,7 +9,7 @@ import javax.swing.SwingUtilities; import org.kareha.hareka.logging.FileLogger; import org.kareha.hareka.logging.SimpleLogger; -import org.kareha.hareka.server.net.ServerException; +import org.kareha.hareka.server.net.ServerSocketException; import org.kareha.hareka.tool.KeyStoreUtil; import org.kareha.hareka.tool.LogUtil; import org.kareha.hareka.util.FileUtil; @@ -62,7 +62,7 @@ final class Main { case CONSOLE: try { Starter.INSTANCE.start(parameters); - } catch (final IOException | JAXBException | ServerException e) { + } catch (final IOException | JAXBException | ServerSocketException e) { logger.log(Level.SEVERE, "", e); return; } diff --git a/server/src/main/java/org/kareha/hareka/server/MainFrame.java b/server/src/main/java/org/kareha/hareka/server/MainFrame.java index 51dda508..f46eff54 100644 --- a/server/src/main/java/org/kareha/hareka/server/MainFrame.java +++ b/server/src/main/java/org/kareha/hareka/server/MainFrame.java @@ -19,7 +19,7 @@ import javax.swing.WindowConstants; import org.kareha.hareka.annotation.ConfinedTo; import org.kareha.hareka.annotation.Private; -import org.kareha.hareka.server.net.ServerException; +import org.kareha.hareka.server.net.ServerSocketException; import org.kareha.hareka.ui.swing.LogPanel; import jakarta.xml.bind.JAXBException; @@ -115,7 +115,7 @@ public final class MainFrame extends JFrame { new Thread(() -> { try { Starter.INSTANCE.start(params); - } catch (final IOException | JAXBException | ServerException e) { + } catch (final IOException | JAXBException | ServerSocketException e) { SwingUtilities.invokeLater(() -> { logger.log(Level.SEVERE, "", e); JOptionPane.showMessageDialog(MainFrame.this, e.getMessage()); diff --git a/server/src/main/java/org/kareha/hareka/server/Saver.java b/server/src/main/java/org/kareha/hareka/server/Saver.java index ba171719..02135b9b 100644 --- a/server/src/main/java/org/kareha/hareka/server/Saver.java +++ b/server/src/main/java/org/kareha/hareka/server/Saver.java @@ -6,7 +6,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.kareha.hareka.logging.SimpleLogger; -import org.kareha.hareka.server.net.ServerException; +import org.kareha.hareka.server.net.IllegalServerStateException; +import org.kareha.hareka.server.net.ServerSocketException; import jakarta.xml.bind.JAXBException; @@ -52,6 +53,13 @@ public enum Saver { // Stop listening try { context.server().stop(); + } catch (final IllegalServerStateException e) { + if (shutdown) { + SimpleLogger.INSTANCE.log("Failed to stop server; Server has already been stopped"); + } else { + logger.warning("Failed to stop server; Server has already been stopped"); + } + return; } catch (final IOException e) { if (shutdown) { SimpleLogger.INSTANCE.log(e); @@ -109,7 +117,10 @@ public enum Saver { // Start listening try { context.server().start(); - } catch (final IOException | ServerException e) { + } catch (final IllegalServerStateException e) { + logger.warning("Failed to start server; Server is already running."); + return; + } catch (final IOException | ServerSocketException e) { logger.log(Level.SEVERE, "", e); return; } diff --git a/server/src/main/java/org/kareha/hareka/server/ServerConstants.java b/server/src/main/java/org/kareha/hareka/server/ServerConstants.java index fb6ac37a..7cf582b9 100644 --- a/server/src/main/java/org/kareha/hareka/server/ServerConstants.java +++ b/server/src/main/java/org/kareha/hareka/server/ServerConstants.java @@ -7,9 +7,10 @@ public final class ServerConstants { } public static final String KEY_STORE_FILENAME = "KeyStore"; - // Using keytool, you must specify minimum 6 character password - public static final String KEY_STORE_PASSWORD = "foobar"; - public static final String KEY_PASSWORD = "foobar"; + // Using keytool, you must specify minimum 6 character password. + // "changeit" is the common default password in Java world. + public static final String KEY_STORE_PASSWORD = "changeit"; + public static final String KEY_PASSWORD = "changeit"; public static final int CONNECTION_SIZE = 100; public static final int MAX_CHARACTERS_PER_USER = 4; public static final String DICE_ROLL_HASH_ALGORITHM = "SHA-256"; diff --git a/server/src/main/java/org/kareha/hareka/server/Starter.java b/server/src/main/java/org/kareha/hareka/server/Starter.java index dad74cdc..16277a8d 100644 --- a/server/src/main/java/org/kareha/hareka/server/Starter.java +++ b/server/src/main/java/org/kareha/hareka/server/Starter.java @@ -6,7 +6,8 @@ import java.util.logging.Logger; import org.kareha.hareka.Constants; import org.kareha.hareka.annotation.GuardedBy; -import org.kareha.hareka.server.net.ServerException; +import org.kareha.hareka.server.net.IllegalServerStateException; +import org.kareha.hareka.server.net.ServerSocketException; import org.kareha.hareka.util.FileUtil; import jakarta.xml.bind.DatatypeConverter; @@ -23,7 +24,7 @@ public enum Starter { private boolean shutdownHookAdded = false; public synchronized void start(final ServerParameters parameters) - throws IOException, JAXBException, ServerException { + throws IOException, JAXBException, ServerSocketException { FileUtil.ensureDirectoryExists(parameters.liveDirectory()); final var crashedFile = new File(parameters.liveDirectory(), ServerConstants.CRASHED_FILENAME); @@ -102,7 +103,11 @@ public enum Starter { context.entities().startMotion(); // Start listening - context.server().start(); + try { + context.server().start(); + } catch (final IllegalServerStateException e) { + logger.warning("Failed to start server; Server is already running."); + } } } diff --git a/server/src/main/java/org/kareha/hareka/server/external/Sessions.java b/server/src/main/java/org/kareha/hareka/server/external/Sessions.java deleted file mode 100644 index 26f2beed..00000000 --- a/server/src/main/java/org/kareha/hareka/server/external/Sessions.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.kareha.hareka.server.external; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; -import java.util.logging.Logger; - -import org.kareha.hareka.annotation.GuardedBy; -import org.kareha.hareka.annotation.ThreadSafe; - -@ThreadSafe -public final class Sessions { - - private static final Logger logger = Logger.getLogger(Sessions.class.getName()); - - @GuardedBy("this") - private final Set sessions = new HashSet<>(); - - public synchronized boolean addSession(final Session session) { - final var b = sessions.add(session); - if (b) { - logger.info(session.getStamp() + "Connected"); - } else { - logger.warning(session.getStamp() + "Already connected"); - } - return b; - } - - public synchronized boolean removeSession(final Session session) { - final var b = sessions.remove(session); - if (b) { - logger.info(session.getStamp() + "Disconnected"); - } else { - logger.warning(session.getStamp() + "Already disconnected"); - } - return b; - } - - public synchronized Collection getSessions() { - if (sessions.isEmpty()) { - return Collections.emptyList(); - } - return new ArrayList<>(sessions); - } - - public synchronized int sizeOfSessions() { - return sessions.size(); - } - -} diff --git a/server/src/main/java/org/kareha/hareka/server/game/Player.java b/server/src/main/java/org/kareha/hareka/server/game/Player.java index f539d1e1..262ab2ac 100644 --- a/server/src/main/java/org/kareha/hareka/server/game/Player.java +++ b/server/src/main/java/org/kareha/hareka/server/game/Player.java @@ -18,7 +18,6 @@ import org.kareha.hareka.server.entity.ChatDriver; import org.kareha.hareka.server.entity.ChatEntity; import org.kareha.hareka.server.entity.FieldDriver; import org.kareha.hareka.server.entity.FieldEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.FieldPosition; import org.kareha.hareka.server.field.ServerFieldObject; import org.kareha.hareka.server.packet.AddActiveSkillPacket; @@ -43,6 +42,7 @@ import org.kareha.hareka.server.packet.SelfNamePacket; import org.kareha.hareka.server.packet.TilesPacket; import org.kareha.hareka.server.packet.CooldownPacket; import org.kareha.hareka.server.packet.WeightBarPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.stat.StatPoints; import org.kareha.hareka.server.user.User; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/AddDownstairsHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/AddDownstairsHandler.java index cf13c5b7..abea9db7 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/AddDownstairsHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/AddDownstairsHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.ServerField; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class AddDownstairsHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/AddGatePairHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/AddGatePairHandler.java index 42a2cf7b..e41efb63 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/AddGatePairHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/AddGatePairHandler.java @@ -8,9 +8,9 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.FieldPosition; import org.kareha.hareka.server.field.Gate; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class AddGatePairHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/AddUpstairsHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/AddUpstairsHandler.java index 5aa0e938..a36ddb51 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/AddUpstairsHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/AddUpstairsHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.ServerField; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; import org.kareha.hareka.user.RoleSet; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/AutopilotHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/AutopilotHandler.java index 9286f72c..2f71cf0e 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/AutopilotHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/AutopilotHandler.java @@ -7,7 +7,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class AutopilotHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/CancelPowHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/CancelPowHandler.java index f191bbc1..97d0043b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/CancelPowHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/CancelPowHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class CancelPowHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/CancelTokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/CancelTokenHandler.java index 2890c24d..e1789c60 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/CancelTokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/CancelTokenHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.game.TokenReceiver; +import org.kareha.hareka.server.session.Session; public final class CancelTokenHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/ChangeNameHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/ChangeNameHandler.java index d42e459f..772c6057 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/ChangeNameHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/ChangeNameHandler.java @@ -10,8 +10,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.SelfNamePacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.tool.Utf8Util; public final class ChangeNameHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/CommandHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/CommandHandler.java index 67154d6d..c2a01c6b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/CommandHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/CommandHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CommandOutPacket; +import org.kareha.hareka.server.session.Session; public final class CommandHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/ConsumeRoleTokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/ConsumeRoleTokenHandler.java index 675bfad3..cebf4b47 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/ConsumeRoleTokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/ConsumeRoleTokenHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class ConsumeRoleTokenHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DefineRoleHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DefineRoleHandler.java index b8f1f8c7..60ff1133 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DefineRoleHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DefineRoleHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RoleListPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.user.CustomRole; import org.kareha.hareka.server.user.RolesLogRecord; import org.kareha.hareka.user.Permission; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DeleteCharacterHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DeleteCharacterHandler.java index d2b3182f..80e6e596 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DeleteCharacterHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DeleteCharacterHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.CharacterEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CharactersPacket; +import org.kareha.hareka.server.session.Session; public final class DeleteCharacterHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DeleteItemHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DeleteItemHandler.java index 3409f8ba..0011441a 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DeleteItemHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DeleteItemHandler.java @@ -7,7 +7,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class DeleteItemHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DeleteRoleTokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DeleteRoleTokenHandler.java index 7a890b78..c6a279b2 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DeleteRoleTokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DeleteRoleTokenHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RoleTokenListPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class DeleteRoleTokenHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DiceChoiceHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DiceChoiceHandler.java index 2c326c43..436e184c 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DiceChoiceHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DiceChoiceHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.DiceResultPacket; +import org.kareha.hareka.server.session.Session; public final class DiceChoiceHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DiceTokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DiceTokenHandler.java index 1e3498d5..3c85c0ee 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DiceTokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DiceTokenHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RequestDiceChoicePacket; +import org.kareha.hareka.server.session.Session; public final class DiceTokenHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DrawLineHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DrawLineHandler.java index 93d754b6..950a4335 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DrawLineHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DrawLineHandler.java @@ -13,8 +13,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RequestPowPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class DrawLineHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DrawRingHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DrawRingHandler.java index 0d8f5beb..e51979e7 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DrawRingHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DrawRingHandler.java @@ -14,8 +14,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RequestPowPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class DrawRingHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/DropItemHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/DropItemHandler.java index 2ca74c76..a3653456 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/DropItemHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/DropItemHandler.java @@ -7,7 +7,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class DropItemHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/FillRangeHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/FillRangeHandler.java index faa9b364..d2c4854c 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/FillRangeHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/FillRangeHandler.java @@ -13,8 +13,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RequestPowPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class FillRangeHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/GenerateTerrainHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/GenerateTerrainHandler.java index 088b50aa..b10ac2e7 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/GenerateTerrainHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/GenerateTerrainHandler.java @@ -12,8 +12,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RequestPowPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class GenerateTerrainHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/GetPlacementRecordHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/GetPlacementRecordHandler.java index 75ce6bb3..f366c375 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/GetPlacementRecordHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/GetPlacementRecordHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.PlacementRecordPacket; +import org.kareha.hareka.server.session.Session; public final class GetPlacementRecordHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/InspectChatEntityHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/InspectChatEntityHandler.java index b8a780ae..95f15d0c 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/InspectChatEntityHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/InspectChatEntityHandler.java @@ -11,8 +11,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.CharacterEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.InspectionPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; import org.kareha.hareka.user.UserId; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/InspectFieldEntityHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/InspectFieldEntityHandler.java index 35e4ad64..56d7fafc 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/InspectFieldEntityHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/InspectFieldEntityHandler.java @@ -12,8 +12,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.CharacterEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.InspectionPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; import org.kareha.hareka.user.UserId; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/IssueInvitationTokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/IssueInvitationTokenHandler.java index 028229ab..d52a66c9 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/IssueInvitationTokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/IssueInvitationTokenHandler.java @@ -8,8 +8,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.TextPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.user.InvitationTokensLogRecord; import org.kareha.hareka.user.Permission; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/IssueRoleTokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/IssueRoleTokenHandler.java index e0c077ca..13426180 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/IssueRoleTokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/IssueRoleTokenHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.TextPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; import jakarta.xml.bind.DatatypeConverter; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/LocalChatHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/LocalChatHandler.java index ec038280..a38998c3 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/LocalChatHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/LocalChatHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class LocalChatHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/LocaleHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/LocaleHandler.java index a5ffbe01..ac78f127 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/LocaleHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/LocaleHandler.java @@ -9,7 +9,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class LocaleHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/LoginCharacterHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/LoginCharacterHandler.java index 43bf4386..4a13717f 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/LoginCharacterHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/LoginCharacterHandler.java @@ -10,9 +10,9 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.CharacterEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.FieldId; import org.kareha.hareka.server.game.Player; +import org.kareha.hareka.server.session.Session; public final class LoginCharacterHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/LoginUserHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/LoginUserHandler.java index f0203814..65ee572b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/LoginUserHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/LoginUserHandler.java @@ -14,13 +14,13 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.game.TokenReceiver; import org.kareha.hareka.server.packet.CharactersPacket; import org.kareha.hareka.server.packet.MessagePacket; import org.kareha.hareka.server.packet.RequestPowPacket; import org.kareha.hareka.server.packet.RequestPublicKeyPacket; import org.kareha.hareka.server.packet.RequestTokenPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.user.InvitationToken; import org.kareha.hareka.server.user.InvitationTokensLogRecord; import org.kareha.hareka.user.UserId; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/LogoutCharacterHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/LogoutCharacterHandler.java index 670de39a..79c83c88 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/LogoutCharacterHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/LogoutCharacterHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CharactersPacket; +import org.kareha.hareka.server.session.Session; public final class LogoutCharacterHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/LogoutUserHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/LogoutUserHandler.java index 8c509371..c24694cb 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/LogoutUserHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/LogoutUserHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.VersionPacket; +import org.kareha.hareka.server.session.Session; public final class LogoutUserHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/MoveHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/MoveHandler.java index bde01e1d..ff4803f1 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/MoveHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/MoveHandler.java @@ -10,8 +10,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CooldownPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.stat.ExperienceType; import org.kareha.hareka.server.stat.ExperienceVariation; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/NewCharacterHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/NewCharacterHandler.java index f37afffc..778625e7 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/NewCharacterHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/NewCharacterHandler.java @@ -11,8 +11,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CharactersPacket; +import org.kareha.hareka.server.session.Session; public final class NewCharacterHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/NewFieldHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/NewFieldHandler.java index b048b455..52b8628b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/NewFieldHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/NewFieldHandler.java @@ -11,11 +11,11 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.FieldPosition; import org.kareha.hareka.server.field.Gate; import org.kareha.hareka.server.field.PeriodicBoundary; import org.kareha.hareka.server.field.ServerField; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class NewFieldHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/NoPublicKeyHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/NoPublicKeyHandler.java index b4eafcdd..38426079 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/NoPublicKeyHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/NoPublicKeyHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class NoPublicKeyHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/PowHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/PowHandler.java index 4ba37169..805cd6e0 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/PowHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/PowHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class PowHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/PrivateChatHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/PrivateChatHandler.java index 07fe44e5..41c67d15 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/PrivateChatHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/PrivateChatHandler.java @@ -9,7 +9,7 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.ChatEntity; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class PrivateChatHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/PublicKeyHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/PublicKeyHandler.java index d8131f1e..6ae35768 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/PublicKeyHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/PublicKeyHandler.java @@ -12,7 +12,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; public final class PublicKeyHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RebootHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RebootHandler.java index a49b8793..63a6de8f 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RebootHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RebootHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.Rebooter; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class RebootHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/ReduceToBackgroundTilesHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/ReduceToBackgroundTilesHandler.java index ae35057c..544c73a3 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/ReduceToBackgroundTilesHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/ReduceToBackgroundTilesHandler.java @@ -7,7 +7,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class ReduceToBackgroundTilesHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RemoveOrphansHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RemoveOrphansHandler.java index 642a12f0..418bd903 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RemoveOrphansHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RemoveOrphansHandler.java @@ -6,7 +6,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class RemoveOrphansHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RemoveSpecialTileHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RemoveSpecialTileHandler.java index 731e3d02..e07b498e 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RemoveSpecialTileHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RemoveSpecialTileHandler.java @@ -12,8 +12,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.ServerField; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class RemoveSpecialTileHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestEchoHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestEchoHandler.java index 3994fe6c..b02ba292 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestEchoHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestEchoHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.EchoPacket; +import org.kareha.hareka.server.session.Session; public final class RequestEchoHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestMyRolesHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestMyRolesHandler.java index 67e2be27..e4fce307 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestMyRolesHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestMyRolesHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.MyRolesPacket; +import org.kareha.hareka.server.session.Session; public final class RequestMyRolesHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestPublicKeyHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestPublicKeyHandler.java index c78d99cd..a6324e3a 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestPublicKeyHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestPublicKeyHandler.java @@ -10,9 +10,9 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.NoPublicKeyPacket; import org.kareha.hareka.server.packet.PublicKeyPacket; +import org.kareha.hareka.server.session.Session; import jakarta.xml.bind.JAXBException; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestRegionListHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestRegionListHandler.java index c7effe5a..7669eba8 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestRegionListHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestRegionListHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RegionListPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class RequestRegionListHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleListHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleListHandler.java index c6c12b7f..777f4be1 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleListHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleListHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RoleListPacket; +import org.kareha.hareka.server.session.Session; public final class RequestRoleListHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleTokenListHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleTokenListHandler.java index 9536ccc9..ceebe51a 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleTokenListHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestRoleTokenListHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RoleTokenListPacket; +import org.kareha.hareka.server.session.Session; public final class RequestRoleTokenListHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/RequestSettingsHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/RequestSettingsHandler.java index ab864cfa..63bee29b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/RequestSettingsHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/RequestSettingsHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.SettingsPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class RequestSettingsHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/SaveHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/SaveHandler.java index 45731443..77586d24 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/SaveHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/SaveHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.Saver; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class SaveHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/SetDefaultTilePatternHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/SetDefaultTilePatternHandler.java index 40424d0c..dac41c07 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/SetDefaultTilePatternHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/SetDefaultTilePatternHandler.java @@ -10,7 +10,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class SetDefaultTilePatternHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/SetMarkHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/SetMarkHandler.java index 0c1d384c..34f53f5c 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/SetMarkHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/SetMarkHandler.java @@ -6,8 +6,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.FieldPosition; +import org.kareha.hareka.server.session.Session; public final class SetMarkHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/SetRegionListHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/SetRegionListHandler.java index f60a36e9..624756bb 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/SetRegionListHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/SetRegionListHandler.java @@ -10,8 +10,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.ServerSimpleRegion; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class SetRegionListHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/SetRescueMethodsEnabledHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/SetRescueMethodsEnabledHandler.java index f3a92d6c..fd5061b0 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/SetRescueMethodsEnabledHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/SetRescueMethodsEnabledHandler.java @@ -7,7 +7,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class SetRescueMethodsEnabledHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/SetUserRegistrationModeHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/SetUserRegistrationModeHandler.java index 35aa4601..965b8d6e 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/SetUserRegistrationModeHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/SetUserRegistrationModeHandler.java @@ -7,7 +7,7 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; import org.kareha.hareka.user.UserRegistrationMode; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/ShutdownHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/ShutdownHandler.java index 40ad70c2..9dd3ed53 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/ShutdownHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/ShutdownHandler.java @@ -8,7 +8,7 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.Rebooter; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class ShutdownHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/TeleportToCenterHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/TeleportToCenterHandler.java index 62a95eeb..1e86910b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/TeleportToCenterHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/TeleportToCenterHandler.java @@ -8,8 +8,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.FieldPosition; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.user.User; public final class TeleportToCenterHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/TeleportToPlacementRecordHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/TeleportToPlacementRecordHandler.java index 4da18e82..7e81c133 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/TeleportToPlacementRecordHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/TeleportToPlacementRecordHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.field.PlacementRecord; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class TeleportToPlacementRecordHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/TileHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/TileHandler.java index 5a0880e2..8a95bdc4 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/TileHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/TileHandler.java @@ -12,8 +12,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.ServerConstants; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RequestPowPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.Permission; public final class TileHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/TokenHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/TokenHandler.java index a7dee3b0..94e709de 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/TokenHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/TokenHandler.java @@ -7,8 +7,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.game.TokenReceiver; +import org.kareha.hareka.server.session.Session; public final class TokenHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/UndefineRoleHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/UndefineRoleHandler.java index 88400b2c..4b5ac039 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/UndefineRoleHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/UndefineRoleHandler.java @@ -9,8 +9,8 @@ import org.kareha.hareka.protocol.Handler; import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.RoleListPacket; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.server.user.RolesLogRecord; import org.kareha.hareka.user.Permission; diff --git a/server/src/main/java/org/kareha/hareka/server/handler/UseActiveSkillHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/UseActiveSkillHandler.java index 32463ef9..b3b7b119 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/UseActiveSkillHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/UseActiveSkillHandler.java @@ -10,8 +10,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.FieldEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CooldownPacket; +import org.kareha.hareka.server.session.Session; public final class UseActiveSkillHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/handler/UseItemHandler.java b/server/src/main/java/org/kareha/hareka/server/handler/UseItemHandler.java index d7e4dab4..fa797e3b 100644 --- a/server/src/main/java/org/kareha/hareka/server/handler/UseItemHandler.java +++ b/server/src/main/java/org/kareha/hareka/server/handler/UseItemHandler.java @@ -8,8 +8,8 @@ import org.kareha.hareka.protocol.HandlerException; import org.kareha.hareka.protocol.ProtocolException; import org.kareha.hareka.protocol.ProtocolInput; import org.kareha.hareka.server.entity.FieldEntity; -import org.kareha.hareka.server.external.Session; import org.kareha.hareka.server.packet.CooldownPacket; +import org.kareha.hareka.server.session.Session; public final class UseItemHandler implements Handler { diff --git a/server/src/main/java/org/kareha/hareka/server/net/AbstractServer.java b/server/src/main/java/org/kareha/hareka/server/net/AbstractServer.java index 81d79999..540403d7 100644 --- a/server/src/main/java/org/kareha/hareka/server/net/AbstractServer.java +++ b/server/src/main/java/org/kareha/hareka/server/net/AbstractServer.java @@ -10,7 +10,7 @@ import java.util.logging.Logger; import org.kareha.hareka.annotation.GuardedBy; import org.kareha.hareka.annotation.Private; -public sealed abstract class AbstractServer implements Server permits SecureServer { +public sealed abstract class AbstractServer implements Server permits PlainServer, SecureServer { @Private static final Logger logger = Logger.getLogger(AbstractServer.class.getName()); @@ -28,28 +28,26 @@ public sealed abstract class AbstractServer implements Server permits SecureServ return port; } - protected abstract ServerSocket createServerSocket() throws IOException, ServerException; + protected abstract ServerSocket createServerSocket() throws IOException, ServerSocketException; @SuppressWarnings("resource") @Override - public synchronized boolean start() throws IOException, ServerException { + public synchronized void start() throws IOException, IllegalServerStateException, ServerSocketException { if (thread != null) { - return false; + throw new IllegalServerStateException("Already started"); } thread = new ServerThread(createServerSocket()); thread.start(); - return true; } @Override - public synchronized boolean stop() throws IOException, InterruptedException { + public synchronized void stop() throws IOException, InterruptedException, IllegalServerStateException { if (thread == null) { - return false; + throw new IllegalServerStateException("Already stopped"); } thread.interrupt(); thread.join(); thread = null; - return true; } protected abstract void accepted(Socket clientSocket); diff --git a/server/src/main/java/org/kareha/hareka/server/net/IllegalServerStateException.java b/server/src/main/java/org/kareha/hareka/server/net/IllegalServerStateException.java new file mode 100644 index 00000000..939f9d90 --- /dev/null +++ b/server/src/main/java/org/kareha/hareka/server/net/IllegalServerStateException.java @@ -0,0 +1,10 @@ +package org.kareha.hareka.server.net; + +@SuppressWarnings("serial") +public final class IllegalServerStateException extends Exception { + + public IllegalServerStateException(final String message) { + super(message); + } + +} diff --git a/server/src/main/java/org/kareha/hareka/server/net/PlainServer.java b/server/src/main/java/org/kareha/hareka/server/net/PlainServer.java new file mode 100644 index 00000000..5accc873 --- /dev/null +++ b/server/src/main/java/org/kareha/hareka/server/net/PlainServer.java @@ -0,0 +1,17 @@ +package org.kareha.hareka.server.net; + +import java.io.IOException; +import java.net.ServerSocket; + +public non-sealed abstract class PlainServer extends AbstractServer { + + public PlainServer(final int port) { + super(port); + } + + @Override + protected ServerSocket createServerSocket() throws IOException { + return new ServerSocket(port()); + } + +} diff --git a/server/src/main/java/org/kareha/hareka/server/net/SecureServer.java b/server/src/main/java/org/kareha/hareka/server/net/SecureServer.java index 68d03fef..cfc49271 100644 --- a/server/src/main/java/org/kareha/hareka/server/net/SecureServer.java +++ b/server/src/main/java/org/kareha/hareka/server/net/SecureServer.java @@ -17,7 +17,6 @@ import java.security.cert.X509Certificate; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; @@ -36,7 +35,7 @@ public non-sealed abstract class SecureServer extends AbstractServer { } @Override - protected ServerSocket createServerSocket() throws IOException, ServerException { + protected ServerSocket createServerSocket() throws IOException, ServerSocketException { final SSLContext sslContext; try { sslContext = SSLContext.getInstance("TLS"); @@ -56,15 +55,15 @@ public non-sealed abstract class SecureServer extends AbstractServer { } catch (final NoSuchAlgorithmException e) { throw new AssertionError(e); } catch (final CertificateException e) { - throw new RuntimeException(e); + throw new ServerSocketException(e); } catch (final IOException e) { - if (e.getCause() instanceof UnrecoverableKeyException) { - throw new ServerException("Store password may be incorrect", e); + if (e.getCause() instanceof UnrecoverableKeyException ex) { + throw new ServerSocketException("Store password may be incorrect", ex); } throw e; } } catch (final FileNotFoundException e) { - throw new ServerException("KeyStore not found", e); + throw new ServerSocketException("KeyStore file not found", e); } final KeyManagerFactory keyManagerFactory; @@ -76,9 +75,9 @@ public non-sealed abstract class SecureServer extends AbstractServer { try { keyManagerFactory.init(keyStore, keyPassword); } catch (final UnrecoverableKeyException e) { - throw new ServerException("Key password may be incorrect", e); + throw new ServerSocketException("Key password may be incorrect", e); } catch (final KeyStoreException e) { - throw new RuntimeException(e); + throw new ServerSocketException(e); } catch (final NoSuchAlgorithmException e) { throw new AssertionError(e); } @@ -88,13 +87,13 @@ public non-sealed abstract class SecureServer extends AbstractServer { @Override public void checkClientTrusted(final X509Certificate[] chain, final String authType) throws CertificateException { - // TODO + // nothing to do } @Override public void checkServerTrusted(final X509Certificate[] chain, final String authType) throws CertificateException { - // TODO + // nothing to do } @Override @@ -105,9 +104,9 @@ public non-sealed abstract class SecureServer extends AbstractServer { try { sslContext.init(km, tm, new SecureRandom()); } catch (final KeyManagementException e) { - throw new RuntimeException(e); + throw new ServerSocketException(e); } - final SSLServerSocketFactory socketFactory = sslContext.getServerSocketFactory(); + final var socketFactory = sslContext.getServerSocketFactory(); return socketFactory.createServerSocket(port()); } diff --git a/server/src/main/java/org/kareha/hareka/server/net/Server.java b/server/src/main/java/org/kareha/hareka/server/net/Server.java index 21230e05..3303a87a 100644 --- a/server/src/main/java/org/kareha/hareka/server/net/Server.java +++ b/server/src/main/java/org/kareha/hareka/server/net/Server.java @@ -2,14 +2,15 @@ package org.kareha.hareka.server.net; import java.io.IOException; -import org.kareha.hareka.server.external.GameServer; +import org.kareha.hareka.server.session.SessionServer; -public sealed interface Server permits AbstractServer, GameServer { +public sealed interface Server permits AbstractServer, SessionServer { + // used in logging int port(); - boolean start() throws IOException, ServerException; + void start() throws IOException, IllegalServerStateException, ServerSocketException; - boolean stop() throws IOException, InterruptedException; + void stop() throws IOException, InterruptedException, IllegalServerStateException; } diff --git a/server/src/main/java/org/kareha/hareka/server/net/ServerException.java b/server/src/main/java/org/kareha/hareka/server/net/ServerException.java deleted file mode 100644 index 5313952f..00000000 --- a/server/src/main/java/org/kareha/hareka/server/net/ServerException.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.kareha.hareka.server.net; - -@SuppressWarnings("serial") -public final class ServerException extends Exception { - - public ServerException(final String message) { - super(message); - } - - public ServerException(final String message, final Throwable cause) { - super(message, cause); - } - -} diff --git a/server/src/main/java/org/kareha/hareka/server/net/ServerSocketException.java b/server/src/main/java/org/kareha/hareka/server/net/ServerSocketException.java new file mode 100644 index 00000000..8be3969e --- /dev/null +++ b/server/src/main/java/org/kareha/hareka/server/net/ServerSocketException.java @@ -0,0 +1,22 @@ +package org.kareha.hareka.server.net; + +@SuppressWarnings("serial") +public final class ServerSocketException extends Exception { + + public ServerSocketException() { + // do nothing + } + + public ServerSocketException(final String message) { + super(message); + } + + public ServerSocketException(final String message, final Throwable cause) { + super(message, cause); + } + + public ServerSocketException(final Throwable cause) { + super(cause); + } + +} diff --git a/server/src/main/java/org/kareha/hareka/server/session/IllegalSessionStateException.java b/server/src/main/java/org/kareha/hareka/server/session/IllegalSessionStateException.java new file mode 100644 index 00000000..da811e4e --- /dev/null +++ b/server/src/main/java/org/kareha/hareka/server/session/IllegalSessionStateException.java @@ -0,0 +1,10 @@ +package org.kareha.hareka.server.session; + +@SuppressWarnings("serial") +public final class IllegalSessionStateException extends Exception { + + public IllegalSessionStateException(final String message) { + super(message); + } + +} diff --git a/server/src/main/java/org/kareha/hareka/server/external/Session.java b/server/src/main/java/org/kareha/hareka/server/session/Session.java similarity index 94% rename from server/src/main/java/org/kareha/hareka/server/external/Session.java rename to server/src/main/java/org/kareha/hareka/server/session/Session.java index 5b6449c8..8cd8b533 100644 --- a/server/src/main/java/org/kareha/hareka/server/external/Session.java +++ b/server/src/main/java/org/kareha/hareka/server/session/Session.java @@ -1,13 +1,15 @@ -package org.kareha.hareka.server.external; +package org.kareha.hareka.server.session; import java.net.InetAddress; import java.net.Socket; import java.text.MessageFormat; import java.util.Locale; import java.util.ResourceBundle; +import java.util.logging.Level; import java.util.logging.Logger; import org.kareha.hareka.annotation.GuardedBy; +import org.kareha.hareka.annotation.NotPrivateForTesting; import org.kareha.hareka.annotation.Private; import org.kareha.hareka.game.PassiveSkillType; import org.kareha.hareka.key.KeyReceiver; @@ -49,25 +51,31 @@ public final class Session { private Player player; private final DiceRollTable diceRollTable = new DiceRollTable(ServerConstants.DICE_ROLL_HASH_ALGORITHM); - // not private for test + @NotPrivateForTesting Session(final Context context) { this.context = context; id = context.sessionStatic().next(); } - // not private for test + @NotPrivateForTesting ProtocolSocket newPacketSocket(final Socket socket, final HandlerTable parserTable) { return new ProtocolSocket(socket, parserTable, this) { @Override public void finish() { logoutUser(); - context.sessions().removeSession(Session.this); + try { + context.sessions().removeSession(Session.this); + } catch (final IllegalSessionStateException e) { + logger.log(Level.SEVERE, "", e); + return; + } + logger.info(Session.this.getStamp() + "Disconnected"); } }; } - // not private for test + @NotPrivateForTesting void initialize(final Socket socket, final HandlerTable parserTable) { packetSocket = newPacketSocket(socket, parserTable); } diff --git a/server/src/main/java/org/kareha/hareka/server/external/SessionId.java b/server/src/main/java/org/kareha/hareka/server/session/SessionId.java similarity index 89% rename from server/src/main/java/org/kareha/hareka/server/external/SessionId.java rename to server/src/main/java/org/kareha/hareka/server/session/SessionId.java index a93054f6..22af788c 100644 --- a/server/src/main/java/org/kareha/hareka/server/external/SessionId.java +++ b/server/src/main/java/org/kareha/hareka/server/session/SessionId.java @@ -1,4 +1,4 @@ -package org.kareha.hareka.server.external; +package org.kareha.hareka.server.session; import org.kareha.hareka.annotation.Immutable; diff --git a/server/src/main/java/org/kareha/hareka/server/external/GameServer.java b/server/src/main/java/org/kareha/hareka/server/session/SessionServer.java similarity index 64% rename from server/src/main/java/org/kareha/hareka/server/external/GameServer.java rename to server/src/main/java/org/kareha/hareka/server/session/SessionServer.java index f477bce7..273ab36d 100644 --- a/server/src/main/java/org/kareha/hareka/server/external/GameServer.java +++ b/server/src/main/java/org/kareha/hareka/server/session/SessionServer.java @@ -1,27 +1,29 @@ -package org.kareha.hareka.server.external; +package org.kareha.hareka.server.session; import java.io.File; import java.io.IOException; import java.net.Socket; import java.text.MessageFormat; +import java.util.logging.Level; import java.util.logging.Logger; import org.kareha.hareka.protocol.HandlerTable; import org.kareha.hareka.protocol.ServerPacketType; import org.kareha.hareka.server.Context; import org.kareha.hareka.server.ServerConstants; +import org.kareha.hareka.server.net.IllegalServerStateException; import org.kareha.hareka.server.net.SecureServer; import org.kareha.hareka.server.net.Server; -import org.kareha.hareka.server.net.ServerException; +import org.kareha.hareka.server.net.ServerSocketException; import org.kareha.hareka.server.packet.VersionPacket; -public final class GameServer implements Server { +public final class SessionServer implements Server { - private static final Logger logger = Logger.getLogger(GameServer.class.getName()); + private static final Logger logger = Logger.getLogger(SessionServer.class.getName()); private final Server server; - public GameServer(final Context context, final int port, final File keyStoreFile) { + public SessionServer(final Context context, final int port, final File keyStoreFile) { if (keyStoreFile == null) { throw new IllegalArgumentException("keyStoreFile must not be null"); } @@ -31,7 +33,14 @@ public final class GameServer implements Server { class Accepter { void accepted(final Socket clientSocket) { final var session = Session.newInstance(context, clientSocket, parserTable); - context.sessions().addSession(session); + try { + context.sessions().addSession(session); + } catch (final IllegalSessionStateException e) { + logger.log(Level.SEVERE, "", e); + return; + } + logger.info(session.getStamp() + "Connected"); + session.start(); session.write(new VersionPacket()); @@ -54,25 +63,17 @@ public final class GameServer implements Server { } @Override - public boolean start() throws IOException, ServerException { - if (!server.start()) { - logger.warning("Failed to start server; Server is already running."); - return false; - } + public void start() throws IOException, IllegalServerStateException, ServerSocketException { + server.start(); logger.info(MessageFormat.format("Listening to port {0}", port())); logger.info("Waiting for connections.."); - return true; } @Override - public boolean stop() throws IOException, InterruptedException { + public void stop() throws IOException, InterruptedException, IllegalServerStateException { logger.info("Stop Listening.."); - if (!server.stop()) { - logger.warning("Failed to stop server; Server has already been stopped"); - return false; - } + server.stop(); logger.info("Listening stopped"); - return true; } } diff --git a/server/src/main/java/org/kareha/hareka/server/external/SessionStatic.java b/server/src/main/java/org/kareha/hareka/server/session/SessionStatic.java similarity index 97% rename from server/src/main/java/org/kareha/hareka/server/external/SessionStatic.java rename to server/src/main/java/org/kareha/hareka/server/session/SessionStatic.java index dd589b80..73f4347a 100644 --- a/server/src/main/java/org/kareha/hareka/server/external/SessionStatic.java +++ b/server/src/main/java/org/kareha/hareka/server/session/SessionStatic.java @@ -1,4 +1,4 @@ -package org.kareha.hareka.server.external; +package org.kareha.hareka.server.session; import java.io.File; import java.util.concurrent.atomic.AtomicLong; diff --git a/server/src/main/java/org/kareha/hareka/server/session/Sessions.java b/server/src/main/java/org/kareha/hareka/server/session/Sessions.java new file mode 100644 index 00000000..42e23bca --- /dev/null +++ b/server/src/main/java/org/kareha/hareka/server/session/Sessions.java @@ -0,0 +1,43 @@ +package org.kareha.hareka.server.session; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.kareha.hareka.annotation.GuardedBy; +import org.kareha.hareka.annotation.ThreadSafe; + +@ThreadSafe +public final class Sessions { + + @GuardedBy("this") + private final Set sessions = new HashSet<>(); + + public synchronized void addSession(final Session session) throws IllegalSessionStateException { + final var success = sessions.add(session); + if (!success) { + throw new IllegalSessionStateException("Already connected"); + } + } + + public synchronized void removeSession(final Session session) throws IllegalSessionStateException { + final var success = sessions.remove(session); + if (!success) { + throw new IllegalSessionStateException("Already disconnected"); + } + } + + public synchronized Collection getSessions() { + if (sessions.isEmpty()) { + return Collections.emptyList(); + } + return new ArrayList<>(sessions); + } + + public synchronized int sizeOfSessions() { + return sessions.size(); + } + +} diff --git a/server/src/main/java/org/kareha/hareka/server/user/IdCipher.java b/server/src/main/java/org/kareha/hareka/server/user/IdCipher.java index 368f9523..0ae38212 100644 --- a/server/src/main/java/org/kareha/hareka/server/user/IdCipher.java +++ b/server/src/main/java/org/kareha/hareka/server/user/IdCipher.java @@ -19,7 +19,7 @@ import org.kareha.hareka.annotation.GuardedBy; import org.kareha.hareka.annotation.Private; import org.kareha.hareka.annotation.ThreadSafe; import org.kareha.hareka.server.entity.EntityId; -import org.kareha.hareka.server.external.SessionId; +import org.kareha.hareka.server.session.SessionId; import org.kareha.hareka.user.UserId; import jakarta.xml.bind.annotation.XmlAccessType; diff --git a/server/src/main/java/org/kareha/hareka/server/user/User.java b/server/src/main/java/org/kareha/hareka/server/user/User.java index 174e3e48..8cb6c45f 100644 --- a/server/src/main/java/org/kareha/hareka/server/user/User.java +++ b/server/src/main/java/org/kareha/hareka/server/user/User.java @@ -19,7 +19,7 @@ import org.kareha.hareka.annotation.Private; import org.kareha.hareka.annotation.ThreadSafe; import org.kareha.hareka.key.KeyXml; import org.kareha.hareka.server.entity.EntityId; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.tool.JaxbUtil; import org.kareha.hareka.user.UserId; diff --git a/server/src/main/java/org/kareha/hareka/server/user/Users.java b/server/src/main/java/org/kareha/hareka/server/user/Users.java index fe306165..da53e2a3 100644 --- a/server/src/main/java/org/kareha/hareka/server/user/Users.java +++ b/server/src/main/java/org/kareha/hareka/server/user/Users.java @@ -13,7 +13,7 @@ import java.util.logging.Logger; import org.kareha.hareka.annotation.GuardedBy; import org.kareha.hareka.persistent.PersistentHashTable; import org.kareha.hareka.protocol.ProtocolException; -import org.kareha.hareka.server.external.Session; +import org.kareha.hareka.server.session.Session; import org.kareha.hareka.user.UserId; import org.kareha.hareka.user.UserStatic; import org.kareha.hareka.util.FileUtil; diff --git a/util/src/main/java/org/kareha/hareka/annotation/NotFinalForTesting.java b/util/src/main/java/org/kareha/hareka/annotation/NotFinalForTesting.java new file mode 100644 index 00000000..e22fea03 --- /dev/null +++ b/util/src/main/java/org/kareha/hareka/annotation/NotFinalForTesting.java @@ -0,0 +1,14 @@ +package org.kareha.hareka.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.SOURCE) +@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD }) +@Documented +public @interface NotFinalForTesting { + // marker annotation +} diff --git a/util/src/main/java/org/kareha/hareka/annotation/NotPrivateForTesting.java b/util/src/main/java/org/kareha/hareka/annotation/NotPrivateForTesting.java new file mode 100644 index 00000000..286ff7a2 --- /dev/null +++ b/util/src/main/java/org/kareha/hareka/annotation/NotPrivateForTesting.java @@ -0,0 +1,14 @@ +package org.kareha.hareka.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.SOURCE) +@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD }) +@Documented +public @interface NotPrivateForTesting { + // marker annotation +}