Exemple #1
0
        public static void ExcecuteCommand(IRocketPlayer player, string[] args)
        {
            if (TryGetCommand(args[0], out IGunGameCommand cmd))
            {
                if (!player.HasGGPermissionFor(cmd) && !player.IsAdmin)
                {
                    throw new GunGameException(cmd.PermissionLevel);
                }

                ECommandTiming current;

                if (GameManager.isRunning)
                {
                    current = ECommandTiming.RUNNING;
                }
                else if (GameManager.isStopped)
                {
                    current = ECommandTiming.STOPPED;
                }
                else
                {
                    current = ECommandTiming.WAITING;
                }

                if (!cmd.CommandTiming.HasFlags(current))
                {
                    throw new GunGameException(cmd.CommandTiming);
                }

                string[] _args = new string[args.Length - 1];

                for (int i = 1; i < args.Length; i++)
                {
                    _args[i - 1] = args[i];
                }

                cmd.Execute(player, _args);
            }
            else
            {
                throw new GunGameException(EExceptionType.INVALID_CMD);
            }
        }
Exemple #2
0
        public void Execute(IRocketPlayer caller, string[] args)
        {
            if (args.Length != 1)
            {
                throw new GunGameException(EExceptionType.INVALID_ARGS);
            }

            if (CommandManager.TryGetCommand(args[0], out IGunGameCommand cmd))
            {
                if (caller.HasGGPermissionFor(cmd))
                {
                    GunGame.Say(caller, "help", Color.green, args[0], cmd.Help);
                }
                else
                {
                    GunGame.Say(caller, "invalid_perms_help", Color.red);
                }
            }
            else
            {
                GunGame.Say(caller, "invalid_cmd_help", Color.red);
            }
        }