runuo/Scripts/Misc/ValidationQueue.cs
eos 9f0a67e5d7 - Added a new Assemblies.cfg file (Assemblies_4_0.cfg) specific for .NET 4.0, which includes System.Core.dll by default.
- Fixed cu sidhe and reptalon trade statuettes.
- Made IAccount comparable, to be able to sort by account in-game.
- Fixed item leak in ChampionSpawn and Harrower.
- Added ChampionSpawn and Harrower leaked item types to Cleanup.
- Added a helper for handling validation after deserialization, and converted classes using that technique to the new system.
- Fixed bulletin board item leak, and the core bug that caused it. Leaked items will be cleaned up on server boot.
- Fixed bulletin board message content packet to compensate for a client bug.
- Monster AI is now deactivated on the internal map, like it is on inactive sectors.
- Monster AI activity is now checked on map changes as well, not just location changes.
- Corrected hiding requirement needed to train stealth from an NPC for Core.ML.
- Fixed a SendLocalizedMessage overload calling itself.
2012-03-21 22:25:44 +00:00

57 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Reflection;
using Server;
namespace Server
{
public delegate void ValidationEventHandler();
public static class ValidationQueue
{
public static event ValidationEventHandler StartValidation;
public static void Initialize()
{
if ( StartValidation != null )
StartValidation();
StartValidation = null;
}
}
public static class ValidationQueue<T>
{
private static List<T> m_Queue;
static ValidationQueue()
{
m_Queue = new List<T>();
ValidationQueue.StartValidation += new ValidationEventHandler( ValidateAll );
}
public static void Add( T obj )
{
m_Queue.Add( obj );
}
private static void ValidateAll()
{
Type type = typeof( T );
if ( type != null )
{
MethodInfo m = type.GetMethod( "Validate", BindingFlags.Instance | BindingFlags.Public );
if ( m != null )
{
for ( int i = 0; i < m_Queue.Count; ++i )
m.Invoke( m_Queue[i], null );
}
}
m_Queue.Clear();
m_Queue = null;
}
}
}