public static void Password_OnCommand(CommandEventArgs e) { Mobile from = e.Mobile; Account acct = from.Account as Account; if (acct == null) { return; } IPAddress[] accessList = acct.LoginIPs; if (accessList.Length == 0) { return; } NetState ns = from.NetState; if (ns == null) { return; } if (e.Length == 0) { from.SendMessage("Musis specifikovat nove heslo."); return; } else if (e.Length == 1) { from.SendMessage("Kvuly prevenci prekliknuti pri psani hesla, musis zadat sve heslo dvakrat. Pouzij tento format:"); from.SendMessage(".Heslo \"(Noveheslo)\" \"(ZnovuNoveHeslo)\""); return; } string pass = e.GetString(0); string pass2 = e.GetString(1); if (pass != pass2) { from.SendMessage("Heslo se neshoduje!"); return; } bool isSafe = true; for (int i = 0; isSafe && i < pass.Length; ++i) { isSafe = (pass[i] >= 0x20 && pass[i] < 0x80); } if (!isSafe) { from.SendMessage("Toto neni platne heslo."); return; } try { IPAddress ipAddress = ns.Address; if (Utility.IPMatchClassC(accessList[0], ipAddress)) { acct.SetPassword(pass); from.SendMessage("The password to your account has changed."); } else { PageEntry entry = PageQueue.GetEntry(from); if (entry != null) { if (entry.Message.StartsWith("[Automated: Change Password]")) { from.SendMessage("You already have a password change request in the help system queue."); } else { from.SendMessage("Your IP address does not match that which created this account."); } } else if (PageQueue.CheckAllowedToPage(from)) { from.SendMessage("Your IP address does not match that which created this account. A page has been entered into the help system on your behalf."); from.SendLocalizedMessage(501234, "", 0x35); /* The next available Counselor/Game Master will respond as soon as possible. * Please check your Journal for messages every few minutes. */ PageQueue.Enqueue(new PageEntry(from, String.Format("[Automated: Change Password]<br>Desired password: {0}<br>Current IP address: {1}<br>Account IP address: {2}", pass, ipAddress, accessList[0]), PageType.Account)); } } } catch { } }
public static void Password_OnCommand(CommandEventArgs e) { Mobile from = e.Mobile; Account acct = from.Account as Account; if (acct == null) { return; } IPAddress[] accessList = acct.LoginIPs; if (accessList.Length == 0) { return; } NetState ns = from.NetState; if (ns == null) { return; } if (e.Length == 0) { from.SendMessage("You must specify the new password."); return; } else if (e.Length == 1) { from.SendMessage("To prevent potential typing mistakes, you must type the password twice. Use the format:"); from.SendMessage("Password \"(newPassword)\" \"(repeated)\""); return; } string pass = e.GetString(0); string pass2 = e.GetString(1); if (pass != pass2) { from.SendMessage("The passwords do not match."); return; } bool isSafe = true; for (int i = 0; isSafe && i < pass.Length; ++i) { isSafe = (pass[i] >= 0x20 && pass[i] < 0x7F); } if (!isSafe) { from.SendMessage("That is not a valid password."); return; } try { IPAddress ipAddress = ns.Address; if (Utility.IPMatchClassC(accessList[0], ipAddress)) { acct.SetPassword(pass); from.SendMessage("The password to your account has changed."); } else { PageEntry entry = PageQueue.GetEntry(from); if (entry != null) { if (entry.Message.StartsWith("[Automated: Change Password]")) { from.SendMessage("You already have a password change request in the help system queue."); } else { from.SendMessage("Your IP address does not match that which created this account."); } } else if (PageQueue.CheckAllowedToPage(from)) { from.SendMessage("Your IP address does not match that which created this account. A page has been entered into the help system on your behalf."); from.SendLocalizedMessage(501234, "", 0x35); /* The next available Counselor/Game Master will respond as soon as possible. * Please check your Journal for messages every few minutes. */ PageQueue.Enqueue(new PageEntry(from, string.Format("[Automated: Change Password]<br>Desired password: {0}<br>Current IP address: {1}<br>Account IP address: {2}", pass, ipAddress, accessList[0]), PageType.Account)); } } } catch { } }
private static void Pages(NetState state, PacketReader pvSrc) // 0x08 { ArrayList list = PageQueue.List; int identifier = pvSrc.ReadInt32(); byte subID = pvSrc.ReadByte(); Mobile sender = World.FindMobile(identifier); if (sender == null) { return; } PageEntry e = PageQueue.GetEntry(sender); if (e == null) // no such page { return; } switch (subID) { case 0x01: // Handle { bool handle = pvSrc.ReadBoolean(); Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); if (from != null && (e.Handler == null || e.Handler == from)) { e.Handler = handle ? from : null; } //Console.WriteLine( "Handle: {0} handler: {1}", handle, from != null ? from.Name : "none" ); break; } case 0x02: // Remove { PageQueue.Remove(e); break; } case 0x03: // Predefined { byte messageIndex = pvSrc.ReadByte(); Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); ArrayList preresp = PredefinedResponse.List; if (from != null && messageIndex >= 0 && messageIndex < preresp.Count) { e.Sender.SendGump(new MessageSentGump(e.Sender, from.Name, ((PredefinedResponse)preresp[messageIndex]).Message)); } break; } case 0x04: // Answer { Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); string message = pvSrc.ReadString(); if (from != null) { e.Sender.SendGump(new MessageSentGump(e.Sender, from.Name, message)); } break; } } }