All pastes #515154 Raw Edit

Someone

public text v1 · immutable
#515154 ·published 2007-05-28 02:18 UTC
rendered paste body
Index: 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