/// <summary> /// Purges the jailing history /// </summary> /// <param name="m">The user invoking the history purge</param> /// <param name="filter">The purge filter</param> public static void PurgeHistory(Mobile m, JailPurge filter) { ArrayList history = GetHistory(); ArrayList purged = new ArrayList(); foreach (JailEntry jail in history) { if (filter.PurgeCheck(jail)) { purged.Add(jail); } } if (purged.Count == 0) { m.SendMessage("The specified purge found no matches in the history."); return; } foreach (JailEntry jail in purged) { history.Remove(jail); } SaveHistory(history); // Save the purged file if (!Directory.Exists(PurgedFolder)) { Directory.CreateDirectory(PurgedFolder); } string path = Path.Combine(PurgedFolder, string.Format("{0} Purged by {1}.xml", GetTimeStamp(), m.Name)); Console.WriteLine("{0} purged {1} jail entries", m.Name, purged.Count); m.SendMessage("You have just purged {0} jail entries", purged.Count); SaveJailFile(path, purged); }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { // Get information first m_Banned = false; m_Deleted = false; m_Old = false; foreach( int flag in info.Switches ) { switch ( flag ) { case 0: // Banned m_Banned = true; break; case 1: // Deleted m_Deleted = true; break; case 2: // Old m_Old = true; break; } } uint months = 0; try { months = uint.Parse( info.TextEntries[ 1 ].Text ); } catch{} finally { if ( months > 0 ) { m_Months = (int) months; } } string lookup = null; if ( info.TextEntries[ 0 ].Text != null ) { lookup = info.TextEntries[ 0 ].Text; } switch ( info.ButtonID ) { case 1: // View History ArrayList history = JailSystem.GetFullHistory(); if ( history.Count > 0 ) { sender.Mobile.SendGump( new JailListingGump( sender.Mobile, JailSystem.GetFullHistory(), new JailGumpCallback( JailAdminGumpCallback ) ) ); } else { sender.Mobile.SendMessage( "The history is empty" ); sender.Mobile.SendGump( new JailAdminGump( sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months ) ); } break; case 2: // Search for players case 3: // Search for accounts if ( lookup != null && lookup.Length > 0 ) { ArrayList matches = null; if ( info.ButtonID == 2 ) { matches = JailSystem.SearchForPlayers( lookup ); } else { matches = JailSystem.SearchForAccounts( lookup ); } if ( matches != null && matches.Count > 0 ) { sender.Mobile.SendGump( new JailSearchGump( matches, sender.Mobile, new JailGumpCallback( JailAdminGumpCallback ) ) ); } else { sender.Mobile.SendMessage( "No matches found" ); sender.Mobile.SendGump( new JailAdminGump( sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months ) ); } } else { sender.Mobile.SendMessage( "Invalid search" ); sender.Mobile.SendGump( new JailAdminGump( sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months ) ); } break; case 4: // Purge if ( ! ( m_Deleted || m_Banned || m_Old ) ) { sender.Mobile.SendMessage( "Invalid purge options. Please correct and try again." ); sender.Mobile.SendGump( new JailAdminGump( sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months ) ); } else { JailPurge purge = new JailPurge( m_Banned, m_Deleted, m_Old, m_Months ); JailSystem.PurgeHistory( sender.Mobile, purge ); sender.Mobile.SendGump( new JailAdminGump( sender.Mobile ) ); } break; case 5: // View Jail sender.Mobile.SendGump( new JailListingGump( sender.Mobile, JailSystem.Jailings, new JailGumpCallback( JailAdminGumpCallback ) ) ); break; } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { // Get information first m_Banned = false; m_Deleted = false; m_Old = false; foreach (int flag in info.Switches) { switch (flag) { case 0: // Banned m_Banned = true; break; case 1: // Deleted m_Deleted = true; break; case 2: // Old m_Old = true; break; } } uint months = 0; try { months = uint.Parse(info.TextEntries[1].Text); } catch {} finally { if (months > 0) { m_Months = (int)months; } } string lookup = null; if (info.TextEntries[0].Text != null) { lookup = info.TextEntries[0].Text; } switch (info.ButtonID) { case 1: // View History ArrayList history = JailSystem.GetFullHistory(); if (history.Count > 0) { sender.Mobile.SendGump(new JailListingGump(sender.Mobile, JailSystem.GetFullHistory(), new JailGumpCallback(JailAdminGumpCallback))); } else { sender.Mobile.SendMessage("The history is empty"); sender.Mobile.SendGump(new JailAdminGump(sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months)); } break; case 2: // Search for players case 3: // Search for accounts if (lookup != null && lookup.Length > 0) { ArrayList matches = null; if (info.ButtonID == 2) { matches = JailSystem.SearchForPlayers(lookup); } else { matches = JailSystem.SearchForAccounts(lookup); } if (matches != null && matches.Count > 0) { sender.Mobile.SendGump(new JailSearchGump(matches, sender.Mobile, new JailGumpCallback(JailAdminGumpCallback))); } else { sender.Mobile.SendMessage("No matches found"); sender.Mobile.SendGump(new JailAdminGump(sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months)); } } else { sender.Mobile.SendMessage("Invalid search"); sender.Mobile.SendGump(new JailAdminGump(sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months)); } break; case 4: // Purge if (!(m_Deleted || m_Banned || m_Old)) { sender.Mobile.SendMessage("Invalid purge options. Please correct and try again."); sender.Mobile.SendGump(new JailAdminGump(sender.Mobile, m_Banned, m_Deleted, m_Old, m_Months)); } else { JailPurge purge = new JailPurge(m_Banned, m_Deleted, m_Old, m_Months); JailSystem.PurgeHistory(sender.Mobile, purge); sender.Mobile.SendGump(new JailAdminGump(sender.Mobile)); } break; case 5: // View Jail sender.Mobile.SendGump(new JailListingGump(sender.Mobile, JailSystem.Jailings, new JailGumpCallback(JailAdminGumpCallback))); break; } }