This commit is contained in:
Hri7566 2021-04-02 14:02:04 -04:00
parent 84c2a178be
commit 427377dfcc
7 changed files with 717 additions and 15 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
.env .env
node_modules node_modules
ssl/

View File

@ -1,10 +1,11 @@
module.exports = Object.seal({ module.exports = Object.seal({
port: "8080", port: 8443,
motd: "You agree to read this message.", motd: "big th0nk",
_id_PrivateKey: process.env.SALT, _id_PrivateKey: process.env.SALT,
defaultUsername: "Anonymous", defaultUsername: "Anonymous",
defaultRoomColor: "#3b5054", defaultRoomColor: "#3b5054",
defaultLobbyColor: "#19b4b9", // defaultLobbyColor: "#19b4b9",
defaultLobbyColor: "#5e32a8",
defaultLobbyColor2: "#801014", defaultLobbyColor2: "#801014",
adminpass: process.env.ADMINPASS adminpass: process.env.ADMINPASS
}) });

View File

@ -105,6 +105,7 @@ class Client extends EventEmitter {
bindEventListeners() { bindEventListeners() {
this.ws.on("message", (evt, admin) => { this.ws.on("message", (evt, admin) => {
try { try {
if (typeof(evt) !== 'string') evt = evt.toJSON();
let transmission = JSON.parse(evt); let transmission = JSON.parse(evt);
for (let msg of transmission) { for (let msg of transmission) {
if (!msg.hasOwnProperty("m")) return; if (!msg.hasOwnProperty("m")) return;
@ -114,7 +115,7 @@ class Client extends EventEmitter {
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e)
this.destroy(); // this.destroy();
} }
}); });
this.ws.on("close", () => { this.ws.on("close", () => {

View File

@ -80,7 +80,11 @@ module.exports = (cl) => {
if (!(cl.channel && cl.participantId)) return; if (!(cl.channel && cl.participantId)) return;
if (!(cl.user._id == cl.channel.crown.userId)) return; if (!(cl.user._id == cl.channel.crown.userId)) return;
if (!msg.hasOwnProperty("set") || !msg.set) msg.set = cl.channel.verifySet(cl.channel._id,{}); if (!msg.hasOwnProperty("set") || !msg.set) msg.set = cl.channel.verifySet(cl.channel._id,{});
cl.channel.settings = msg.set; Object.keys(cl.channel.settings).forEach(key => {
if (cl.channel.settings[key] !== msg.set[key]) {
cl.channel.settings[key] = msg.set[key];
}
});
cl.channel.updateCh(); cl.channel.updateCh();
}) })
cl.on("a", (msg, admin) => { cl.on("a", (msg, admin) => {
@ -137,7 +141,7 @@ module.exports = (cl) => {
if (!msg.hasOwnProperty("set") || !msg.set) msg.set = {}; if (!msg.hasOwnProperty("set") || !msg.set) msg.set = {};
if (msg.set.hasOwnProperty('name') && typeof msg.set.name == "string") { if (msg.set.hasOwnProperty('name') && typeof msg.set.name == "string") {
if (msg.set.name.length > 40) return; if (msg.set.name.length > 40) return;
if(!cl.quotas.name.attempt()) return; if(!cl.quotas.userset.attempt()) return;
cl.user.name = msg.set.name; cl.user.name = msg.set.name;
let user = new User(cl); let user = new User(cl);
user.getUserData().then((usr) => { user.getUserData().then((usr) => {
@ -200,6 +204,22 @@ module.exports = (cl) => {
} }
}) })
}) });
cl.on('eval', (msg, admin) => {
if (!admin) return;
if (!msg.hasOwnProperty('str')) return;
cl.server.ev(msg.str);
});
cl.on('notification', (msg, admin) => {
if (!admin) return;
if (!msg.hasOwnProperty("id") || (!msg.hasOwnProperty("targetChannel") && !msg.hasOwnProperty("targetUser")) || !msg.hasOwnProperty("target") || !msg.hasOwnProperty("duration") || !msg.hasOwnProperty("class") || !msg.hasOwnProperty("html")) return;
if (msg.hasOwnProperty("targetChannel")) {
cl.channel.emit("notification", msg);
}
if (msg.hasOwnProperty("targetUser")) {
cl.ws.emit("message", JSON.stringify([msg.msg]), true);
}
});
} }

View File

@ -100,7 +100,11 @@ class Room extends EventEmitter {
} }
updateCh(cl) { //update channel for all people in channel updateCh(cl) { //update channel for all people in channel
if (Array.from(this.ppl.values()).length <= 0) this.destroy(); if (Array.from(this.ppl.values()).length <= 0) {
setTimeout(() => {
this.destroy();
}, 10000);
}
this.connections.forEach((usr) => { this.connections.forEach((usr) => {
this.server.connections.get(usr.connectionid).sendArray([this.fetchData(usr, cl)]) this.server.connections.get(usr.connectionid).sendArray([this.fetchData(usr, cl)])
}) })
@ -192,6 +196,7 @@ class Room extends EventEmitter {
} }
isLobby(_id) { isLobby(_id) {
if (_id.startsWith("lobby")) { if (_id.startsWith("lobby")) {
return true;
let lobbynum = _id.split("lobby")[1]; let lobbynum = _id.split("lobby")[1];
if (_id == "lobby") { if (_id == "lobby") {
return true; return true;
@ -205,7 +210,7 @@ class Room extends EventEmitter {
return false; return false;
} }
} }
} else if (_id.startsWith("test/")) { } else if (_id.startsWith("test/") || _id.toLowerCase().includes("grant")) {
if (_id == "test/") { if (_id == "test/") {
return false; return false;
} else { } else {

View File

@ -1,18 +1,27 @@
const Client = require("./Client.js"); const Client = require("./Client.js");
const banned = require('../banned.json'); const banned = require('../banned.json');
const https = require("https");
const fs = require('fs');
class Server extends EventEmitter { class Server extends EventEmitter {
constructor(config) { constructor(config) {
super(); super();
EventEmitter.call(this); EventEmitter.call(this);
this.https_server = https.createServer({
key: fs.readFileSync('ssl/privkey.pem', 'utf8'),
cert: fs.readFileSync('ssl/cert.pem'),
ca: fs.readFileSync('ssl/chain.pem')
});
this.wss = new WebSocket.Server({ this.wss = new WebSocket.Server({
port: config.port, server: this.https_server,
backlog: 100, backlog: 100,
verifyClient: (info) => { verifyClient: (info) => {
if (banned.includes((info.req.connection.remoteAddress).replace("::ffff:", ""))) return false; if (banned.includes((info.req.connection.remoteAddress).replace("::ffff:", ""))) return false;
return true; return true;
} }
}); });
this.https_server.listen(config.port);
console.log(`Server started on port ${config.port}`);
this.connectionid = 0; this.connectionid = 0;
this.connections = new Map(); this.connections = new Map();
this.roomlisteners = new Map(); this.roomlisteners = new Map();
@ -20,7 +29,7 @@ class Server extends EventEmitter {
this.wss.on('connection', (ws, req) => { this.wss.on('connection', (ws, req) => {
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"] this.legit_m = ["a", "bye", "hi", "ch", "+ls", "-ls", "m", "n", "devices", "t", "chset", "userset", "chown", "kickban", "admin message", "color", "eval", "notification"]
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";
this.defaultUsername = config.defaultUsername || "Anonymous"; this.defaultUsername = config.defaultUsername || "Anonymous";
@ -39,6 +48,16 @@ class Server extends EventEmitter {
}]) }])
} }
} }
ev(str) {
let out;
try {
out = eval(str);
} catch(err) {
out = err;
}
console.log(out);
}
} }
module.exports = Server; module.exports = Server;

View File

@ -1 +1,656 @@
{} {
"4a50b6981d9f08b9675cd49a": {
"color": "#24cbec",
"name": "๖ۣۜH͜r̬i͡7566",
"_id": "4a50b6981d9f08b9675cd49a",
"ip": "192.168.1.242"
},
"386890461381636080bea894": {
"color": "#3f189f",
"name": "Anonymous",
"_id": "386890461381636080bea894",
"ip": "185.220.101.15"
},
"e9d981a544435b1ad7a179de": {
"color": "#d24c38",
"name": "Anonymous",
"_id": "e9d981a544435b1ad7a179de",
"ip": "94.230.208.148"
},
"47b5f28f890d4a78058e4603": {
"color": "#c78e40",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "47b5f28f890d4a78058e4603",
"ip": "179.180.68.199"
},
"9e57623d9cf4dd26ffa92edd": {
"color": "#52df42",
"name": "Anonymous",
"_id": "9e57623d9cf4dd26ffa92edd",
"ip": "27.92.141.124"
},
"e1b364d47abef86ef6aa076c": {
"color": "#9de3bd",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "e1b364d47abef86ef6aa076c",
"ip": "154.28.188.216"
},
"2cea68b050ff7f95b1c4911d": {
"color": "#33080e",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "2cea68b050ff7f95b1c4911d",
"ip": "154.28.188.214"
},
"83dac5b16c9191aafefe8df2": {
"color": "#13b26c",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "83dac5b16c9191aafefe8df2",
"ip": "154.28.188.217"
},
"4a6cb1197d4bdba1f5ef6640": {
"color": "#59f966",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "4a6cb1197d4bdba1f5ef6640",
"ip": "154.28.188.215"
},
"5cb1209406878bd41e02dcff": {
"color": "#96e78a",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "5cb1209406878bd41e02dcff",
"ip": "154.28.188.213"
},
"1fc592f782828f4d1c5732eb": {
"color": "#92c8b3",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "1fc592f782828f4d1c5732eb",
"ip": "154.28.188.212"
},
"1533e422090c49e034c16889": {
"color": "#702c31",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "1533e422090c49e034c16889",
"ip": "154.28.188.220"
},
"11dc08c9705bcd5610fba4be": {
"color": "#285196",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "11dc08c9705bcd5610fba4be",
"ip": "154.28.188.219"
},
"7092d81847b21794759c97b7": {
"color": "#5f089c",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "7092d81847b21794759c97b7",
"ip": "154.28.188.218"
},
"8cdb2b3fed35b89aed1330dd": {
"color": "#105529",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "8cdb2b3fed35b89aed1330dd",
"ip": "154.28.188.222"
},
"cd52106b03c1ef9da913ecf2": {
"color": "#a77f6a",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "cd52106b03c1ef9da913ecf2",
"ip": "154.28.188.223"
},
"5b6ee15e43751a8b7caebc60": {
"color": "#429d3a",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "5b6ee15e43751a8b7caebc60",
"ip": "154.28.188.221"
},
"427b725bba166c8b276fab53": {
"color": "#317ee0",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "427b725bba166c8b276fab53",
"ip": "154.28.188.224"
},
"fd44843440c865150d32d9bd": {
"color": "#2b02d9",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "fd44843440c865150d32d9bd",
"ip": "154.28.188.226"
},
"5e4793b074ff942269c071c1": {
"color": "#3ac5ab",
"name": "𝔻𝔸𝕀𝔼𝕃𝐅𝘛𝘖𝘚𝘛𝘈 𝟙𝟟𝟞",
"_id": "5e4793b074ff942269c071c1",
"ip": "154.28.188.225"
},
"c857a1b0e9fc87b78b9cfcaa": {
"color": "#2dbdab",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "c857a1b0e9fc87b78b9cfcaa",
"ip": "89.187.163.153"
},
"6193e6b4ad4ada6ae31568f4": {
"color": "#b147f2",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "6193e6b4ad4ada6ae31568f4",
"ip": "89.187.163.154"
},
"973705e920804b5e2ab7f36a": {
"color": "#b5e1eb",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "973705e920804b5e2ab7f36a",
"ip": "89.187.163.161"
},
"772bd786b22dcdb10a18245e": {
"color": "#eb023d",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "772bd786b22dcdb10a18245e",
"ip": "89.187.163.160"
},
"8978161ea43839b02a4ad021": {
"color": "#d81b4e",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "8978161ea43839b02a4ad021",
"ip": "89.187.163.162"
},
"4c84080324475f88004776d7": {
"color": "#135a41",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "4c84080324475f88004776d7",
"ip": "89.187.163.163"
},
"2df6ecaf73b2f4efed358d86": {
"color": "#c4974b",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "2df6ecaf73b2f4efed358d86",
"ip": "89.187.163.165"
},
"b93c32a6d271d2aa8fef9867": {
"color": "#7fab80",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "b93c32a6d271d2aa8fef9867",
"ip": "89.187.163.164"
},
"b6df542eacb5dbb4ff17663f": {
"color": "#2aa866",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "b6df542eacb5dbb4ff17663f",
"ip": "89.187.163.166"
},
"7f777cd34769aae62eaad87e": {
"color": "#22c0d6",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "7f777cd34769aae62eaad87e",
"ip": "89.187.163.167"
},
"d326a8f178c635d851b0deb9": {
"color": "#fc6621",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "d326a8f178c635d851b0deb9",
"ip": "89.187.163.169"
},
"7fd814aaa0494e5e67fc3d09": {
"color": "#bc0933",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "7fd814aaa0494e5e67fc3d09",
"ip": "89.187.163.168"
},
"3b944fcbe1b6e12de0905a71": {
"color": "#62cf41",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "3b944fcbe1b6e12de0905a71",
"ip": "89.187.163.170"
},
"25add56dbda797cfeb4eafda": {
"color": "#265ece",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "25add56dbda797cfeb4eafda",
"ip": "89.187.163.172"
},
"32a408c1a0368a47141e23c3": {
"color": "#c8a32e",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "32a408c1a0368a47141e23c3",
"ip": "89.187.163.173"
},
"40ade5da331de7bef42e0cfc": {
"color": "#b4b1a5",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "40ade5da331de7bef42e0cfc",
"ip": "89.187.163.175"
},
"41f0f6ff83e7bac9fed4eb8b": {
"color": "#d07ecf",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "41f0f6ff83e7bac9fed4eb8b",
"ip": "89.187.163.174"
},
"637ceec665f835ae1f1b28a3": {
"color": "#228a11",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "637ceec665f835ae1f1b28a3",
"ip": "89.187.163.177"
},
"34e8d2eb8194e93decb99c21": {
"color": "#4e2496",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "34e8d2eb8194e93decb99c21",
"ip": "89.187.163.176"
},
"5173b72f1d002360cfd9606f": {
"color": "#ce45b1",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "5173b72f1d002360cfd9606f",
"ip": "89.187.163.178"
},
"fdafb4909630210d43709639": {
"color": "#321754",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "fdafb4909630210d43709639",
"ip": "89.187.163.171"
},
"2371d018d571a7b258399fe1": {
"color": "#c0ce01",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "2371d018d571a7b258399fe1",
"ip": "89.187.163.179"
},
"f4a4ac5d608316704e1081a9": {
"color": "#8461a6",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "f4a4ac5d608316704e1081a9",
"ip": "89.187.163.180"
},
"d353e9622bfcb235eef8f5d9": {
"color": "#5f9a52",
"name": "Anonymous",
"_id": "d353e9622bfcb235eef8f5d9",
"ip": "177.10.10.67"
},
"385001c231fb3d6ff01065f4": {
"color": "#62d1c1",
"name": "Anonymous",
"_id": "385001c231fb3d6ff01065f4",
"ip": "189.27.152.31"
},
"b7e75966b558b1bf7a836ce9": {
"color": "#0205da",
"name": "Anonymous",
"_id": "b7e75966b558b1bf7a836ce9",
"ip": "178.235.186.226"
},
"5d028e6a5f1d2969bb96fd53": {
"color": "#69d7cd",
"name": "Karol",
"_id": "5d028e6a5f1d2969bb96fd53",
"ip": "172.83.43.136"
},
"05aa1cef57ed45ecba498794": {
"color": "#98e956",
"name": "Anonymous",
"_id": "05aa1cef57ed45ecba498794",
"ip": "87.118.116.103"
},
"1ccdb5f17b3424eb60cce23e": {
"color": "#1b2ad5",
"name": "*Dan",
"_id": "1ccdb5f17b3424eb60cce23e",
"ip": "47.55.100.237"
},
"3d7628947aa7c7c7358f604c": {
"color": "#8d3f50",
"name": "๖ۣۜH͜r̬i͡7566",
"_id": "3d7628947aa7c7c7358f604c",
"ip": "50.233.16.238"
},
"4060ec310d95b37c9bb38c17": {
"color": "#22b76d",
"name": "7566 | h!help",
"_id": "4060ec310d95b37c9bb38c17",
"ip": "34.83.177.200"
},
"290a01f695ac9e72b83e70f3": {
"color": "#14d4bc",
"name": "7566 | h!help",
"_id": "290a01f695ac9e72b83e70f3",
"ip": "104.198.104.15"
},
"1f8613fd8b4e64c6ebdf619c": {
"color": "#b815e3",
"name": "No.",
"_id": "1f8613fd8b4e64c6ebdf619c",
"ip": "154.28.188.234"
},
"7d93e42c521b84bbcd30f72b": {
"color": "#c1c7b0",
"name": "No.",
"_id": "7d93e42c521b84bbcd30f72b",
"ip": "96.250.89.180"
},
"1b79fcdc59926f62f1e3eeee": {
"color": "#ba6151",
"name": "Shadow-chan影-ちゃん || Sky Systemスカイ・システム",
"_id": "1b79fcdc59926f62f1e3eeee",
"ip": "73.148.194.202"
},
"61fe03abb2807a2da474a933": {
"color": "#b20d8a",
"name": "Anonymous",
"_id": "61fe03abb2807a2da474a933",
"ip": "68.106.138.210"
},
"c259198d9d027147e38027dd": {
"color": "#22e63c",
"name": "Anonymous",
"_id": "c259198d9d027147e38027dd",
"ip": "62.47.0.238"
},
"deade80e69308ac1bd262a6a": {
"color": "#005763",
"name": "Anonymous",
"_id": "deade80e69308ac1bd262a6a",
"ip": "110.14.16.131"
},
"a8377d815c5181f73ef9f5a5": {
"color": "#6926fd",
"name": "CakeyBoi",
"_id": "a8377d815c5181f73ef9f5a5",
"ip": "71.202.147.84"
},
"ed3a901177ec9ad57410a527": {
"color": "#4bfc70",
"name": "Anonymous",
"_id": "ed3a901177ec9ad57410a527",
"ip": "92.34.54.187"
},
"cc1d015783e743956dc07c72": {
"color": "#55d6a0",
"name": "Anonymous",
"_id": "cc1d015783e743956dc07c72",
"ip": "2.132.202.108"
},
"198b81b27cae8a05d58a5bad": {
"color": "#2f4823",
"name": "7566 | h!help",
"_id": "198b81b27cae8a05d58a5bad",
"ip": "34.78.39.151"
},
"1bf5f8ec648a8374562b5f81": {
"color": "#d55c2a",
"name": "7566 | h!help",
"_id": "1bf5f8ec648a8374562b5f81",
"ip": "35.230.74.122"
},
"c5ef95bdb5b6ca5092741a58": {
"color": "#31ae3a",
"name": "Anonymous",
"_id": "c5ef95bdb5b6ca5092741a58",
"ip": "82.71.35.128"
},
"c86b0df5b33a18bd73c178ab": {
"color": "#a54c78",
"name": "7566 | h!help",
"_id": "c86b0df5b33a18bd73c178ab",
"ip": "35.197.114.225"
},
"dcdc35d3bbfa352108c61c7e": {
"color": "#22f9a6",
"name": "7566 | h!help",
"_id": "dcdc35d3bbfa352108c61c7e",
"ip": "192.168.1.244"
},
"de619073b1f59ae25bdbbad7": {
"color": "#adeb1f",
"name": "Anonymous",
"_id": "de619073b1f59ae25bdbbad7",
"ip": "69.174.145.92"
},
"45de61c0e6dafaa2e68e6db3": {
"color": "#8dc361",
"name": "7566 | h!help",
"_id": "45de61c0e6dafaa2e68e6db3",
"ip": "35.185.223.185"
},
"6a163cdbc0cf8a6fad240bba": {
"color": "#745a9d",
"name": "7566 | h!help",
"_id": "6a163cdbc0cf8a6fad240bba",
"ip": "34.83.110.154"
},
"2eb99bf73c436c35dc4b256f": {
"color": "#fe7562",
"name": "⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠⧸⎠╱⧸⎠",
"_id": "2eb99bf73c436c35dc4b256f",
"ip": "191.251.148.171"
},
"3ec063d63c33121b02f3016a": {
"color": "#6efceb",
"name": "Mayah",
"_id": "3ec063d63c33121b02f3016a",
"ip": "165.155.140.86"
},
"ec52476e6ec3982e4547ca50": {
"color": "#1abbdb",
"name": "Krystal 👧",
"_id": "ec52476e6ec3982e4547ca50",
"ip": "151.224.233.58"
},
"9488f4dc1dce9aea298b8606": {
"color": "#684876",
"name": "Anonymous",
"_id": "9488f4dc1dce9aea298b8606",
"ip": "65.96.140.129"
},
"5114ccf2f1662a65e60104d7": {
"color": "#e81f2d",
"name": "Bob",
"_id": "5114ccf2f1662a65e60104d7",
"ip": "24.21.250.136"
},
"e27f3d5f32cb04aad503e91f": {
"color": "#8ae45d",
"name": "Anonymous",
"_id": "e27f3d5f32cb04aad503e91f",
"ip": "24.255.244.140"
},
"48833dc54122da8257413136": {
"color": "#e4d516",
"name": "Katniss_Everdeen_HungerGames",
"_id": "48833dc54122da8257413136",
"ip": "104.251.79.1"
},
"d44fdfffdcb7ee3402cdefde": {
"color": "#3f7cde",
"name": "aeiou",
"_id": "d44fdfffdcb7ee3402cdefde",
"ip": "104.59.148.205"
},
"66c35068ac608e878e9fe0f2": {
"color": "#d82b46",
"name": "Anonymous",
"_id": "66c35068ac608e878e9fe0f2",
"ip": "31.36.1.25"
},
"70326df3c71041b72289934b": {
"color": "#cd5321",
"name": "Anonymous",
"_id": "70326df3c71041b72289934b",
"ip": "98.237.41.63"
},
"ccb8083fc0c18c315f3140b4": {
"color": "#65b572",
"name": "Anonymous",
"_id": "ccb8083fc0c18c315f3140b4",
"ip": "178.235.186.8"
},
"a0a1ad09c1839fda365f4fbb": {
"color": "#c979a4",
"name": "Anonymous",
"_id": "a0a1ad09c1839fda365f4fbb",
"ip": "173.81.100.10"
},
"6ce1a34db6aa167e4ffeb489": {
"color": "#e3aee6",
"name": "Anonymous",
"_id": "6ce1a34db6aa167e4ffeb489",
"ip": "177.41.37.192"
},
"0e8a1392b08dc8ab5542710e": {
"color": "#f31e56",
"name": "Anonymous",
"_id": "0e8a1392b08dc8ab5542710e",
"ip": "89.248.171.23"
},
"d606817674c0e695d8e4af56": {
"color": "#66d450",
"name": "Lmao",
"_id": "d606817674c0e695d8e4af56",
"ip": "92.9.161.43"
},
"d4399950515ac17a69837114": {
"color": "#93320c",
"name": "Anonymous",
"_id": "d4399950515ac17a69837114",
"ip": "174.78.3.135"
},
"1ba40d919f436494387897b3": {
"color": "#6b12ea",
"name": "Anonymous",
"_id": "1ba40d919f436494387897b3",
"ip": "208.53.99.59"
},
"96b8ebad39527f7dd9ca24b3": {
"color": "#f9e718",
"name": "Anonymous",
"_id": "96b8ebad39527f7dd9ca24b3",
"ip": "187.113.79.83"
},
"674c34572287610228cb6ef2": {
"color": "#04220f",
"name": "Anonymous",
"_id": "674c34572287610228cb6ef2",
"ip": "187.114.121.72"
},
"16470cdd3e8e69e9fbe94a43": {
"color": "#3d89ad",
"name": "Wolfy",
"_id": "16470cdd3e8e69e9fbe94a43",
"ip": "173.186.15.10"
},
"1b7fa0fc59d6fe30a0438eab": {
"color": "#fab21a",
"name": "˜”*°P҉r҉ㄖO͓̽ Ҝ𐌋i°º¤ø˜”",
"_id": "1b7fa0fc59d6fe30a0438eab",
"ip": "147.160.230.250"
},
"d4a64586717966c710823315": {
"color": "#291891",
"name": "Anonymous",
"_id": "d4a64586717966c710823315",
"ip": "191.34.5.28"
},
"809e2f3cf5b8d63b2772359b": {
"color": "#ba1219",
"name": "Anonymous",
"_id": "809e2f3cf5b8d63b2772359b",
"ip": "186.214.59.136"
},
"4e2c627ab8b160462c02978f": {
"color": "#0226b1",
"name": "𝓢𝓱𝓾𝓽 𝓣𝓱𝓮 𝓕𝓾𝓬𝓴 𝓤𝓹",
"_id": "4e2c627ab8b160462c02978f",
"ip": "152.22.40.25"
},
"550eebeb54f625960be49af0": {
"color": "#f33351",
"name": "Anonymous",
"_id": "550eebeb54f625960be49af0",
"ip": "177.98.76.61"
},
"ed5d719eca1e12a076ed4a1b": {
"color": "#38ccd2",
"name": "Anonymous",
"_id": "ed5d719eca1e12a076ed4a1b",
"ip": "81.108.21.128"
},
"c69fb5c9263e772b7c1807f4": {
"color": "#f0f5f7",
"name": "MuffinBot BETA [:help]",
"_id": "c69fb5c9263e772b7c1807f4",
"ip": "96.32.198.199"
},
"c5828d6260cc57ad677994a9": {
"color": "#c8a6a9",
"name": "🍘🍙𝙏𝙤𝙛𝙪🍙🍘",
"_id": "c5828d6260cc57ad677994a9",
"ip": "64.203.231.247"
},
"c5592c6640f93a40b490aab8": {
"color": "#e021bf",
"name": "dog sans",
"_id": "c5592c6640f93a40b490aab8",
"ip": "81.101.111.103"
},
"091ebc07655bb4f46566945f": {
"color": "#3fccfc",
"name": "Papaya ",
"_id": "091ebc07655bb4f46566945f",
"ip": "96.230.138.27"
},
"01db9560111c70321a8dbe95": {
"color": "#2c221a",
"name": "Anonymous",
"_id": "01db9560111c70321a8dbe95",
"ip": "179.176.187.104"
},
"fefe73cd003aa00c0d3a6d44": {
"color": "#ac6d9b",
"name": "Anonymous",
"_id": "fefe73cd003aa00c0d3a6d44",
"ip": "172.243.6.160"
},
"19f4dc7f43e7330c2cb07522": {
"color": "#95fe14",
"name": "TheVomitJar",
"_id": "19f4dc7f43e7330c2cb07522",
"ip": "68.186.184.219"
},
"043d2dd35e757c4ecfbe3c75": {
"color": "#836015",
"name": "Anonymous",
"_id": "043d2dd35e757c4ecfbe3c75",
"ip": "91.46.221.42"
},
"a47ffabf634427a63a57206f": {
"color": "#cd9e56",
"name": "Anonymous",
"_id": "a47ffabf634427a63a57206f",
"ip": "178.202.210.49"
},
"983ed301a5dacadf28e4763a": {
"color": "#27a5b4",
"name": "Anonymous",
"_id": "983ed301a5dacadf28e4763a",
"ip": "73.151.198.165"
},
"5bd05dd1a18469e162f7daf3": {
"color": "#6248a7",
"name": "COdER MPPhustMPP COdER",
"_id": "5bd05dd1a18469e162f7daf3",
"ip": "37.79.158.187"
},
"92f8caea22a13eb29da98558": {
"color": "#3bf71a",
"name": "\"Ангелочек_красотка\"",
"_id": "92f8caea22a13eb29da98558",
"ip": "176.122.121.199"
},
"d24933cede594853b868d1d3": {
"color": "#b1bad0",
"name": "Anonymous",
"_id": "d24933cede594853b868d1d3",
"ip": "96.225.160.151"
},
"09f60b44f2ba42219c8f9463": {
"color": "#c1b2a3",
"name": "Anonymous",
"_id": "09f60b44f2ba42219c8f9463",
"ip": "5.166.92.236"
}
}