Ejemplo n.º 1
0
        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;
                }
            }
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }