public bool TryProcessCMD(ChatEventArgs e) { if (!Enabled || !e.Message.StartsWith("@")) { return(false); } foreach (string cmd in e.Message.Substring(1).Split(',')) { RLVRule rule = new RLVRule(e); switch (rule.Behaviour) { case "version": int chan = 0; if (int.TryParse(rule.Param, out chan) && chan > 0) { Respond(chan, "RestrainedLife viewer v1.23 (SteelCity Automaton - Alpha)"); } break; case "versionnew": chan = 0; if (int.TryParse(rule.Param, out chan) && chan > 0) { Respond(chan, "RestrainedLove viewer v1.23 (SteelCity Automaton - Alpha)"); } break; case "versionnum": if (int.TryParse(rule.Param, out chan) && chan > 0) { Respond(chan, "1230100"); } break; case "getgroup": if (int.TryParse(rule.Param, out chan) && chan > 0) { UUID gid = Client.Self.ActiveGroup; if (Am.Groups().ContainsKey(gid)) { Respond(chan, Am.Groups()[gid].Name); } } break; case "setgroup": { if (rule.Param == "force") { Am.set_group(rule.Option); } } break; //TODO MORE case "getinv": if (int.TryParse(rule.Param, out chan) && chan > 0) { string res = string.Empty; InventoryNode folder = FindFolder(rule.Option); if (folder != null) { foreach (var f in folder.Nodes.Values) { if (f.Data is InventoryFolder && !f.Data.Name.StartsWith(".")) { res += f.Data.Name + ","; } } } Respond(chan, res.TrimEnd(',')); } break; default: Console.WriteLine("Invalid rlv behaviour:"); Console.WriteLine(rule.ToString()); break; } } return(true); }
public bool TryProcessCMD(ChatEventArgs e) { if (!Enabled || !e.Message.StartsWith("@")) return false; foreach (string cmd in e.Message.Substring(1).Split(',')) { RLVRule rule = new RLVRule(e); switch (rule.Behaviour) { case "version": int chan = 0; if (int.TryParse(rule.Param, out chan) && chan > 0) { Respond(chan, "RestrainedLife viewer v1.23 (SteelCity Automaton - Alpha)"); } break; case "versionnew": chan = 0; if (int.TryParse(rule.Param, out chan) && chan > 0) { Respond(chan, "RestrainedLove viewer v1.23 (SteelCity Automaton - Alpha)"); } break; case "versionnum": if (int.TryParse(rule.Param, out chan) && chan > 0) { Respond(chan, "1230100"); } break; case "getgroup": if (int.TryParse(rule.Param, out chan) && chan > 0) { UUID gid = Client.Self.ActiveGroup; if (Am.Groups().ContainsKey(gid)) { Respond(chan, Am.Groups()[gid].Name); } } break; case "setgroup": { if (rule.Param == "force") { Am.set_group(rule.Option); } } break; //TODO MORE case "getinv": if (int.TryParse(rule.Param, out chan) && chan > 0) { string res = string.Empty; InventoryNode folder = FindFolder(rule.Option); if (folder != null) { foreach (var f in folder.Nodes.Values) { if (f.Data is InventoryFolder && !f.Data.Name.StartsWith(".")) { res += f.Data.Name + ","; } } } Respond(chan, res.TrimEnd(',')); } break; default: Console.WriteLine("Invalid rlv behaviour:"); Console.WriteLine(rule.ToString()); break; } } return true; }