diff options
author | Neel Kamath <neelkamath@protonmail.com> | 2018-05-13 13:07:56 +0200 |
---|---|---|
committer | Neel Kamath <neelkamath@protonmail.com> | 2018-05-13 13:07:56 +0200 |
commit | 949404cd1aad8492ae0338130f16054adfa38ab7 (patch) | |
tree | 6fed796d224901f5b6832543b19973af425e0fa9 /server/src/commands/admin/listusers.js | |
parent | Flatten (diff) | |
download | hackchat-949404cd1aad8492ae0338130f16054adfa38ab7.tar.gz hackchat-949404cd1aad8492ae0338130f16054adfa38ab7.zip |
Prevent fucking shit up
Diffstat (limited to 'server/src/commands/admin/listusers.js')
-rw-r--r-- | server/src/commands/admin/listusers.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/server/src/commands/admin/listusers.js b/server/src/commands/admin/listusers.js new file mode 100644 index 0000000..a539a3c --- /dev/null +++ b/server/src/commands/admin/listusers.js @@ -0,0 +1,38 @@ +/* + Description: Outputs all current channels and their user nicks +*/ + +exports.run = async (core, server, socket, data) => { + if (socket.uType != 'admin') { + // ignore if not admin + return; + } + + let channels = {}; + for (var client of server.clients) { + if (client.channel) { + if (!channels[client.channel]) { + channels[client.channel] = []; + } + channels[client.channel].push(client.nick); + } + } + + let lines = []; + for (let channel in channels) { + lines.push(`?${channel} ${channels[channel].join(", ")}`); + } + + let text = ''; + text += lines.join("\n"); + + server.reply({ + cmd: 'info', + text: text + }, socket); +}; + +exports.info = { + name: 'listusers', + description: 'Outputs all current channels and sockets in those channels' +}; |