Пример #1
0
        /// <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;
			}
		}
Пример #3
0
        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;
            }
        }