All pastes #25172 Raw Edit

Mine

public text v1 · immutable
#25172 ·published 2005-10-10 21:59 UTC
rendered paste body
using System;
using System.Reflection;
using System.IO;
using DOL.Database;
using DOL.Database.Attributes;
using DOL.Database.Connection;
using DOL.Events;
using DOL.GS.PacketHandler;
using log4net;

namespace DOL.GS.Scripts
{
	public class HeraldDBGenerator
	{
		/// <summary>
		/// Defines a logger for this class.
		/// </summary>
		private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

		[ScriptLoadedEvent]
		public static void OnScriptLoaded(DOLEvent e, object sender, EventArgs args)
		{
			Start();
		}

		[ScriptUnloadedEvent]
		public static void OnScriptUnloaded(DOLEvent e, object sender, EventArgs args)
		{
			Stop();
		}


		[DataTable(TableName="Herald")]
		public class Herald : DataObject
		{
			private string m_name = "NA";
			private string m_lastName = "NA";
			private string m_guild = "NA";
			private string m_race = "NA";
			private string m_class = "NA";
			private int m_lvl = 0;
			private string m_realm = "NA";
			private string m_realmPts = "NA";
			private string m_lastPlayed = "NA";
			

			private static bool m_autoSave = true;

			public override bool AutoSave
			{
				get { return m_autoSave; }
				set { m_autoSave = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string Name
			{
				get { return m_name; }
				set { m_name = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string LastName
			{
				get { return m_lastName; }
				set { m_lastName = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string Guild
			{
				get { return m_guild; }
				set { m_guild = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string Race
			{
				get { return m_race; }
				set { m_race = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string Class
			{
				get { return m_class; }
				set { m_class = value; }
			}


			[DataElement(AllowDbNull=true)]
			public string Realm
			{
				get { return m_realm; }
				set { m_realm = value; }
			}


			[DataElement(AllowDbNull=true)]
			public int Level
			{
				get { return m_lvl; }
				set { m_lvl = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string RealmPoints
			{
				get { return m_realmPts; }
				set { m_realmPts = value; }
			}

			[DataElement(AllowDbNull=true)]
			public string LastPlayed
			{
				get { return m_lastPlayed; }
				set { m_lastPlayed = value; }
			}

		}

		public static void Generate()
		{
			try
			{
				DataConnection con = new DataConnection(ConnectionType.DATABASE_XML, "."+Path.DirectorySeparatorChar+"herald");
				ObjectDatabase db = new ObjectDatabase(con);

				db.RegisterDataObject(typeof (Herald));

				Character[] allChars = (Character[])GameServer.Database.SelectAllObjects(typeof(Character));
				foreach(Character singleChar in allChars) 
			
				{
					Herald pi = new Herald();
					Character plr = singleChar;

					pi.Name = plr.Name;
					pi.LastName = plr.LastName;
					pi.Class = ((eCharacterClass) plr.Class).ToString();
					pi.Race = ((eRace) plr.Race).ToString();
					pi.Guild = plr.GuildName;
					pi.Level = plr.Level;
   				pi.Realm = ((eRealm) plr.Realm).ToString();
					pi.RealmPoints =  plr.RealmPoints.ToString();
					pi.LastPlayed = plr.LastPlayed.ToString();
					
					db.AddNewObject(pi);
				}

				db.WriteDatabaseTables();
				con = null;
				db = null;

				if (log.IsInfoEnabled)
					log.Info("Herald Generation initialized");
			}
			catch (Exception e)
			{
				if (log.IsErrorEnabled)
					log.Error("Herald Generation: ", e);
			}
		}

		public static void Start()
		{

			Generate();
			if (log.IsInfoEnabled)
				log.Info("Herald generation done...");
		}

		public static void Stop()
		{
			
			//Generate();
			if (log.IsInfoEnabled)
				log.Info("Herald generation done...");
		}

	}
}