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);
            }
        }
Ejemplo n.º 5
0
 protected override void Process(Networking.ServerClient s)
 {
 }