forked from Hri7566/mpp-server-dev2
no idea...
This commit is contained in:
parent
95d2567145
commit
e00105a8cf
|
@ -1,5 +1,6 @@
|
||||||
.env
|
.env
|
||||||
node_modules
|
node_modules
|
||||||
ssl/
|
ssl/
|
||||||
src/db/rooms.db
|
|
||||||
.history
|
.history
|
||||||
|
*.db/
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Database {
|
||||||
|
|
||||||
static async load() {
|
static async load() {
|
||||||
this.userdb = mongoose.connection;
|
this.userdb = mongoose.connection;
|
||||||
this.roomdb = level('src/db/rooms.db');
|
this.roomdb = level('db/rooms.db');
|
||||||
// const writeFile = promisify(fs.writeFile);
|
// const writeFile = promisify(fs.writeFile);
|
||||||
// const readdir = promisify(fs.readdir);
|
// const readdir = promisify(fs.readdir);
|
||||||
|
|
||||||
|
|
|
@ -246,7 +246,7 @@ module.exports = (cl) => {
|
||||||
|
|
||||||
c.user.color = msg.color;
|
c.user.color = msg.color;
|
||||||
require("./Database").updateUser(c.user._id, c.user);
|
require("./Database").updateUser(c.user._id, c.user);
|
||||||
c.user.cl.updateParticipant(c.user._id, c.user);
|
cl.channel.updateParticipant(c.user._id, c.user);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -305,8 +305,33 @@ module.exports = (cl) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
cl.on('room_flag', (msg, admin) => {
|
||||||
|
if (!admin) return;
|
||||||
|
if (!msg.hasOwnProperty('_id') || !msg.hasOwnProperty('key') || !msg.hasOwnProperty('value')) return;
|
||||||
|
|
||||||
|
try {
|
||||||
|
let ch = cl.server.rooms.get(msg._id);
|
||||||
|
ch.flags[msg.key] = msg.value;
|
||||||
|
} catch(err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
cl.on('clear_chat', (msg, admin) => {
|
cl.on('clear_chat', (msg, admin) => {
|
||||||
if (!admin) return;
|
if (!admin) return;
|
||||||
|
cl.channel.connections.forEach(cl => {
|
||||||
|
cl.sendArray([{m:"c", c:[]}]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
cl.on('sudo', (msg, admin) => {
|
||||||
|
if (!admin) return;
|
||||||
|
if (typeof msg._id !== 'string') return;
|
||||||
|
if (typeof msg.msg !== 'object') return;
|
||||||
|
if (!msg.msg.m) return;
|
||||||
|
cl.server.connections.forEach(c => {
|
||||||
|
if (c.user._id !== msg._id) return;
|
||||||
|
c.emit(msg.msg.m, msg.msg);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
16
src/Room.js
16
src/Room.js
|
@ -31,6 +31,12 @@ class Room extends EventEmitter {
|
||||||
|
|
||||||
this.settings = set.settings;
|
this.settings = set.settings;
|
||||||
this.chatmsgs = set.chat;
|
this.chatmsgs = set.chat;
|
||||||
|
this.connections.forEach(cl => {
|
||||||
|
cl.sendArray([{
|
||||||
|
m: 'c',
|
||||||
|
c: this.chatmsgs.slice(-1 * 32)
|
||||||
|
}]);
|
||||||
|
});
|
||||||
this.setData();
|
this.setData();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -348,14 +354,18 @@ class Room extends EventEmitter {
|
||||||
|
|
||||||
playNote(cl, note) {
|
playNote(cl, note) {
|
||||||
let vel = Math.round(cl.user.flags["volume"])/100 || undefined;
|
let vel = Math.round(cl.user.flags["volume"])/100 || undefined;
|
||||||
if (vel == 1) vel = undefined;
|
|
||||||
|
if (vel) {
|
||||||
|
for (let no of note.n) {
|
||||||
|
no.v /= vel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.sendArray([{
|
this.sendArray([{
|
||||||
m: "n",
|
m: "n",
|
||||||
n: note.n,
|
n: note.n,
|
||||||
p: cl.participantId,
|
p: cl.participantId,
|
||||||
t: note.t,
|
t: note.t
|
||||||
v: vel
|
|
||||||
}], cl, true);
|
}], cl, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ 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"]
|
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.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 || "boppity";
|
||||||
|
|
|
@ -32,11 +32,11 @@ class User {
|
||||||
}
|
}
|
||||||
|
|
||||||
checkFlags() {
|
checkFlags() {
|
||||||
/*
|
|
||||||
if (typeof(this.cl.server.specialIntervals[this._id]) == 'undefined') {
|
if (typeof(this.cl.server.specialIntervals[this._id]) == 'undefined') {
|
||||||
this.cl.server.specialIntervals[this._id] = {};
|
this.cl.server.specialIntervals[this._id] = {};
|
||||||
}
|
}
|
||||||
if (this.hasFlag('rainbow', true)) {
|
if (this.hasFlag('rainbow', true)) {
|
||||||
|
console.log('rainbow on for ' + this._id);
|
||||||
if (!this.cl.server.specialIntervals[this._id].hasOwnProperty('rainbow')) {
|
if (!this.cl.server.specialIntervals[this._id].hasOwnProperty('rainbow')) {
|
||||||
let h = Math.floor(Math.random() * 360);
|
let h = Math.floor(Math.random() * 360);
|
||||||
let s = 50;
|
let s = 50;
|
||||||
|
@ -68,10 +68,9 @@ class User {
|
||||||
}, 1000/15);
|
}, 1000/15);
|
||||||
}
|
}
|
||||||
} else if (this.hasFlag('rainbow', false)) {
|
} else if (this.hasFlag('rainbow', false)) {
|
||||||
console.log('rainbow off triggered');
|
console.log('rainbow off for ' + this._id);
|
||||||
clearInterval(this.cl.server.specialIntervals[this._id].rainbow);
|
clearInterval(this.cl.server.specialIntervals[this._id].rainbow);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stopFlagEvents() {
|
stopFlagEvents() {
|
||||||
|
@ -96,3 +95,4 @@ class User {
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = User;
|
module.exports = User;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue