From 9d94337026bbe6236bc4a39143c839a3bb386326 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Fri, 9 Apr 2010 16:51:26 -0600 Subject: Add support for registration disabled for eAthena Reviewed-by: Chuck Miller` --- src/net/ea/loginhandler.cpp | 19 +++++++++++++++---- src/net/ea/loginhandler.h | 3 +++ src/net/loginhandler.h | 2 ++ src/net/manaserv/loginhandler.cpp | 5 +++++ src/net/manaserv/loginhandler.h | 2 ++ 5 files changed, 27 insertions(+), 4 deletions(-) (limited to 'src/net') diff --git a/src/net/ea/loginhandler.cpp b/src/net/ea/loginhandler.cpp index 730535b8..42ba0c61 100644 --- a/src/net/ea/loginhandler.cpp +++ b/src/net/ea/loginhandler.cpp @@ -41,7 +41,8 @@ namespace EAthena { extern ServerInfo charServer; -LoginHandler::LoginHandler() +LoginHandler::LoginHandler(): + mRegistrationEnabled(true) { static const Uint16 _messages[] = { SMSG_UPDATE_HOST, @@ -190,9 +191,14 @@ void LoginHandler::handleMessage(Net::MessageIn &msg) msg.readInt8(); // T msg.readInt8(); // M msg.readInt8(); // W - msg.readInt8(); // (space) - msg.readInt8(); // e - msg.readInt8(); // A + + unsigned int options = msg.readInt32(); + + if (options & 1) + { + // Registeration not allowed + mRegistrationEnabled = false; + } //state = STATE_LOGIN; } @@ -217,6 +223,11 @@ void LoginHandler::disconnect() mNetwork->disconnect(); } +bool LoginHandler::isRegistrationEnabled() +{ + return mRegistrationEnabled; +} + void LoginHandler::getRegistrationDetails() { // Not supported, so move on diff --git a/src/net/ea/loginhandler.h b/src/net/ea/loginhandler.h index 4e31e64c..1dd4f52c 100644 --- a/src/net/ea/loginhandler.h +++ b/src/net/ea/loginhandler.h @@ -51,6 +51,8 @@ class LoginHandler : public MessageHandler, public Net::LoginHandler int supportedOptionalActions() const { return SetGenderOnRegister; } + bool isRegistrationEnabled(); + void getRegistrationDetails(); unsigned int getMaxPasswordLength() const { return 25; } @@ -81,6 +83,7 @@ class LoginHandler : public MessageHandler, public Net::LoginHandler void sendLoginRegister(const std::string &username, const std::string &password); + bool mRegistrationEnabled; std::string mUpdateHost; Worlds mWorlds; Token mToken; diff --git a/src/net/loginhandler.h b/src/net/loginhandler.h index 0ac9d086..9291f2b2 100644 --- a/src/net/loginhandler.h +++ b/src/net/loginhandler.h @@ -63,6 +63,8 @@ class LoginHandler */ virtual int supportedOptionalActions() const = 0; + virtual bool isRegistrationEnabled() = 0; + virtual void getRegistrationDetails() = 0; virtual unsigned int getMinUserNameLength() const { return 4; } diff --git a/src/net/manaserv/loginhandler.cpp b/src/net/manaserv/loginhandler.cpp index b3c70226..e51aef6f 100644 --- a/src/net/manaserv/loginhandler.cpp +++ b/src/net/manaserv/loginhandler.cpp @@ -354,6 +354,11 @@ void LoginHandler::disconnect() } } +bool LoginHandler::isRegistrationEnabled() +{ + return true; +} + void LoginHandler::getRegistrationDetails() { MessageOut msg(PAMSG_REQUEST_REGISTER_INFO); diff --git a/src/net/manaserv/loginhandler.h b/src/net/manaserv/loginhandler.h index 6416ff29..d2ffbc3d 100644 --- a/src/net/manaserv/loginhandler.h +++ b/src/net/manaserv/loginhandler.h @@ -47,6 +47,8 @@ class LoginHandler : public MessageHandler, public Net::LoginHandler int supportedOptionalActions() const { return Unregister | ChangeEmail | SetEmailOnRegister; } + bool isRegistrationEnabled(); + void getRegistrationDetails(); unsigned int getMinUserNameLength() const; -- cgit v1.2.3-70-g09d2