Files
abysmal-isle/Scripts/SubSystem/TownHouses/Gumps/Error Reporting/Errors.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

84 lines
1.6 KiB
C#

#region References
using System;
using System.Collections;
using Server;
using Server.Network;
#endregion
namespace Knives.TownHouses
{
public class Errors
{
private static readonly ArrayList s_ErrorLog = new ArrayList();
private static readonly ArrayList s_Checked = new ArrayList();
public static ArrayList ErrorLog { get { return s_ErrorLog; } }
public static ArrayList Checked { get { return s_Checked; } }
public static void Initialize()
{
RUOVersion.AddCommand("TownHouseErrors", AccessLevel.Developer, OnErrors);
EventSink.Login += OnLogin;
}
private static void OnErrors(CommandInfo e)
{
if (e.ArgString == null || e.ArgString == "")
{
new ErrorsGump(e.Mobile);
}
else
{
Report(e.ArgString + " - " + e.Mobile.Name);
}
}
private static void OnLogin(LoginEventArgs e)
{
if (e.Mobile.AccessLevel != AccessLevel.Player && s_ErrorLog.Count != 0 && !s_Checked.Contains(e.Mobile))
{
new ErrorsNotifyGump(e.Mobile);
}
}
public static void Report(string error)
{
s_ErrorLog.Add(String.Format("<B>{0}</B><BR>{1}<BR>", DateTime.UtcNow, error));
s_Checked.Clear();
Notify();
}
private static void Notify()
{
foreach (var state in NetState.Instances)
{
if (state.Mobile == null)
{
continue;
}
if (state.Mobile.AccessLevel != AccessLevel.Player)
{
Notify(state.Mobile);
}
}
}
public static void Notify(Mobile m)
{
if (m.HasGump(typeof(ErrorsGump)))
{
new ErrorsGump(m);
}
else
{
new ErrorsNotifyGump(m);
}
}
}
}