//!banned SPECIFIC HANDLING. WE JUST HANDLE MORE VARIABLES HERE. public static void BannedXML(string command, string who, float days, int amount) { XMLRead.BannedReadXML(who); int initialAmount = XMLRead.commandAmountRead; float initialDays = XMLRead.daysRead; GankCommandInfo overview = new GankCommandInfo(); overview.who = command; overview.commandAmount = initialAmount + amount; overview.days = initialDays + days; //ADD TO THE TOTAL DAYS COUNT overview.victim = who; //SETTING A VICTIM System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); //AS THIS IS BANNED SPECIFIC WE PREDEFINE BANNED, AND INSTEAD USE THE VICTIM TO CHANGE THE FILENAME string whopath = "//gankbot/banned" + who + "BotVariables.xml"; var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + whopath; System.IO.FileStream file = System.IO.File.Create(path); writer.Serialize(file, overview); file.Close(); }
//!banned SPECIFIC HANDLING. WORKS LIKE ReadXML(), WE READ MORE DATA HERE AND FILE PATH IS SLIGHTLY DIFFERENT public static void BannedReadXML(string who) { string whopath = "//gankbot/banned" + who + "BotVariables.xml"; //<<<---DIFFERENT PATH var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + whopath; System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); if (File.Exists(path)) { System.IO.StreamReader files = new System.IO.StreamReader(path); Console.WriteLine("PATH FOUND!"); GankCommandInfo overview = (GankCommandInfo)reader.Deserialize(files); files.Close(); Console.WriteLine(overview.who + overview.commandAmount); whoRead = overview.who; commandAmountRead = overview.commandAmount; daysRead = overview.days; //EXTRA DATA POINT } else { Console.WriteLine("CREATING NEW XML FILE"); commandAmountRead = 0; daysRead = 0; //EXTRA DATA POINT GankCommandInfo overview = new GankCommandInfo(); System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); System.IO.FileStream file = System.IO.File.Create(path); writer.Serialize(file, overview); file.Close(); return; } }
//READ FILE FUNCTION public static void ReadXML(string who) { string whopath = "//gankbot" + who + "BotVariables.xml"; //FIND A FILE PATH var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + whopath; //SET THE FULL PATH System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); //SERIALIZE THE DATA if (File.Exists(path)) //IF THE FILE EXISTS { System.IO.StreamReader files = new System.IO.StreamReader(path); //READ THE FILE Console.WriteLine("PATH FOUND!"); //LOG TO THE CONSOLE GankCommandInfo overview = (GankCommandInfo)reader.Deserialize(files); //DESERIALIZE files.Close(); //CLOSE THE FILE // USE THE VALUES READ FROM THE FILE TO DEFINE THE STATIC VARIABLES whoRead = overview.who; commandAmountRead = overview.commandAmount; } else //IF THE FILE DOES NOT EXIST (LIKELY WHEN THE COMMAND IS FIRST CALLED) { Console.WriteLine("CREATING NEW XML FILE"); //LOG TO THE CONSOLE GankCommandInfo overview = new GankCommandInfo(); commandAmountRead = 0; //SET THIS TO 0 AS IT'S THE FIRST TIME THE COMMAND HAS BEEN USED //CREATE A NEW FILE System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); System.IO.FileStream file = System.IO.File.Create(path); writer.Serialize(file, overview); file.Close(); } }
//WRITING TO AN XML FILE FUNCTION public static void WriteXML(string who, int amount) { GankCommandInfo overview = new GankCommandInfo(); //DEFINE A NEW INSTANCE overview.who = who; //SET THE COMMAND CALLED overview.commandAmount = amount; //SET THE INITIAL CALLED AMOUNT System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); //SETUP SERILIZATION OF DATA string whopath = "//gankbot" + who + "BotVariables.xml"; //DEFINE A FILE NAME BASED ON INFORMATION PASSED var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + whopath; //SETUP A FILE PATH System.IO.FileStream file = System.IO.File.Create(path); //CREATE THE PATH writer.Serialize(file, overview); //WRITE THE DATA TO THE FILE file.Close(); //CLOSE THE FILE }
//SAME AS ABOVE BUT WE PERFORM A FILE READ BEFORE HAND TO GET CORRECT AMOUNT VALUES. public static void ReadThenWrite(string who, int amount) { XMLRead.ReadXML(who); //READ THE FILE int initialAmount = XMLRead.commandAmountRead; GankCommandInfo overview = new GankCommandInfo(); overview.who = who; overview.commandAmount = initialAmount + amount; //<<<< --- THIS IS CHANGED TO ADD TO THE PREVIOUS AMOUNT System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(GankCommandInfo)); string whopath = "//gankbot/" + who + "BotVariables.xml"; var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + whopath; System.IO.FileStream file = System.IO.File.Create(path); writer.Serialize(file, overview); file.Close(); }