private void processLine(string line) { //left in as a joke. //line = line.Replace("food", "potato").Replace("vegetables","potatoes").Replace("meat","potatoes").Replace("sandwich","potato"); if (line.StartsWith("PESTER") || line.StartsWith("TROLL")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count != 4) { appendOutput("FORMAT ERROR NEED 3 ARGUMENTS\n", Color.Red); return; } Chum chum1 = PesterchumAccMgr.findChum(args[1]); Chum chum2 = PesterchumAccMgr.findChum(args[2]); if (chum1 == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } if (chum2 == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[2] + "\n", Color.Red); return; } appendOutput("-- "); chum1.printWholeName(); appendOutput("began " + args[0].ToLower() + "ing "); chum2.printWholeName(); appendOutput("at " + args[3] + " --\n"); return; } if (line.StartsWith("ENDPESTER") || line.StartsWith("ENDTROLL")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count != 3) { appendOutput("FORMAT ERROR NEED 2 ARGUMENTS\n", Color.Red); return; } Chum chum1 = PesterchumAccMgr.findChum(args[1]); Chum chum2 = PesterchumAccMgr.findChum(args[2]); if (chum1 == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } if (chum2 == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[2] + "\n", Color.Red); return; } appendOutput("-- "); chum1.printWholeName(); appendOutput("ceased " + args[0].Substring(3).ToLower() + "ing "); chum2.printWholeName(); appendOutput("--\n"); return; } if (line.StartsWith("IDLE")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count != 2) { appendOutput("FORMAT ERROR NEED 1 ARGUMENT\n", Color.Red); return; } Chum chum = PesterchumAccMgr.findChum(args[1]); if (chum == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } appendOutput("-- "); chum.printWholeName(); appendOutput("is now an idle " + (line.StartsWith("IDLETROLL")?"troll":"chum") + "! --\n"); return; } if (line.StartsWith("MEMO")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count < 3) { appendOutput("FORMAT ERROR NEED 4 ARGUMENTS\n", Color.Red); return; } args[2] = line.Substring(line.IndexOf(' ', line.IndexOf(' ') + 1) + 1); if (args[2].IndexOf(';') == -1) { appendOutput("ARGUMENT 3 and 4 NEED ; IN THE MIDDLE\n", Color.Red); return; } Chum chum = PesterchumAccMgr.findChum(args[1]); if (chum == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } chum.printWholeName(); appendOutput(args[2].Substring(0, args[2].IndexOf(';'))); appendOutput(" opened memo on board "); appendOutput(args[2].Substring(args[2].IndexOf(';') + 1)); appendOutput(".\n"); return; } if (line.StartsWith("RESPOND")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count < 3) { appendOutput("FORMAT ERROR NEED 2 ARGUMENTS\n", Color.Red); return; } Chum chum = PesterchumAccMgr.findChum(args[1]); if (chum == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } chum.printWholeName(); appendOutput(line.Substring(line.IndexOf(' ', line.IndexOf(' ') + 1) + 1) + " responded to memo.\n"); return; } if (line.StartsWith("BAN") || line.StartsWith("UNBAN")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count != 3) { appendOutput("FORMAT ERROR NEED 2 ARGUMENTS\n", Color.Red); return; } Chum chum1 = PesterchumAccMgr.findChum(args[1]); Chum chum2 = PesterchumAccMgr.findChum(args[2]); if (chum1 == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } if (chum2 == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[2] + "\n", Color.Red); return; } chum1.printShortName(); appendOutput(" " + args[0].ToLower() + "ned "); chum2.printShortName(); appendOutput(" from replying to memo.\n"); return; } if (line.StartsWith("ENDRESPOND")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count != 2) { appendOutput("FORMAT ERROR NEED 1 ARGUMENT\n", Color.Red); return; } Chum chum = PesterchumAccMgr.findChum(args[1]); if (chum == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } chum.printShortName(); appendOutput(" ceased responding to memo.\n"); return; } if (line.StartsWith("ENDMEMO")) { List <string> args = new List <string>(from str in line.Split(' ') where str != "" select str); if (args.Count != 2) { appendOutput("FORMAT ERROR NEED 1 ARGUMENT\n", Color.Red); return; } Chum chum = PesterchumAccMgr.findChum(args[1]); if (chum == null) { appendOutput("CHUM NOT FOUND ERROR:" + args[1] + "\n", Color.Red); return; } chum.printShortName(); appendOutput(" closed memo.\n"); return; } if (line.IndexOf(':') != -1) { Chum c = PesterchumAccMgr.findChum(line.Substring(0, line.IndexOf(':'))); if (c != null) { c.Say(line); return; } } if (line.StartsWith("=")) { int arrowLoc = line.IndexOf(">"); if (arrowLoc != -1) { if (!(from c in line.Substring(0, arrowLoc) where c != '=' select c).Any()) { appendOutput(line + "\n", Color.Blue, commandFont); } return; } } //left in as a joke. //if (line == "potato") appendOutput("PS: F**K NO.", PesterchumAccMgr.findChum("PS").color);else appendOutput(line + "\n"); }
private Chum _findChum(string identifier) { if (identifier.Length == 3 || (identifier.Length == 4 && char.IsDigit(identifier[3]))) //memo user with time shenanigans { Chum retval = _findChum(identifier.Substring(1, 2)); if (retval == null) { return(null); } retval = retval.getClone(); switch (identifier[0]) { case 'F': case 'f': retval.memoState = Chum.MemoState.FUTURE; break; case 'C': case 'c': retval.memoState = Chum.MemoState.CURRENT; break; case 'P': case 'p': retval.memoState = Chum.MemoState.PAST; break; default: retval.memoState = Chum.MemoState.UNKNOWN; break; } if (identifier.Length == 4) { retval.memoUserCnt = int.Parse(identifier.Substring(3)); } return(retval); } if (identifier.Length == 2) //short name is given { identifier = identifier.ToUpper(); foreach (Chum c in list) { if (c.shortName == identifier) { return(c); } } return(null); } string tryShortName = Chum.generateShortName(identifier); if (tryShortName != "??") //good long name is given { foreach (Chum c in list) { if (c.shortName == tryShortName) { return(c); } } return(null); } return(null); //flip the fvck out because idk what to do }