summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/generalhandler.cpp135
-rw-r--r--src/net/eathena/generalhandler.h2
2 files changed, 103 insertions, 34 deletions
diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp
index 2b5da81e4..0d7a551ea 100644
--- a/src/net/eathena/generalhandler.cpp
+++ b/src/net/eathena/generalhandler.cpp
@@ -141,47 +141,114 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg)
switch (msg.getId())
{
case SMSG_CONNECTION_PROBLEM:
- {
- const uint8_t code = msg.readUInt8();
- logger->log("Connection problem: %u",
- static_cast<unsigned int>(code));
+ processConnectionProblem(msg);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void GeneralHandler::processConnectionProblem(Net::MessageIn &msg)
+{
+ const uint8_t code = msg.readUInt8();
+ logger->log("Connection problem: %u", static_cast<unsigned int>(code));
- switch (code)
+ switch (code)
+ {
+ case 0:
+ errorMessage = _("Authentication failed.");
+ break;
+ case 1:
+ errorMessage = _("No servers available.");
+ break;
+ case 2:
+ if (client->getState() == STATE_GAME)
+ {
+ errorMessage = _("Someone else is trying to use "
+ "this account.");
+ }
+ else
{
- case 0:
- errorMessage = _("Authentication failed.");
- break;
- case 1:
- errorMessage = _("No servers available.");
- break;
- case 2:
- if (client->getState() == STATE_GAME)
- {
- errorMessage = _("Someone else is trying to use this "
- "account.");
- }
- else
- {
- errorMessage = _("This account is already logged in.");
- }
- break;
- case 3:
- errorMessage = _("Speed hack detected.");
- break;
- case 8:
- errorMessage = _("Duplicated login.");
- break;
- default:
- errorMessage = _("Unknown connection error.");
- break;
+ errorMessage = _("This account is already logged in.");
}
- client->setState(STATE_ERROR);
break;
- }
-
+ case 3:
+ errorMessage = _("Speed hack detected.");
+ break;
+ case 4:
+ errorMessage = _("Server full.");
+ break;
+ case 5:
+ errorMessage = _("Sorry, you are underaged.");
+ break;
+ case 8:
+ errorMessage = _("Duplicated login.");
+ break;
+ case 9:
+ errorMessage = _("To many connections from same ip.");
+ break;
+ case 10:
+ errorMessage = _("Not paid for this time.");
+ break;
+ case 11:
+ errorMessage = _("Pay suspended.");
+ break;
+ case 12:
+ errorMessage = _("Pay changed.");
+ break;
+ case 13:
+ errorMessage = _("Pay wrong ip.");
+ break;
+ case 14:
+ errorMessage = _("Pay game room.");
+ break;
+ case 15:
+ errorMessage = _("Disconnect forced by GM.");
+ break;
+ case 16:
+ case 17:
+ errorMessage = _("Ban japan refuse.");
+ break;
+ case 18:
+ errorMessage = _("Remained other account.");
+ break;
+ case 100:
+ errorMessage = _("Ip unfair.");
+ break;
+ case 101:
+ errorMessage = _("Ip count all.");
+ break;
+ case 102:
+ errorMessage = _("Ip count.");
+ break;
+ case 103:
+ case 104:
+ errorMessage = _("Memory.");
+ break;
+ case 105:
+ errorMessage = _("Han valid.");
+ break;
+ case 106:
+ errorMessage = _("Ip limited access.");
+ break;
+ case 107:
+ errorMessage = _("Over characters list.");
+ break;
+ case 108:
+ errorMessage = _("Ip blocked.");
+ break;
+ case 109:
+ errorMessage = _("Invalid password count.");
+ break;
+ case 110:
+ errorMessage = _("Not allowed race.");
+ break;
default:
+ errorMessage = _("Unknown connection error.");
break;
}
+ client->setState(STATE_ERROR);
}
void GeneralHandler::load()
diff --git a/src/net/eathena/generalhandler.h b/src/net/eathena/generalhandler.h
index 7f68f5f54..c7197d255 100644
--- a/src/net/eathena/generalhandler.h
+++ b/src/net/eathena/generalhandler.h
@@ -61,6 +61,8 @@ class GeneralHandler final : public MessageHandler,
void gameEnded() const override final;
protected:
+ void processConnectionProblem(Net::MessageIn &msg);
+
MessageHandlerPtr mAdminHandler;
MessageHandlerPtr mBeingHandler;
MessageHandlerPtr mBuySellHandler;