// ==UserScript== // @name MPP - AdvancedChatLogger // @namespace Violentmonkey Scripts // @match https://mppclone.com/* // @grant none // @version 1.0 // @author - // @description 8/6/2022, 1:13:53 AM // @downloadURL none // ==/UserScript== function init() { let logger = { messages: [], log: (msg) => { this.messages.push(msg + "\n"); }, clear: () => { this.messages = []; } }; const protocol = { chatList: "c", chat: "a", directMessage: "dm", channelUpdate: "ch" }; const client = MPP.client; let lastChannel = ""; client.on(protocol.channelUpdate, (msg) => { if (lastChannel === msg.ch.id) return; logger.clear(); console.log("Detected room change. Clearing logs..."); lastChannel = msg.ch.id; }); client.on(protocol.chatList, (msg) => { if (msg.c) { msg.c.forEach((cmsg) => { if (cmsg.m === "dm") { const time = new Date(cmsg.t).toLocaleTimeString(); const sender = cmsg.sender; const senderId = sender.id; const senderName = sender.name; const recipient = cmsg.recipient; const recipientId = recipient.id; const recipientName = recipient.name; if (senderId === client.getOwnParticipant().id) { logger.log( `${time} ${senderId} (DM) ${senderName} to ${recipientId} ${recipientName}: ${cmsg.a}` ); } else { logger.log( `${time} ${recipientId} (DM) ${recipientName} from ${senderId} ${senderName}: ${cmsg.a}` ); } } else { const time = new Date(cmsg.t).toLocaleTimeString(); logger.log( `${time} ${cmsg.p.id} (--) ${cmsg.p.name}: ${cmsg.a}` ); } }); } }); client.on(protocol.chat, (msg) => { const time = new Date(msg.t).toLocaleTimeString(); logger.log(`${time} ${msg.p.id} (--) ${msg.p.name}: ${msg.a}`); }); client.on(protocol.directMessage, (msg) => { const time = new Date(msg.t).toLocaleTimeString(); const sender = msg.sender; const senderId = sender.id; const senderName = sender.name; const recipient = msg.recipient; const recipientId = recipient.id; const recipientName = recipient.name; if (senderId === client.getOwnParticipant().id) { logger.log( `${time} ${senderId} (DM) ${senderName} to ${recipientId} ${recipientName}: ${msg.a}` ); } else { logger.log( `${time} ${recipientId} (DM) ${recipientName} from ${senderId} ${senderName}: ${msg.a}` ); } }); window.messages = logger.messages; const btn = `