示例#1
0
        public static AuthKey MakeKey(Account a, AuthType t, object state)
        {
            AuthKey ak = new AuthKey();

            ak.Type       = t;
            ak.State      = state;
            m_AuthKeys[a] = ak;
            return(ak);
        }
示例#2
0
        public static void Command_Account(Server.Commands.CommandEventArgs e)
        {
            Mobile m = e.Mobile;

            if (AutoRestart.Restarting)
            {
                m.SendMessage("Accounts cannot be managed during server wars.");
                return;
            }

            Account a = m.Account as Account;

            if (a == null)               // Sanity
            {
                return;
            }

            AuthKey ak = GetKey(a);

            string email = GetEMail(a);

            if (email == null && (ak == null || ak.Expired))
            {
                m.SendMessage("There is no e-mail linked to your account. Please register first.");
                m.CloseGump(typeof(LinkAddressGump));
                m.SendGump(new LinkAddressGump(m, a));
                return;
            }


            if (ak != null && !ak.Expired)
            {
                m.SendMessage("You already have a request pending. Please finalize your current request before making another.");
                return;
            }

            m.CloseGump(typeof(AccountManagementGump));
            m.SendGump(new AccountManagementGump(m, a));
        }
示例#3
0
        public static void Event_Login(LoginEventArgs e)
        {
            Mobile  m = e.Mobile;
            Account a = m.Account as Account;

            if (a == null)               // Sanity
            {
                return;
            }

            AuthKey ak    = GetKey(a);
            string  email = GetEMail(a);

            if (email == null && (ak == null || ak.Expired))
            {
                m.SendMessage("Please link a valid e-mail address to this account.");
                m.SendMessage("This e-mail address will only be used for account management.");
                m.CloseGump(typeof(LinkAddressGump));
                m.SendGump(new LinkAddressGump(m, a));
            }

            //m.SendMessage( "This account is owned by '{0}'.", a.EMail );
        }
示例#4
0
        public static void Command_Register(Server.Commands.CommandEventArgs e)
        {
            Mobile m = e.Mobile;

            if (AutoRestart.Restarting)
            {
                m.SendMessage("Validation requests expire during server wars. Please re-request after server restart.");
                return;
            }

            string key = e.ArgString;

            if (key == null || key == "")
            {
                m.SendMessage("You must enter a valid key.");
                return;
            }

            Account a = m.Account as Account;

            if (a == null)               // Sanity
            {
                return;
            }

            AuthKey ak = GetKey(a);

            if (ak == null)
            {
                m.SendMessage("You have no validations pending.");
                return;
            }
            else if (ak.Expired)
            {
                m.SendMessage("That validation key has expired.");
                return;
            }
            else if (ak.Key != key)
            {
                m.SendMessage("That validation key is incorrect.");
                return;
            }

            switch (ak.Type)
            {
            case AuthType.Register:
                string email = ak.State as string;
                a.SetTag("EMail", email);
                m.SendMessage("Your account has been registered.", email);
                break;

            case AuthType.EMail:
                a.RemoveTag("EMail");
                m.SendMessage("Your e-mail address has been reset.");
                m.SendMessage("You will be prompted to re-register on your next login.");
                break;

            case AuthType.Password:
                string pw = ak.State as string;
                a.SetPassword(pw);
                m.SendMessage("Your password has been changed.");
                break;

            default:
                m.SendMessage("ERROR: Invalid AuthType, please page an administrator for assistance.");
                break;
            }

            RemoveKey(a);
        }
示例#5
0
        public static AuthKey GetKey(Account a)
        {
            AuthKey ak = m_AuthKeys[a] as AuthKey;

            return(ak);
        }
 public static AuthKey MakeKey( Account a, AuthType t, object state )
 {
     AuthKey ak = new AuthKey();
     ak.Type = t;
     ak.State = state;
     m_AuthKeys[a] = ak;
     return ak;
 }