---- Ponerland.cs ----   using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using Discord;   namespace DiscordBot.Commands {     class PonerLand     {         //PonerName Food Cleanliness Mood Level           public static void Tick()         {             StreamReader sr = new StreamReader("PonerLand.txt");             List names = new List();             while(!sr.EndOfStream)             {                 names.Add(sr.ReadLine().Split()[0]);             }             sr.Close();             foreach (string name in names)             {                 AddStat(name, 1, -1);                 AddStat(name, 2, -1);                 AddStat(name, 3, 6);                 AddStat(name, 4, 1);             }         }           public static void AddStat(string poner, int stat, int value)         {             SetStat(poner, stat, GetStat(poner, stat) + value);         }           public static void SetStat(string poner, int stat, int value)         {             bool ded = false;             List list = new List();             StreamReader sr = new StreamReader("PonerLand.txt");             while(!sr.EndOfStream)             {                 list.Add(sr.ReadLine());             }             sr.Close();             StreamWriter sw = new StreamWriter("PonerLand.txt");             foreach(string token in list)             {                 if(token.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     string[] ponerString = token.Split();                     int[] ponerStats = new int[ponerString.Length - 1];                     for(int i = 1; i < ponerString.Length; i++)                     {                         ponerStats[i - 1] = int.Parse(ponerString[i]);                     }                     ponerStats[stat - 1] = value;                     if (ponerStats[stat - 1] > 100) ponerStats[stat - 1] = 100;                     if (ponerStats[stat - 1] <= 0) ded = true;                     sw.WriteLine("{0} {1}", poner, string.Join(" ", ponerStats));                 }                 else                 {                     sw.WriteLine(token);                 }             }             sw.Close();             if (ded) Kill(poner);         }           public static bool IsPoner(string poner)         {             StreamReader sr = new StreamReader("PonerLand.txt");             while (!sr.EndOfStream)             {                 string line = sr.ReadLine();                 if (line.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     sr.Close();                     return true;                 }             }             sr.Close();             return false;         }           public static bool IsDedPoner(string poner)         {             StreamReader sr = new StreamReader("PonerGraveyard.txt");             while (!sr.EndOfStream)             {                 string line = sr.ReadLine();                 if (line.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     sr.Close();                     return true;                 }             }             sr.Close();             return false;         }           public static string Boop(string poner, string user)         {             if (IsPoner(poner))             {                 bool ded = (GetStat(poner, 3) - 2 <= 0);                 AddStat(poner, 3, -2);                 if (ded)                 {                     return string.Format("Congratulations. You booped {0} to death. Are you proud of yourself?", poner);                 }                 else                 {                     return string.Format("{0}: [scrunch]", poner);                 }             }             else             {                 if(IsDedPoner(poner))                 {                     return string.Format("You can't boop the dead, {0}.", user);                 }                 else                 {                     return poner + " does not exists in Ponyland.";                 }             }                     }           public static string Brushie(string poner, string user)         {             if (IsPoner(poner))             {                 if (GetStat(poner, 2) > 80)                 {                     if (GetStat(poner, 2) > 95)                     {                         AddStat(poner, 2, 2);                         bool ded = (GetStat(poner, 3) - 5 <= 0);                         AddStat(poner, 3, -5);                         if (ded)                         {                             return string.Format("You brushed {0} to death. Are you happy?", poner);                         }                         return string.Format("{0}: \"Stop brushing me!\"", poner);                     }                         Random r = new Random();                       if (r.Next(2) < 1)                     {                         AddStat(poner, 2, 5);                         return string.Format("[pleased {0} noises]", poner);                     }                     else                     {                         AddStat(poner, 2, 2);                         bool ded = (GetStat(poner, 3) - 3 <= 0);                         AddStat(poner, 3, -3);                         if (ded)                         {                             return string.Format("You brushed {0} to death. Are you happy?", poner);                         }                         return string.Format("{0}: \"I'm clean enough, stop brushing me.\"", poner);                     }                 }                 else {                     AddStat(poner, 2, 10);                     return string.Format("[pleased {0} noises]", poner);                 }             }             else             {                 if (IsDedPoner(poner))                 {                     return string.Format("You can't brush the dead, {0}.", user);                 }                 else                 {                     return poner + " does not exists in Ponyland.";                 }             }           }           public static string Feed(string poner, string user)         {             if (IsPoner(poner))             {                 if (GetStat(poner, 1) > 80)                 {                     if (GetStat(poner, 1) > 95)                     {                         AddStat(poner, 1, 5);                         bool ded = (GetStat(poner, 3) - 5 <= 0);                         AddStat(poner, 3, -5);                         if (ded)                         {                             return string.Format("You fed {0} to death.", poner);                         }                         return string.Format("{0}: \"I don't want your food!\"", poner);                     }                     Random r = new Random();                       if (r.Next(2) < 1)                     {                         AddStat(poner, 1, 10);                         return string.Format("[pleased {0} noises]", poner);                     }                     else                     {                           return string.Format("{0}: \"I'm full. I don't need your food.\"", poner);                     }                 }                 else {                     AddStat(poner, 1, 15);                     return string.Format("[pleased {0} noises]", poner);                 }             }             else             {                 if (IsDedPoner(poner))                 {                     return string.Format("You can't feed corpses, {0}.", user);                 }                 else                 {                     return poner + " does not exists in Ponyland.";                 }             }           }           public static int GetStat(string poner, int stat)         {             StreamReader sr = new StreamReader("PonerLand.txt");             while(!sr.EndOfStream)             {                 string line = sr.ReadLine();                 if(line.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     sr.Close();                     return int.Parse(line.Split()[stat]);                 }             }             sr.Close();             return 0;         }           public static int GetCount()         {             return 0;         }           public static string[] GetPoners()         {             List list = new List();             StreamReader sr = new StreamReader("PonerLand.txt");             while(!sr.EndOfStream)             {                 string[] ponerData = sr.ReadLine().Split();                 list.Add(string.Format("[{0}] {2}% Full, {1}% Clean, {3}% Happy, Level {4}.", ponerData[0], ponerData[2], ponerData[1], ponerData[3], ponerData[4]));             }             sr.Close();             return list.ToArray();         }           public static void NewPoner(string poner, Message message)         {             if(IsPoner(poner))             {                 message.Channel.SendMessage(poner + " already exists!");                 return;             }             if (IsDedPoner(poner))             {                 message.Channel.SendMessage(poner + " is dead. Just accept it.");                 return;             }             StreamWriter sw = new StreamWriter("PonerLand.txt", true);             sw.WriteLine(poner + " 80 80 80 0");             sw.Close();             message.Channel.SendMessage(poner + " has been brought to Ponyland!");         }           public static string GetCleanliness(int clean)         {             if (clean < 5)                 return "Extremely filthy";             else if (clean < 25)                 return "Filthy";             else if (clean < 50)                 return "Dirty";             else if (clean < 75)                 return "Rough";             else if (clean < 95)                 return "Clean";             else return "Spotless";         }           public static string GetHunger(int food)         {             if (food < 5)                 return "Famished";             else if (food < 25)                 return "Starving";             else if (food < 50)                 return "Hungry";             else if (food < 75)                 return "Satistfied";             else if (food < 95)                 return "Full";             else return "Stuffed";         }           public static string GetHappiness(int happy)         {             if (happy < 5)                 return "Flaming";             else if (happy < 15)                 return "Raging";             else if (happy < 30)                 return "Angry";             else if (happy < 45)                 return "Perturbed";             else if (happy < 75)                 return "Calm";             else return "Happy";         }           public static void Kill(string poner)         {             List list = new List();             StreamReader sr = new StreamReader("PonerLand.txt");             while (!sr.EndOfStream)             {                 list.Add(sr.ReadLine());             }             sr.Close();             StreamWriter sw = new StreamWriter("PonerLand.txt");             foreach (string token in list)             {                 if (!token.Contains(poner))                 {                     sw.WriteLine(token);                 }             }             StreamWriter graveyard = new StreamWriter("PonerGraveyard.txt", true);             graveyard.WriteLine("\n" + poner);             sw.Close();             graveyard.Close();         }           public static string[] GetDed()         {             List list = new List();             StreamReader sr = new StreamReader("PonerGraveyard.txt");             while (!sr.EndOfStream)             {                 list.Add(string.Format("[{0}]", sr.ReadLine()));             }             sr.Close();             return list.ToArray();         }     } }   ---- The code that goes in the command switch statement in Program.cs ----                                   ---- Ponerland.cs -------- Ponerland.cs ----   using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using Discord;   namespace DiscordBot.Commands {     class PonerLand     {         //PonerName Food Cleanliness Mood Level           public static void Tick()         {             StreamReader sr = new StreamReader("PonerLand.txt");             List names = new List();             while(!sr.EndOfStream)             {                 names.Add(sr.ReadLine().Split()[0]);             }             sr.Close();             foreach (string name in names)             {                 AddStat(name, 1, -1);                 AddStat(name, 2, -1);                 AddStat(name, 3, 6);                 AddStat(name, 4, 1);             }         }           public static void AddStat(string poner, int stat, int value)         {             SetStat(poner, stat, GetStat(poner, stat) + value);         }           public static void SetStat(string poner, int stat, int value)         {             bool ded = false;             List list = new List();             StreamReader sr = new StreamReader("PonerLand.txt");             while(!sr.EndOfStream)             {                 list.Add(sr.ReadLine());             }             sr.Close();             StreamWriter sw = new StreamWriter("PonerLand.txt");             foreach(string token in list)             {                 if(token.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     string[] ponerString = token.Split();                     int[] ponerStats = new int[ponerString.Length - 1];                     for(int i = 1; i < ponerString.Length; i++)                     {                         ponerStats[i - 1] = int.Parse(ponerString[i]);                     }                     ponerStats[stat - 1] = value;                     if (ponerStats[stat - 1] > 100) ponerStats[stat - 1] = 100;                     if (ponerStats[stat - 1] <= 0) ded = true;                     sw.WriteLine("{0} {1}", poner, string.Join(" ", ponerStats));                 }                 else                 {                     sw.WriteLine(token);                 }             }             sw.Close();             if (ded) Kill(poner);         }           public static bool IsPoner(string poner)         {             StreamReader sr = new StreamReader("PonerLand.txt");             while (!sr.EndOfStream)             {                 string line = sr.ReadLine();                 if (line.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     sr.Close();                     return true;                 }             }             sr.Close();             return false;         }           public static bool IsDedPoner(string poner)         {             StreamReader sr = new StreamReader("PonerGraveyard.txt");             while (!sr.EndOfStream)             {                 string line = sr.ReadLine();                 if (line.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     sr.Close();                     return true;                 }             }             sr.Close();             return false;         }           public static string Boop(string poner, string user)         {             if (IsPoner(poner))             {                 bool ded = (GetStat(poner, 3) - 2 <= 0);                 AddStat(poner, 3, -2);                 if (ded)                 {                     return string.Format("Congratulations. You booped {0} to death. Are you proud of yourself?", poner);                 }                 else                 {                     return string.Format("{0}: [scrunch]", poner);                 }             }             else             {                 if(IsDedPoner(poner))                 {                     return string.Format("You can't boop the dead, {0}.", user);                 }                 else                 {                     return poner + " does not exists in Ponyland.";                 }             }                     }           public static string Brushie(string poner, string user)         {             if (IsPoner(poner))             {                 if (GetStat(poner, 2) > 80)                 {                     if (GetStat(poner, 2) > 95)                     {                         AddStat(poner, 2, 2);                         bool ded = (GetStat(poner, 3) - 5 <= 0);                         AddStat(poner, 3, -5);                         if (ded)                         {                             return string.Format("You brushed {0} to death. Are you happy?", poner);                         }                         return string.Format("{0}: \"Stop brushing me!\"", poner);                     }                         Random r = new Random();                       if (r.Next(2) < 1)                     {                         AddStat(poner, 2, 5);                         return string.Format("[pleased {0} noises]", poner);                     }                     else                     {                         AddStat(poner, 2, 2);                         bool ded = (GetStat(poner, 3) - 3 <= 0);                         AddStat(poner, 3, -3);                         if (ded)                         {                             return string.Format("You brushed {0} to death. Are you happy?", poner);                         }                         return string.Format("{0}: \"I'm clean enough, stop brushing me.\"", poner);                     }                 }                 else {                     AddStat(poner, 2, 10);                     return string.Format("[pleased {0} noises]", poner);                 }             }             else             {                 if (IsDedPoner(poner))                 {                     return string.Format("You can't brush the dead, {0}.", user);                 }                 else                 {                     return poner + " does not exists in Ponyland.";                 }             }           }           public static string Feed(string poner, string user)         {             if (IsPoner(poner))             {                 if (GetStat(poner, 1) > 80)                 {                     if (GetStat(poner, 1) > 95)                     {                         AddStat(poner, 1, 5);                         bool ded = (GetStat(poner, 3) - 5 <= 0);                         AddStat(poner, 3, -5);                         if (ded)                         {                             return string.Format("You fed {0} to death.", poner);                         }                         return string.Format("{0}: \"I don't want your food!\"", poner);                     }                     Random r = new Random();                       if (r.Next(2) < 1)                     {                         AddStat(poner, 1, 10);                         return string.Format("[pleased {0} noises]", poner);                     }                     else                     {                           return string.Format("{0}: \"I'm full. I don't need your food.\"", poner);                     }                 }                 else {                     AddStat(poner, 1, 15);                     return string.Format("[pleased {0} noises]", poner);                 }             }             else             {                 if (IsDedPoner(poner))                 {                     return string.Format("You can't feed corpses, {0}.", user);                 }                 else                 {                     return poner + " does not exists in Ponyland.";                 }             }           }           public static int GetStat(string poner, int stat)         {             StreamReader sr = new StreamReader("PonerLand.txt");             while(!sr.EndOfStream)             {                 string line = sr.ReadLine();                 if(line.StartsWith(poner, true, System.Globalization.CultureInfo.CurrentCulture))                 {                     sr.Close();                     return int.Parse(line.Split()[stat]);                 }             }             sr.Close();             return 0;         }           public static int GetCount()         {             return 0;         }           public static string[] GetPoners()         {             List list = new List();             StreamReader sr = new StreamReader("PonerLand.txt");             while(!sr.EndOfStream)             {                 string[] ponerData = sr.ReadLine().Split();                 list.Add(string.Format("[{0}] {2}% Full, {1}% Clean, {3}% Happy, Level {4}.", ponerData[0], ponerData[2], ponerData[1], ponerData[3], ponerData[4]));             }             sr.Close();             return list.ToArray();         }           public static void NewPoner(string poner, Message message)         {             if(IsPoner(poner))             {                 message.Channel.SendMessage(poner + " already exists!");                 return;             }             if (IsDedPoner(poner))             {                 message.Channel.SendMessage(poner + " is dead. Just accept it.");                 return;             }             StreamWriter sw = new StreamWriter("PonerLand.txt", true);             sw.WriteLine(poner + " 80 80 80 0");             sw.Close();             message.Channel.SendMessage(poner + " has been brought to Ponyland!");         }           public static string GetCleanliness(int clean)         {             if (clean < 5)                 return "Extremely filthy";             else if (clean < 25)                 return "Filthy";             else if (clean < 50)                 return "Dirty";             else if (clean < 75)                 return "Rough";             else if (clean < 95)                 return "Clean";             else return "Spotless";         }           public static string GetHunger(int food)         {             if (food < 5)                 return "Famished";             else if (food < 25)                 return "Starving";             else if (food < 50)                 return "Hungry";             else if (food < 75)                 return "Satistfied";             else if (food < 95)                 return "Full";             else return "Stuffed";         }           public static string GetHappiness(int happy)         {             if (happy < 5)                 return "Flaming";             else if (happy < 15)                 return "Raging";             else if (happy < 30)                 return "Angry";             else if (happy < 45)                 return "Perturbed";             else if (happy < 75)                 return "Calm";             else return "Happy";         }           public static void Kill(string poner)         {             List list = new List();             StreamReader sr = new StreamReader("PonerLand.txt");             while (!sr.EndOfStream)             {                 list.Add(sr.ReadLine());             }             sr.Close();             StreamWriter sw = new StreamWriter("PonerLand.txt");             foreach (string token in list)             {                 if (!token.Contains(poner))                 {                     sw.WriteLine(token);                 }             }             StreamWriter graveyard = new StreamWriter("PonerGraveyard.txt", true);             graveyard.WriteLine("\n" + poner);             sw.Close();             graveyard.Close();         }           public static string[] GetDed()         {             List list = new List();             StreamReader sr = new StreamReader("PonerGraveyard.txt");             while (!sr.EndOfStream)             {                 list.Add(string.Format("[{0}]", sr.ReadLine()));             }             sr.Close();             return list.ToArray();         }     } }   ----- The code that goes in the command switch statement in Program.cs ----                               case "boop":                             case "newspaper":                                 if (command.Length > 1)                                 {                                     if(command[1] != "")                                     {                                         if(command[1].ToLower() == "dicey")                                         {                                             e.Channel.SendMessage("[scrunch]");                                         }                                         e.Channel.SendMessage(PonerLand.Boop(command[1].ToLower(), e.Message.User.Nickname));                                     }                                 }                                 else                                 {                                     e.Channel.SendMessage("[scrunch]");                                 }                                 break;                             case "brushie":                                 if (command.Length > 1)                                 {                                     if (command[1] != "")                                     {                                         if (command[1].ToLower() == "dicey")                                         {                                             e.Channel.SendMessage("[pleased dicey noises]");                                         }                                         e.Channel.SendMessage(PonerLand.Brushie(command[1].ToLower(), e.Message.User.Nickname));                                     }                                 }                                 else                                 {                                     e.Channel.SendMessage("[pleased dicey noises]");                                 }                                 break;                             case "feed":                                 if (command.Length > 1)                                 {                                     if (command[1] != "")                                     {                                         if (command[1].ToLower() == "dicey")                                         {                                             e.Channel.SendMessage("");                                         }                                         e.Channel.SendMessage(PonerLand.Feed(command[1].ToLower(), e.Message.User.Nickname));                                     }                                 }                                 else                                 {                                     e.Channel.SendMessage("[pleased dicey noises]");                                 }                                 break;                             case "ponies":                             case "poners":                                 e.Channel.SendMessage("```" + string.Join("\n", PonerLand.GetPoners()) + "```");                                 break;                             case "new":                                 if (command.Length > 1)                                 {                                     PonerLand.NewPoner(command[1], e.Message);                                 }                                 break;                             case "ded":                             case "dead":                                 e.Channel.SendMessage("```" + string.Join(", ", PonerLand.GetDed()) + "```");                                 break;