diff --git a/src/models/chan.js b/src/models/chan.js index 3cd7e99b..57b51c66 100644 --- a/src/models/chan.js +++ b/src/models/chan.js @@ -3,6 +3,7 @@ const _ = require("lodash"); const Helper = require("../helper"); const User = require("./user"); +const Msg = require("./msg"); const storage = require("../plugins/storage"); module.exports = Chan; @@ -185,9 +186,19 @@ Chan.prototype.writeUserLog = function(client, msg) { return; } + let targetChannel = this; + // Is this particular message or channel loggable if (!msg.isLoggable() || !this.isLoggable()) { - return; + // Because notices are nasty and can be shown in active channel on the client + // if there is no open query, we want to always log notices in the sender's name + if (msg.type === Msg.Type.NOTICE && msg.showInActive) { + targetChannel = { + name: msg.from.nick, + }; + } else { + return; + } } // Find the parent network where this channel is in @@ -198,7 +209,7 @@ Chan.prototype.writeUserLog = function(client, msg) { } for (const messageStorage of client.messageStorage) { - messageStorage.index(target.network, this, msg); + messageStorage.index(target.network, targetChannel, msg); } };