discord-irc
Advanced tools
Comparing version 2.3.0 to 2.3.1
# Changelog | ||
This project adheres to [Semantic Versioning](http://semver.org/). | ||
## [2.3.1] - 2017-04-05 | ||
### Fixed | ||
* Fix IRC quit messages sending to all channels by tracking users - [#214](https://github.com/reactiflux/discord-irc/pull/214#pullrequestreview-31156291). | ||
## [2.3.0] - 2017-04-03 | ||
A huge thank you to [Throne3d](https://github.com/Throne3d), | ||
[rahatarmanahmed](https://github.com/rahatarmanahmed) and | ||
[Ratismal](https://github.com/Ratismal) for all the fixes and features | ||
A huge thank you to [@Throne3d](https://github.com/Throne3d), | ||
[@rahatarmanahmed](https://github.com/rahatarmanahmed), [@mraof](https://github.com/mraof) | ||
and [@Ratismal](https://github.com/Ratismal) for all the fixes and features | ||
in this release. | ||
@@ -26,3 +30,3 @@ | ||
### Fixed | ||
* Parse role mentions appropariately, as with channel and user mentions | ||
* Parse role mentions appropriately, as with channel and user mentions | ||
[#203](https://github.com/reactiflux/discord-irc/pull/203). | ||
@@ -29,0 +33,0 @@ |
@@ -83,2 +83,5 @@ 'use strict'; | ||
// Keep track of { channel => [list, of, usernames] } for ircStatusNotices | ||
this.channelUsers = {}; | ||
this.channelMapping = {}; | ||
@@ -151,2 +154,5 @@ | ||
if (nick === this.nickname && !this.announceSelfJoin) return; | ||
// self-join is announced before names (which includes own nick) | ||
// so don't add nick to channelUsers | ||
if (nick !== this.nickname) this.channelUsers[channel].add(nick); | ||
this.sendExactToDiscord(channel, `*${nick}* has joined the channel`); | ||
@@ -156,3 +162,9 @@ }); | ||
this.ircClient.on('part', (channel, nick, reason) => { | ||
if (!this.ircStatusNotices || nick === this.nickname) return; | ||
if (!this.ircStatusNotices) return; | ||
// remove list of users when no longer in channel (as it will become out of date) | ||
if (nick === this.nickname) { | ||
delete this.channelUsers[channel]; | ||
return; | ||
} | ||
this.channelUsers[channel].delete(nick); | ||
this.sendExactToDiscord(channel, `*${nick}* has left the channel (${reason})`); | ||
@@ -164,2 +176,3 @@ }); | ||
channels.forEach(channel => { | ||
if (!this.channelUsers[channel].delete(nick)) return; | ||
this.sendExactToDiscord(channel, `*${nick}* has quit (${reason})`); | ||
@@ -169,2 +182,7 @@ }); | ||
this.ircClient.on('names', (channel, nicks) => { | ||
if (!this.ircStatusNotices) return; | ||
this.channelUsers[channel] = new Set(Object.keys(nicks)); | ||
}); | ||
this.ircClient.on('action', (author, to, text) => { | ||
@@ -171,0 +189,0 @@ this.sendToDiscord(author, to, `_${text}_`); |
{ | ||
"name": "discord-irc", | ||
"version": "2.3.0", | ||
"version": "2.3.1", | ||
"description": "Connects IRC and Discord channels by sending messages back and forth.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
136478
458