protected override void Process(Networking.ServerClient s) { ushort errorCode = GetUShort(0); if (Enum.IsDefined(typeof(PlayerAuthorizationErrorCodes), errorCode)) { PlayerAuthorizationErrorCodes enumErrorCode = (PlayerAuthorizationErrorCodes)errorCode; uint targetId = GetuInt(1); switch (enumErrorCode) { // A new player logs in. case PlayerAuthorizationErrorCodes.Login: { Entities.User u = Managers.UserManager.Instance.Get(targetId); if (u != null) { uint userId = GetuInt(2); string username = GetString(3); string displayname = GetString(4); byte _accessLevel = GetByte(5); u.OnAuthorize(userId, username, displayname, _accessLevel); } break; } // Update the information of a player. case PlayerAuthorizationErrorCodes.Update: { break; } // A player logs out of the server. case PlayerAuthorizationErrorCodes.Logout: { break; } case PlayerAuthorizationErrorCodes.InvalidSession: { Entities.User u = Managers.UserManager.Instance.Get(targetId); if (u != null) { if (!u.Authorized) { u.Send(new Packets.Authorization(Packets.Authorization.ErrorCodes.NormalProcedure)); } u.Disconnect(); } break; } case PlayerAuthorizationErrorCodes.IvalidMatch: { Entities.User u = Managers.UserManager.Instance.Get(targetId); if (u != null) { u.Send(new Packets.Authorization(Packets.Authorization.ErrorCodes.NormalProcedure)); u.Disconnect(); } break; } case PlayerAuthorizationErrorCodes.SessionAlreadyActivated: { Entities.User u = Managers.UserManager.Instance.Get(targetId); if (u != null) { u.Send(new Packets.Authorization(Packets.Authorization.ErrorCodes.NormalProcedure)); u.Disconnect(); } break; } default: { // Unused. break; } } } else { Log.Instance.WriteLine(string.Concat("Unknown PlayerAuthorization error: ", errorCode)); } }
protected virtual void Process(Networking.ServerClient s) { }
protected override void Process(Networking.ServerClient s) { s.Send(new Packets.Internal.Authorization()); }
protected override void Process(Networking.ServerClient s) { ushort errorCode = GetUShort(0); if (s.Authorized) { return; // Ignore other packets. } if (Enum.IsDefined(typeof(AuthorizationErrorCodes), errorCode)) { AuthorizationErrorCodes enumErrorCode = (AuthorizationErrorCodes)errorCode; switch (enumErrorCode) { case AuthorizationErrorCodes.OK: { s.OnAuthorize(GetByte(1)); Console.Title = "AlterEmu - Game Server: " + Config.SERVER_NAME; if (!s.IsFirstConnect) { // We disconnected, sync the server! } break; } case AuthorizationErrorCodes.InvalidKey: { Log.Instance.WriteLine("Error while authorizing: the authorization key didn't match."); s.Disconnect(true); break; } case AuthorizationErrorCodes.Duplicate: { Log.Instance.WriteLine("Error while authorizing: a server with the same ip address is already online."); s.Disconnect(true); break; } case AuthorizationErrorCodes.MaxServersReached: { Log.Instance.WriteLine("Error while authorizing: maximum amount of servers reached."); s.Disconnect(true); break; } case AuthorizationErrorCodes.NameAlreadyUsed: { Log.Instance.WriteLine("Error while authorizing: the server name is already in use."); s.Disconnect(true); break; } default: { Log.Instance.WriteLine(string.Concat("An unknown(", errorCode.ToString("x2"), ") error occured while authorizing the server.")); s.Disconnect(true); break; } } } else { // Unknown error Log.Instance.WriteLine(string.Concat("An unknown(", errorCode.ToString("x2"), ") error occured while authorizing the server.")); s.Disconnect(true); } }
protected override void Process(Networking.ServerClient s) { }