unga
This commit is contained in:
parent
873ffba29c
commit
1973f9b788
|
@ -4,10 +4,13 @@ module.exports = Object.seal({
|
||||||
_id_PrivateKey: process.env.SALT,
|
_id_PrivateKey: process.env.SALT,
|
||||||
defaultUsername: "Anonymous",
|
defaultUsername: "Anonymous",
|
||||||
// defaultRoomColor: "#3b5054",
|
// defaultRoomColor: "#3b5054",
|
||||||
|
defaultRoomColor: "#480505",
|
||||||
// defaultLobbyColor: "#19b4b9",
|
// defaultLobbyColor: "#19b4b9",
|
||||||
defaultLobbyColor: "#76b0db",
|
// defaultLobbyColor: "#76b0db",
|
||||||
// defaultLobbyColor2: "#801014",
|
// defaultLobbyColor2: "#801014",
|
||||||
defaultLobbyColor2: "#276491",
|
// defaultLobbyColor2: "#276491",
|
||||||
|
defaultLobbyColor: "#9900ff",
|
||||||
|
defaultLobbyColor2: "#5900af",
|
||||||
adminpass: process.env.ADMINPASS,
|
adminpass: process.env.ADMINPASS,
|
||||||
ssl: process.env.SSL,
|
ssl: process.env.SSL,
|
||||||
defaultRoomSettings: {
|
defaultRoomSettings: {
|
||||||
|
|
|
@ -10,7 +10,7 @@ const Notification = require('./Notification');
|
||||||
class Channel extends EventEmitter {
|
class Channel extends EventEmitter {
|
||||||
constructor(server, _id, settings) {
|
constructor(server, _id, settings) {
|
||||||
super();
|
super();
|
||||||
this.logger = new Logger(`Room - ${ftc.normalise(_id)}`);
|
this.logger = new Logger(`Room - ${_id}`);
|
||||||
this._id = _id;
|
this._id = _id;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.crown;
|
this.crown;
|
||||||
|
@ -23,6 +23,7 @@ class Channel extends EventEmitter {
|
||||||
this.server.rooms.set(_id, this);
|
this.server.rooms.set(_id, this);
|
||||||
this.bans = new Map();
|
this.bans = new Map();
|
||||||
this.flags = {}
|
this.flags = {}
|
||||||
|
this.destroyed = false;
|
||||||
|
|
||||||
this.logger.log('Created');
|
this.logger.log('Created');
|
||||||
|
|
||||||
|
@ -191,7 +192,9 @@ class Channel extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy() { //destroy room
|
destroy() { //destroy room
|
||||||
|
if (this.destroyed) return;
|
||||||
if (this.ppl.size > 0) return;
|
if (this.ppl.size > 0) return;
|
||||||
|
this.destroyed = true;
|
||||||
this._id;
|
this._id;
|
||||||
console.log(`Deleted room ${this._id}`);
|
console.log(`Deleted room ${this._id}`);
|
||||||
this.settings = undefined;
|
this.settings = undefined;
|
||||||
|
|
|
@ -15,6 +15,8 @@ class Client extends EventEmitter {
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.participantId;
|
this.participantId;
|
||||||
this.channel;
|
this.channel;
|
||||||
|
this.isSubscribedToAdminStream = false;
|
||||||
|
this.adminStreamInterval;
|
||||||
|
|
||||||
this.staticQuotas = {
|
this.staticQuotas = {
|
||||||
room: new RateLimit(quotas.room.time)
|
room: new RateLimit(quotas.room.time)
|
||||||
|
@ -152,6 +154,22 @@ class Client extends EventEmitter {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendAdminData() {
|
||||||
|
let data = {};
|
||||||
|
data.m = "data";
|
||||||
|
|
||||||
|
let channels = [];
|
||||||
|
this.server.rooms.forEach(ch => {
|
||||||
|
channels.push(ch.fetchChannelData());
|
||||||
|
});
|
||||||
|
|
||||||
|
data.channelManager = {
|
||||||
|
channels
|
||||||
|
};
|
||||||
|
|
||||||
|
this.sendArray([data]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Client;
|
module.exports = Client;
|
||||||
|
|
|
@ -334,6 +334,28 @@ module.exports = (cl) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
cl.on('subscribe to admin stream', (msg, admin) => {
|
cl.on('subscribe to admin stream', (msg, admin) => {
|
||||||
if (!admin) return;
|
// if (!admin) return;
|
||||||
|
if (!('password' in msg)) return;
|
||||||
|
if (msg.password !== cl.server.adminpass) return;
|
||||||
|
cl.isSubscribedToAdminStream = true;
|
||||||
|
let interval = 8000;
|
||||||
|
if ('interval_ms' in msg) interval = msg['interval_ms'];
|
||||||
|
cl.adminStreamInterval = setInterval(() => {
|
||||||
|
if (cl.isSubscribedToAdminStream == true) cl.sendAdminData();
|
||||||
|
}, interval);
|
||||||
|
});
|
||||||
|
|
||||||
|
cl.on('unsubscribe from admin stream', (msg, admin) => {
|
||||||
|
// if (!admin) return;
|
||||||
|
if (!('password' in msg)) return;
|
||||||
|
if (msg.password !== cl.server.adminpass) return;
|
||||||
|
cl.isSubscribedToAdminStream = false;
|
||||||
|
if (cl.adminStreamInterval) {
|
||||||
|
clearInterval(cl.adminStreamInterval);
|
||||||
|
cl.adminStreamInterval = undefined;
|
||||||
|
while (cl.adminStreamInterval !== undefined) {
|
||||||
|
cl.adminStreamInterval = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,12 +61,39 @@ class Server extends EventEmitter {
|
||||||
this.connections.set(++this.connectionid, new Client(ws, req, this));
|
this.connections.set(++this.connectionid, new Client(ws, req, this));
|
||||||
});
|
});
|
||||||
|
|
||||||
this.legit_m = ["a", "bye", "hi", "ch", "+ls", "-ls", "m", "n", "devices", "t", "chset", "userset", "chown", "kickban", "admin message", "color", "eval", "notification", "user_flag", "room_flag", "clear_chat", "sudo"];
|
this.legit_m = [
|
||||||
|
"a",
|
||||||
|
"bye",
|
||||||
|
"hi",
|
||||||
|
"ch",
|
||||||
|
"+ls",
|
||||||
|
"-ls",
|
||||||
|
"m",
|
||||||
|
"n",
|
||||||
|
"devices",
|
||||||
|
"t",
|
||||||
|
"chset",
|
||||||
|
"userset",
|
||||||
|
"chown",
|
||||||
|
"kickban",
|
||||||
|
"admin message",
|
||||||
|
"color",
|
||||||
|
"eval",
|
||||||
|
"notification",
|
||||||
|
"user_flag",
|
||||||
|
"room_flag",
|
||||||
|
"clear_chat",
|
||||||
|
"sudo",
|
||||||
|
"subscribe to admin stream",
|
||||||
|
"unsubscribe from admin stream",
|
||||||
|
"data"
|
||||||
|
];
|
||||||
|
|
||||||
this.welcome_motd = config.motd || "You agree to read this message.";
|
this.welcome_motd = config.motd || "You agree to read this message.";
|
||||||
|
|
||||||
this._id_Private_Key = config._id_PrivateKey || "boppity";
|
this._id_Private_Key = config._id_PrivateKey || "amogus";
|
||||||
|
|
||||||
this.adminpass = config.adminpass || "Bop It";
|
this.adminpass = config.adminpass || "123123sucks";
|
||||||
}
|
}
|
||||||
|
|
||||||
updateRoom(data) {
|
updateRoom(data) {
|
||||||
|
|
Loading…
Reference in New Issue