rendered paste bodyusing 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...");
}
}
}