Always send notices that are not targeted at us into the server window

This commit is contained in:
Pavel Djundik 2016-03-20 18:46:08 +02:00 committed by Maxime Poulin
parent 4a7fc0544e
commit 92cc130e2b
1 changed files with 22 additions and 9 deletions

View File

@ -7,6 +7,12 @@ module.exports = function(irc, network) {
var config = Helper.getConfig(); var config = Helper.getConfig();
irc.on("notice", function(data) { irc.on("notice", function(data) {
// Some servers send notices without any nickname
if (!data.nick) {
data.from_server = true;
data.nick = network.host;
}
data.type = Msg.Type.NOTICE; data.type = Msg.Type.NOTICE;
handleMessage(data); handleMessage(data);
}); });
@ -27,23 +33,30 @@ module.exports = function(irc, network) {
chan = network.channels[0]; chan = network.channels[0];
} else { } else {
var target = data.target; var target = data.target;
var targetedAtUser = false;
// If the message is targeted at us, use sender as target instead // If the message is targeted at us, use sender as target instead
if (target.toLowerCase() === irc.user.nick.toLowerCase()) { if (target.toLowerCase() === irc.user.nick.toLowerCase()) {
targetedAtUser = true;
target = data.nick; target = data.nick;
} }
var chan = network.getChannel(target); var chan = network.getChannel(target);
if (typeof chan === "undefined") { if (typeof chan === "undefined") {
chan = new Chan({ // Send notices that are not targeted at us into the server window
type: Chan.Type.QUERY, if (data.type === Msg.Type.NOTICE && !targetedAtUser) {
name: target chan = network.channels[0];
}); } else {
network.channels.push(chan); chan = new Chan({
client.emit("join", { type: Chan.Type.QUERY,
network: network.id, name: target
chan: chan });
}); network.channels.push(chan);
client.emit("join", {
network: network.id,
chan: chan
});
}
} }
} }