internal static void HandleEmailEntry(Mobile m, string email) { if (_AuthList.ContainsKey(m.Serial)) { m.SendMessage("You already have a transaction awaiting authentication, please check your email."); return; } string key = CreateKey(); ChangeRequest request = new ChangeRequest(m, RequestType.Email, key, email); ChangeRequestTimer timer = new ChangeRequestTimer(m); _AuthList.Add(m.Serial, request); _Timers.Add(m.Serial, timer); timer.Start(); MailMessage mail = CreateMailMessage(m, request.RequestType, key, email); SendMailMessage(mail, m); m.SendMessage("A email has been sent to the supplied address. Please read the email for further instructions."); }
public static void OnCommand_Auth(CommandEventArgs e) { Mobile m = e.Mobile; if (m == null) { return; } if (e.ArgString == null || e.ArgString == "") { m.SendMessage("Usage: [auth <key>"); return; } if (!_AuthList.ContainsKey(m.Serial)) { m.SendMessage("You do not have any account requests that need authorization"); return; } ChangeRequest req = _AuthList[m.Serial]; bool Auth = req.Authenticate(e.ArgString); if (Auth) { switch (req.RequestType) { case RequestType.ChangeEmail: { Account acc = (Account)m.Account; if (acc != null) { acc.SetTag("EMAIL", req.RequestString); m.SendMessage("Your registered email address has been changed."); } break; } case RequestType.Email: { Account acc = (Account)m.Account; if (acc != null) { acc.AddTag("EMAIL", req.RequestString); m.SendMessage("Your email address has been registered with this account."); } break; } case RequestType.Password: { Account acc = (Account)m.Account; if (acc != null) { acc.SetPassword(req.RequestString); m.SendMessage("Your account password has been changed."); } break; } } if (_Timers.ContainsKey(m.Serial)) { ChangeRequestTimer timer = _Timers[m.Serial]; timer.Stop(); _Timers.Remove(m.Serial); _AuthList.Remove(m.Serial); } } else { m.SendMessage("That key was invalid"); } }