UNPKG

2.94 kBJavaScriptView Raw
1exports.command = {
2 name: "who",
3 autoload: true,
4 unloadable: false,
5 min_rank: 0,
6 display: "lets you know who is connected in the talker at this moment",
7 help: "Lets you know who is connected in the talker at this moment.",
8 usage: ".who",
9 weigth: 10,
10
11 // helper functions that should probably be global, instead of stuck here in the command file
12 spaces: function(howMany) {
13 ret = "";
14 for (var i = 0; i < howMany; i++) {
15 ret += " ";
16 }
17 return ret;
18 },
19 stringPadding: function(what, howMuch) {
20 return (what + this.spaces(howMuch-1)).substr(0,howMuch);
21 },
22 timeString: function(time) {
23 var hh = Math.floor(time/1000/60/60);
24 var mm = Math.floor((time/1000/60) % 60);
25 return (hh > 9 ? "" + hh : "0" + hh) + ":" + (mm > 9 ? "" + mm : "0" + mm);
26 },
27
28 execute: function(socket, command, command_access) {
29 var chalk = require('chalk');
30 var connected = 0;
31 var connecting = 0;
32 socket.write(chalk.green("+----------------------------------------------------------------------------+\r\n"));
33 socket.write(chalk.cyan(" Current users on " + chalk.magenta(command_access.talkername) + " at " + chalk.bold(new Date().toLocaleDateString()) +", " + chalk.bold(new Date().toLocaleTimeString()) +"\r\n"));
34 socket.write(chalk.green("+----------------------------------------------------------------------------+\r\n"));
35 socket.write(chalk.green(" Name") + chalk.blue(" Description") + chalk.yellow(" Rank") + chalk.magenta(" Where") + chalk.cyan(" Time/Idle \r\n"));
36 socket.write(chalk.green("+----------------------------------------------------------------------------+\r\n"));
37 for (var i = 0; i < command_access.sockets.length; i++) {
38 if ((typeof command_access.sockets[i].loggedin === 'undefined') || !command_access.sockets[i].loggedin ){
39 connecting++;
40 } else {
41 connected++;
42 socket.write(
43 " " + this.stringPadding(command_access.sockets[i].username, 16) +
44 " " + this.stringPadding((typeof command_access.sockets[i].db.desc !== "undefined") ? command_access.sockets[i].db.desc : "has no .desc yet!", 18)+
45 " " + this.stringPadding(command_access.ranks.list[command_access.sockets[i].db.rank], 14) +
46 " " + this.stringPadding(command_access.getUniverse().get(command_access.sockets[i].db.where).name, 8) +
47 " " + this.timeString(Date.now() - command_access.sockets[i].db.loginTime) + "/" + this.timeString(Date.now() - command_access.sockets[i].activityTime) +
48 "\r\n");
49 }
50 }
51 socket.write(chalk.green("+----------------------------------------------------------------------------+\r\n"));
52 socket.write(chalk.cyan(" Total of " + chalk.bold(connected) + " connected users")); if (connecting > 0) { socket.write(chalk.cyan(" and " + chalk.bold(connecting) + " still connecting")); }
53 socket.write(chalk.green("\r\n+----------------------------------------------------------------------------+\r\n"));
54 }
55}