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); } } }
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); } }