rendered paste bodyIndex: src/game/Chat.cpp
===================================================================
--- src/game/Chat.cpp (revision 76)
+++ src/game/Chat.cpp (working copy)
@@ -239,6 +239,8 @@
{ "commands", 1, &ChatHandler::HandleCommandsCommand, "Shows Commands", NULL, 0, 0, 0},
{ "help", 1, &ChatHandler::HandleHelpCommand, "Shows help for command", NULL, 0, 0, 0},
+ { "reloadaccounts", 'z', &ChatHandler::HandleReloadAccountsCommand, "Reloads the accounts on the realm server.", NULL, 0, 0, 0},
+
{ "announce", 'u', &ChatHandler::HandleAnnounceCommand, "Sends Msg To All", NULL, 0, 0, 0},
{ "wannounce", 'u', &ChatHandler::HandleWAnnounceCommand, "Sends Widescreen Msg To All", NULL, 0, 0, 0},
Index: src/game/Chat.h
===================================================================
--- src/game/Chat.h (revision 76)
+++ src/game/Chat.h (working copy)
@@ -235,6 +235,7 @@
bool HandleListAIAgentCommand(const char* args, WorldSession *m_session);
// Level 3 commands
+ bool HandleReloadAccountsCommand(const char* args, WorldSession *m_session);
bool HandleSecurityCommand(const char* args, WorldSession *m_session);
bool HandleWorldPortCommand(const char* args, WorldSession *m_session);
bool HandleAddWeaponCommand(const char* args, WorldSession *m_session);
Index: src/game/Level3.cpp
===================================================================
--- src/game/Level3.cpp (revision 76)
+++ src/game/Level3.cpp (working copy)
@@ -1077,6 +1077,13 @@
return true;
}
+bool ChatHandler::HandleReloadAccountsCommand(const char* args, WorldSession *m_session)
+{
+ sLogonCommHandler.LogonReloadAccounts();
+ GreenSystemMessage(m_session, "Accounts reloaded.");
+ return true;
+}
+
bool ChatHandler::HandleResetTalentsCommand(const char* args, WorldSession *m_session)
{
Player *plr = this->getSelectedChar(m_session);
Index: src/game/LogonCommHandler.cpp
===================================================================
--- src/game/LogonCommHandler.cpp (revision 76)
+++ src/game/LogonCommHandler.cpp (working copy)
@@ -263,6 +263,18 @@
itr->second->SendPacket(&data);
}
+void LogonCommHandler::LogonReloadAccounts()
+{
+ WorldPacket data(RCMSG_ACCT_RELOAD);
+ map<LogonServer*, LogonCommClientSocket*>::iterator itr = logons.begin();
+ if(logons.size() == 0 || itr->second == 0)
+ {
+ // No valid logonserver is connected.
+ return;
+ }
+ itr->second->SendPacket(&data);
+}
+
void LogonCommHandler::LoadRealmConfiguration()
{
uint32 logoncount = Config.RealmConfig.GetIntDefault("LogonServerCount", 0);
Index: src/game/LogonCommHandler.h
===================================================================
--- src/game/LogonCommHandler.h (revision 76)
+++ src/game/LogonCommHandler.h (working copy)
@@ -74,6 +74,7 @@
void UpdateSockets();
void Connect(LogonServer * server);
void LogonDatabaseSQLExecute(const char* str, ...);
+ void LogonReloadAccounts();
void LoadRealmConfiguration();
void AddServer(string Name, string Address, uint32 Port);
Index: src/logonserver/LogonCommServer.cpp
===================================================================
--- src/logonserver/LogonCommServer.cpp (revision 76)
+++ src/logonserver/LogonCommServer.cpp (working copy)
@@ -98,12 +98,22 @@
HandleSQLExecute(recvData);
break;
+ case RCMSG_ACCT_RELOAD:
+ HandleAcctReload(recvData);
+ break;
+
default:
printf("Got unknwon packet from logoncomm: %u\n", recvData.GetOpcode());
break;
}
}
+void LogonCommServerSocket::HandleAcctReload(WorldPacket & recvData)
+{
+ sLog.outBasic("Reloading accounts by request of World Server");
+ sAccountMgr.ReloadAccounts(true);
+}
+
void LogonCommServerSocket::HandleRegister(WorldPacket & recvData)
{
Realm realm;
Index: src/logonserver/LogonCommServer.h
===================================================================
--- src/logonserver/LogonCommServer.h (revision 76)
+++ src/logonserver/LogonCommServer.h (working copy)
@@ -32,6 +32,7 @@
void HandlePing(WorldPacket & recvData);
void HandleSessionRequest(WorldPacket & recvData);
void HandleSQLExecute(WorldPacket & recvData);
+ void HandleAcctReload(WorldPacket & recvData);
uint32 last_ping;
bool removed;
Index: src/logonserver/LogonOpcodes.h
===================================================================
--- src/logonserver/LogonOpcodes.h (revision 76)
+++ src/logonserver/LogonOpcodes.h (working copy)
@@ -31,6 +31,9 @@
// SQL Query Execute
RCMSG_SQL_EXECUTE = 7,
+
+ // Reload accounts
+ RCMSG_ACCT_RELOAD = 8,
};
#endif