void tas_Said(object sender, TasSayEventArgs e) { // check if it's command if (e.Origin == TasSayEventArgs.Origins.Player && !e.IsEmote && e.Text.StartsWith("!")) { if (e.Text.Length < 2) { return; } string[] allwords = e.Text.Substring(1).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (allwords.Length < 1) { return; } string com = allwords[0]; // remove first word (command) string[] words = Utils.ShiftArray(allwords, -1); if (!HasRights(com, e)) { return; } switch (com) { case "listmaps": ComListMaps(e, words); break; case "listmods": ComListMods(e, words); break; case "help": ComHelp(e, words); break; case "map": ComMap(e, words); break; case "admins": ComAdmins(e, words); break; case "start": ComStart(e, words); break; case "forcestart": ComForceStart(e, words); break; case "force": ComForce(e, words); break; case "split": ComSplit(e, words); break; case "corners": ComCorners(e, words); break; case "maplink": linker.SayResults(Utils.Glue(words), UnknownFilesLinker.FileType.Map, tas, e); break; case "modlink": linker.SayResults(Utils.Glue(words), UnknownFilesLinker.FileType.Mod, tas, e); break; case "ring": ComRing(e, words); break; case "kick": ComKick(e, words); break; case "exit": ComExit(e, words); break; case "lock": tas.ChangeLock(true); break; case "unlock": tas.ChangeLock(false); break; case "vote": RegisterVote(e, words); break; case "votemap": StartVote(new VoteMap(tas, spring, this), e, words); break; case "votekick": StartVote(new VoteKick(tas, spring, this), e, words); break; case "voteforcestart": StartVote(new VoteForceStart(tas, spring, this), e, words); break; case "voteforce": StartVote(new VoteForce(tas, spring, this), e, words); break; case "voteexit": StartVote(new VoteExit(tas, spring, this), e, words); break; case "votepreset": StartVote(new VotePreset(tas, spring, this), e, words); break; case "fix": ComFix(e, words); break; case "rehost": ComRehost(e, words); break; case "voterehost": StartVote(new VoteRehost(tas, spring, this), e, words); break; case "random": ComRandom(e, words); break; case "balance": ComBalance(e, words); break; case "setlevel": ComSetLevel(e, words); break; case "say": ComSay(e, words); break; case "dlmap": ComDlMap(e, words); break; case "dlmod": ComDlMod(e, words); break; case "reload": Respond(e, "reloading mod and map list"); spring.Reload(true, true); Respond(e, "reload finished"); break; case "team": ComTeam(e, words); break; case "ally": ComAlly(e, words); break; case "helpall": ComHelpAll(e, words); break; case "fixcolors": ComFixColors(e, words); break; case "springie": ComSpringie(e, words); break; case "endvote": StopVote(); SayBattle("poll cancelled"); break; case "addbox": ComAddBox(e, words); break; case "clearbox": ComClearBox(e, words); break; case "listpresets": ComListPresets(e, words); break; case "presetdetails": ComPresetDetails(e, words); break; case "preset": ComPreset(e, words); break; case "cbalance": ComCBalance(e, words); break; case "listbans": banList.ComListBans(e, words); break; case "ban": banList.ComBan(e, words); break; case "unban": banList.ComUnban(e, words); break; case "smurfs": RemoteCommand(Stats.smurfScript, e, words); break; case "stats": RemoteCommand(Stats.statsScript, e, words); break; case "kickspec": ComKickSpec(e, words); break; case "votekickspec": StartVote(new VoteKickSpec(tas, spring, this), e, words); break; case "boss": ComBoss(e, words); break; case "voteteboss": StartVote(new VoteBoss(tas, spring, this), e, words); break; case "setpassword": ComSetPassword(e, words); break; case "setgametitle": ComSetGameTitle(e, words); break; case "setminrank": ComSetMinRank(e, words); break; case "setmaxplayers": ComSetMaxPlayers(e, words); break; case "mincpuspeed": ComSetMinCpuSpeed(e, words); break; case "autolock": ComAutoLock(e, words); break; case "spec": ComForceSpectator(e, words); break; case "specafk": ComForceSpectatorAfk(e, words); break; } } }
void tas_Said(object sender, TasSayEventArgs e) { // check if it's command if (e.Origin == TasSayEventArgs.Origins.Player && !e.IsEmote && e.Text.StartsWith("!")) { if (e.Text.Length < 2) { return; } string[] allwords = e.Text.Substring(1).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (allwords.Length < 1) { return; } string com = allwords[0]; // remove first word (command) string[] words = Utils.ShiftArray(allwords, -1); if (!HasRights(com, e)) { return; } switch (com) { case "listmaps": ComListMaps(e, words); break; case "listmods": ComListMods(e, words); break; case "help": ComHelp(e, words); break; case "map": ComMap(e, words); break; case "admins": ComAdmins(e, words); break; case "start": ComStart(e, words); break; case "forcestart": ComForceStart(e, words); break; case "force": ComForce(e, words); break; case "split": ComSplit(e, words); break; case "corners": ComCorners(e, words); break; case "maplink": linker.SayResults(Utils.Glue(words), UnknownFilesLinker.FileType.Map, tas, e); break; case "modlink": linker.SayResults(Utils.Glue(words), UnknownFilesLinker.FileType.Mod, tas, e); break; case "ring": ComRing(e, words); break; case "kick": ComKick(e, words); break; case "exit": ComExit(e, words); break; case "lock": tas.ChangeLock(true); break; case "unlock": tas.ChangeLock(false); break; case "vote": RegisterVote(e, words); break; case "votemap": StartVote(new VoteMap(tas, spring, this), e, words); break; case "votekick": StartVote(new VoteKick(tas, spring, this), e, words); break; case "voteforcestart": StartVote(new VoteForceStart(tas, spring, this), e, words); break; case "voteforce": StartVote(new VoteForce(tas, spring, this), e, words); break; case "voteexit": StartVote(new VoteExit(tas, spring, this), e, words); break; case "votepreset": StartVote(new VotePreset(tas, spring, this), e, words); break; case "fix": ComFix(e, words); break; case "rehost": ComRehost(e, words); break; case "voterehost": StartVote(new VoteRehost(tas, spring, this), e, words); break; case "random": ComRandom(e, words); break; case "balance": ComBalance(e, words); break; case "setlevel": ComSetLevel(e, words); break; case "say": ComSay(e, words); break; case "dlmap": ComDlMap(e, words); break; case "dlmod": ComDlMod(e, words); break; case "reload": Respond(e, "reloading mod and map list"); spring.Reload(true, true); Respond(e, "reload finished"); break; case "team": ComTeam(e, words); break; case "ally": ComAlly(e, words); break; case "helpall": ComHelpAll(e, words); break; case "fixcolors": ComFixColors(e, words); break; case "springie": ComSpringie(e, words); break; case "endvote": StopVote(); SayBattle("poll cancelled"); break; case "addbox": ComAddBox(e, words); break; case "clearbox": ComClearBox(e, words); break; case "listpresets": ComListPresets(e, words); break; case "presetdetails": ComPresetDetails(e, words); break; case "preset": ComPreset(e, words); break; case "cbalance": ComCBalance(e, words); break; case "listbans": banList.ComListBans(e, words); break; case "ban": banList.ComBan(e, words); break; case "unban": banList.ComUnban(e, words); break; case "smurfs": RemoteCommand(Stats.smurfScript, e, words); break; case "stats": RemoteCommand(Stats.statsScript, e, words); break; case "kickspec": ComKickSpec(e, words); break; case "votekickspec": StartVote(new VoteKickSpec(tas, spring, this), e, words); break; case "tempadmin": ComTempAdmin(e, words); break; case "votetempadmin": StartVote(new VoteTempAdmin(tas, spring, this), e, words); break; case "setpassword": if (words.Length == 0) { Respond(e, "this command needs one parameter - password"); } else { Program.main.AutoHost.config.Password = words[0]; Respond(e, "password changed"); } break; case "setgametitle": if (words.Length == 0) { Respond(e, "this command needs one parameter - new game title"); } else { Program.main.AutoHost.config.GameTitle = Utils.Glue(words); Respond(e, "game title changed"); } break; case "setminrank": if (words.Length == 0) { Respond(e, "this command needs one parameter - rank number"); } else { int rank; int.TryParse(words[0], out rank); if (rank < TasClient.MinRank) { rank = TasClient.MinRank; } if (rank > TasClient.MaxRank) { rank = TasClient.MaxRank; } Program.main.AutoHost.config.MinRank = rank; Respond(e, "server rank changed"); } break; case "setmaxplayers": if (words.Length == 0) { Respond(e, "this command needs one parameter - number of players"); } else { int plr; int.TryParse(words[0], out plr); if (plr < 1) { plr = 1; } if (plr > Spring.MaxTeams) { plr = Spring.MaxTeams; } Program.main.AutoHost.config.MaxPlayers = plr; Respond(e, "server size changed"); } break; case "mincpuspeed": if (words.Length == 0) { Respond(e, "this command needs one parameter - minimal CPU speed"); } else { System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; double minCpu; double.TryParse(words[0], out minCpu); minCpuSpeed = minCpu; SayBattle("minimal CPU speed is now " + minCpuSpeed + "GHz"); if (minCpuSpeed > 0) { Battle b = tas.GetBattle(); if (b != null) { foreach (UserBattleStatus ubs in b.Users) { User u; if (ubs.name != tas.UserName && tas.GetExistingUser(ubs.name, out u)) { if (u.cpu > 0 && u.cpu < minCpuSpeed * 1000) { ComKick(e, new string[] { u.name }); } } } } } } break; } } }