using System; using System.Collections.Generic; using System.Text; using System.Data.Common; using System.Xml; using System.Xml.Serialization; using System.Xml.Schema; using System.IO; using AoLib.Utils; namespace VhaBot.Plugins { [XmlRoot("Levels", Namespace = "", IsNullable = false)] public class LevelAnswers { [XmlElement("level")] public LevelAnswer[] Levels; } public class LevelAnswer { [XmlElement("level")] public int Level; [XmlElement("teamlow")] public int TeamLow; [XmlElement("teamhigh")] public int TeamHigh; [XmlElement("pvplow")] public int PvPLow; [XmlElement("pvphigh")] public int PvPHigh; [XmlElement("m1")] public int M1; [XmlElement("m2")] public int M2; [XmlElement("m3")] public int M3; [XmlElement("m4")] public int M4; [XmlElement("m5")] public int M5; [XmlElement("m6")] public int M6; [XmlElement("m7")] public int M7; [XmlElement("m8")] public int M8; [XmlElement("m9")] public int M9; [XmlElement("m10")] public int M10; [XmlElement("m11")] public int M11; [XmlElement("m12")] public int M12; [XmlElement("xpsk")] public int XpSk; } public class LevelPlugin : PluginBase { public string[] Mission; public LevelPlugin() { this.Settings.Name = "Level Plugin"; this.Settings.InternalName = "LevelPlugin"; this.Settings.Version = 1; this.Settings.Author = "Daniel Eriksson"; this.Settings.RegisterCommand("level", new BotCommandRights(UserLevel.Guest, UserLevel.Member, UserLevel.Guest)); this.Settings.RegisterCommandAlias("mission", "level"); this.Settings.RegisterCommandAlias("lvl", "level"); this.Settings.RegisterCommandAlias("l", "level"); } public string ParseXML(string level) { string msg = ""; int val = 0; try { val = int.Parse(level); } catch { msg = "You must specify a valid number."; return msg; } try { FileStream stream = File.Open("Level.xml", FileMode.Open, FileAccess.Read); XmlSerializer serializer = new XmlSerializer(typeof(LevelAnswers)); LevelAnswers result = (LevelAnswers)serializer.Deserialize(stream); foreach (LevelAnswer answer in result.Levels) { if (answer.Level == val) { msg = "L " + val + ": "; msg += "Team " + answer.TeamLow + "-" + answer.TeamHigh + " | "; msg += "PvP " + answer.PvPLow + "-" + answer.PvPHigh + " | "; msg += answer.XpSk; if (val > 200) msg += " SK"; else msg += " XP"; msg += " | "; msg += "Missions "; msg += answer.M1 + ", "; msg += answer.M2 + ", "; msg += answer.M3 + ", "; msg += answer.M4 + ", "; msg += answer.M5 + ", "; msg += answer.M6 + ", "; msg += answer.M7 + ", "; msg += answer.M8 + ", "; msg += answer.M9 + ", "; msg += answer.M10 + ", "; msg += answer.M11 + ", "; msg += answer.M12; } } stream.Close(); } catch (Exception ex) { msg = "Cant open the tard file" + ex.ToString(); } if (msg == "") msg = "Can't find that level in database."; return msg; } public override void OnInstall() { } public override void OnUninstall() { } public override void OnLoad() { } public override void OnUnload() { } public override void OnCommand(BotShell sender, CommandArgs e) { if (e.Args.Length > 0) Bot.SendReply(e, "Level »» " + ParseXML(e.Args[0])); else Bot.SendReply(e, "Level »» You got to append a level to. Syntax: level [level]"); } } }