Add ACP list active channels
This commit is contained in:
parent
359a228d5f
commit
afa17165f7
3 changed files with 72 additions and 1 deletions
26
lib/acp.js
26
lib/acp.js
|
|
@ -14,6 +14,7 @@ var Server = require("./server");
|
|||
var db = require("./database");
|
||||
var util = require("./utilities");
|
||||
var Config = require("./config");
|
||||
var Server = require("./server");
|
||||
|
||||
function handleAnnounce(user, data) {
|
||||
var sv = Server.getServer();
|
||||
|
|
@ -240,6 +241,29 @@ function handleDeleteChannel(user, data) {
|
|||
});
|
||||
}
|
||||
|
||||
function handleListActiveChannels(user) {
|
||||
user.socket.emit("acp-list-activechannels", Server.getServer().packChannelList(false));
|
||||
}
|
||||
|
||||
function handleForceUnload(user, data) {
|
||||
var name = data.name;
|
||||
if (typeof name !== "string") {
|
||||
return;
|
||||
}
|
||||
|
||||
var sv = Server.getServer();
|
||||
if (!sv.isChannelLoaded(name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var chan = sv.getChannel(name);
|
||||
var users = Array.prototype.slice.call(chan.users);
|
||||
chan.emit("empty");
|
||||
users.forEach(function (u) {
|
||||
u.kick("Channel shutting down");
|
||||
});
|
||||
}
|
||||
|
||||
function init(user) {
|
||||
var s = user.socket;
|
||||
s.on("acp-announce", handleAnnounce.bind(this, user));
|
||||
|
|
@ -251,6 +275,8 @@ function init(user) {
|
|||
s.on("acp-reset-password", handleResetPassword.bind(this, user));
|
||||
s.on("acp-list-channels", handleListChannels.bind(this, user));
|
||||
s.on("acp-delete-channel", handleDeleteChannel.bind(this, user));
|
||||
s.on("acp-list-activechannels", handleListActiveChannels.bind(this, user));
|
||||
s.on("acp-force-unload", handleForceUnload.bind(this, user));
|
||||
|
||||
db.listGlobalBans(function (err, bans) {
|
||||
if (err) {
|
||||
|
|
|
|||
|
|
@ -195,7 +195,9 @@ Server.prototype.packChannel = function (c) {
|
|||
usercount: c.users.length,
|
||||
voteskip_eligible: c.calcVoteskipMax(),
|
||||
users: [],
|
||||
chat: Array.prototype.slice.call(c.chatbuffer)
|
||||
chat: Array.prototype.slice.call(c.chatbuffer),
|
||||
registered: c.registered,
|
||||
public: c.opts.show_public
|
||||
};
|
||||
|
||||
for (var i = 0; i < c.users.length; i++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue