Ejemplo n.º 1
0
        private void RegisterCommands(string text, TSPlayer ply)
        {
            var cmdList = ParseCommands(text);

            foreach (var cmdArgs in cmdList)
            {
                var args = new List<string>(cmdArgs);
                if (args.Count < 1)
                    continue;

                var cmdName = args[0];

                switch (cmdName)
                {
                    case "no-perm":
                        if (!ply.Group.HasPermission("essentials.signs.negateperms"))
                        {
                            ply.SendErrorMessage("You do not have permission to create that sign command.");
                            continue;
                        }
                        freeAccess = true;
                        continue;
                    case "confirm":
                        _confirm = true;
                        continue;
                    case "no-read":
                        noRead = true;
                        continue;
                    case "no-edit":
                        noEdit = true;
                        continue;
                    case "require-perm":
                    case "rperm":
                        requiredPermission = args[1];
                        continue;
                    case "cd":
                    case "cooldown":
                        ParseSignCd(args);
                        continue;
                    case "allowg":
                        if (!ply.Group.HasPermission("essentials.signs.allowgroups"))
                        {
                            ply.SendErrorMessage("You do not have permission to create that sign command.");
                            continue;
                        }
                        ParseGroups(args);
                        continue;
                    case "allowu":
                        if (!ply.Group.HasPermission("essentials.signs.allowusers"))
                        {
                            ply.SendErrorMessage("You do not have permission to create that sign command.");
                            continue;
                        }
                        ParseUsers(args);
                        continue;
                    case "spawnmob":
                    case "sm":
                        if (!ply.Group.HasPermission(Permissions.spawnmob))
                        {
                            ply.SendErrorMessage("You do not have permission to create that sign command.");
                            continue;
                        }
                        ParseSpawnMob(args, ply);
                        continue;
                    case "spawnboss":
                    case "sb":
                        if (!ply.Group.HasPermission(Permissions.spawnboss))
                        {
                            ply.SendErrorMessage("You do not have permission to create that sign command.");
                            continue;
                        }
                        ParseSpawnBoss(args, ply);
                        continue;
                }

                IEnumerable<Command> cmds = Commands.ChatCommands.Where(c => c.HasAlias(cmdName)).ToList();

                foreach (var cmd in cmds)
                {
                    if (!CheckPermissions(ply))
                        return;

                    var sCmd = new SignCommand(cooldown, cmd.Permissions, cmd.CommandDelegate, cmdName);
                    commands.Add(args, sCmd);
                }
            }
        }
Ejemplo n.º 2
0
        private void RegisterCommands(string text, TSPlayer ply, bool checkPermissions)
        {
            var cmdList = ParseCommands(text);

            foreach (var cmdArgs in cmdList)
            {
                var args = new List <string>(cmdArgs);
                if (args.Count < 1)
                {
                    continue;
                }

                var cmdName = args[0];

                switch (cmdName)
                {
                case "no-perm":
                    if (checkPermissions && !ply.Group.HasPermission("essentials.signs.negateperms"))
                    {
                        throw new UnauthorizedAccessException("You do not have permission to use \"no-perm\" on a sign.");
                    }

                    freeAccess = true;
                    continue;

                case "confirm":
                    confirm = true;
                    continue;

                case "no-read":
                    noRead = true;
                    continue;

                case "no-edit":
                    noEdit = true;
                    continue;

                case "silent":
                    silent = true;
                    continue;

                case "require-perm":
                case "rperm":
                    requiredPermission = args[1];
                    continue;

                case "cd":
                case "cooldown":
                    ParseSignCd(args);
                    continue;

                case "allowg":
                    if (checkPermissions && !ply.Group.HasPermission("essentials.signs.allowgroups"))
                    {
                        throw new UnauthorizedAccessException("You do not have permission to use \"allowg\" on a sign.");
                    }

                    ParseGroups(args);
                    continue;

                case "allowu":
                    if (checkPermissions && !ply.Group.HasPermission("essentials.signs.allowusers"))
                    {
                        throw new UnauthorizedAccessException("You do not have permission to use \"allowu\" on a sign.");
                    }

                    ParseUsers(args);
                    continue;
                }

                IEnumerable <Command> cmds = Commands.ChatCommands.Where(c => c.HasAlias(cmdName));

                foreach (var cmd in cmds)
                {
                    var sCmd = new SignCommand(cooldown, cmd.Permissions, cmd.CommandDelegate, cmdName);
                    commands.Add(args, sCmd);
                }
            }

            if (checkPermissions)
            {
                CheckCommandPermissions(ply);
            }
        }