public static void HandleLoginRequest(SOEClient sender, SOEMessage message) { // Setup a reader SOEReader reader = new SOEReader(message); // Get the login details string clientToken = reader.ReadASCIIString(); reader.ReadUInt64(); string clientVersion = reader.ReadASCIIString(); // Correct client version? Log.DebugFormat("Received login request from client {0}, token: {1}, version: {2}", sender.GetClientID(), clientToken, clientVersion); string expectedClientVersion = Server.ApplicationConfiguration["ClientVersion"]; if (clientVersion != expectedClientVersion) { // Error! Log.ErrorFormat("Received login request from outdated client: {0}", clientVersion); SendLoginResponse(sender, false); sender.Disconnect((ushort)SOEDisconnectReasons.Application); return; } // Create a login request and enqueue it LoginRequest request = new LoginRequest(sender, clientToken, clientVersion); LoginQueue.Enqueue(request); }
public static void ReceiveLog(SOEClient sender, byte[] command) { // Setup a reader SOEReader reader = new SOEReader(command); reader.ReadHostUInt16(); // Get the manager and message string manager = reader.ReadASCIIString().Replace(".log", ""); string message = reader.ReadASCIIString(); // Get the logger for the manager ILog log = Server.Logger.GetLogger(manager); int clientId = sender.GetClientID(); string username = AccountManager.GetAccount(sender).Username; // Is this a critical error? if (manager == "ClientCriticalError") { log.ErrorFormat("[{0}, {1}] {2}", clientId, username, message); } else { log.InfoFormat("[{0}, {1}] {2}", clientId, username, message); } }