UNPKG

2.43 kBJavaScriptView Raw
1exports.command = {
2 name: "setcmdlev",
3 autoload: true,
4 unloadable: false,
5 min_rank: 7,
6 display: "Changes the rank needed to execute a command.",
7 help: "This command is used to change the minimum rank an user must have to be able to " +
8 "use a particular command.",
9 usage: ".setcmdlev <command> <rank number>",
10
11 execute: function(socket, command, command_access) {
12 var chalk = require('chalk');
13 if (command.split(' ').length !== 2) {
14 socket.write(chalk.bold("Usage :") + " .setcmdlev <command> <rank number>\r\n");
15 return;
16 }
17 var c = command.split(' ')[0];
18 var r = command.split(' ')[1];
19 var commands = command_access.findCommand(socket, c);
20 if (commands.length === 0) {
21 socket.write(chalk.ref(":: ") + "Sorry, there is no command called " + chalk.bold(c) + ".\r\n");
22 return;
23 }
24 if (commands.length > 1) {
25 var possibilities = "";
26 for (var p = 0; p < commands.length - 1; p++) {
27 possibilities += chalk.bold(commands[p].name) + ", ";
28 }
29 possibilities += chalk.bold(commands[commands.length - 1].name);
30 return socket.write(chalk.yellow(":: ") + "Found " + chalk.cyan(commands.length) + " possible commands (" + possibilities + "). Please be more specific.\r\n");
31 }
32 var command_to_change = commands[0];
33 var rank_number = parseInt(r,10);
34 if (Number(r) !== rank_number || rank_number < 0) {
35 socket.write(chalk.red(":: ") + chalk.bold(r) + " is no rank number.\r\n");
36 return;
37 }
38 if (rank_number === command_access.getCmdRank(command_to_change.name)) {
39 socket.write(chalk.red(":: ") + "Command " + chalk.bold(command_to_change.name) + " is already of rank level " +
40 chalk.cyan(rank_number) + "!\r\n");
41 return;
42 }
43 if (rank_number >= command_access.ranks.list.length) {
44 socket.write(chalk.red(":: ") + "There aren't those many ranks!\r\n");
45 return;
46 }
47 if (command_access.getCmdRank(command_to_change.name) > socket.db.rank) {
48 socket.write(chalk.red(":: ") + "What a joker you are... " +
49 "You don't even have access to that command!\r\n");
50 return;
51 }
52 if (rank_number > socket.db.rank) {
53 socket.write(chalk.red(":: ") + "Let the grown-ups decide if they want that command " +
54 "only to themselves...\r\n");
55 return;
56 }
57 command_access.setCmdRank(command_to_change.name,rank_number);
58 socket.write(chalk.green(":: ") + "Changed " + chalk.bold(command_to_change.name) + " to rank " + chalk.cyan(rank_number) + ".\r\n");
59 }
60}