Fix #776 (guildMemberAdd firing for existing members)

This commit is contained in:
Amish Shah
2016-10-24 15:57:07 +01:00
parent d42ac98339
commit 6093dac554
2 changed files with 4 additions and 1 deletions

View File

@@ -679,6 +679,7 @@ class Guild {
} }
_addMember(guildUser, emitEvent = true) { _addMember(guildUser, emitEvent = true) {
const existing = this.members.has(guildUser.user.id);
if (!(guildUser.user instanceof User)) guildUser.user = this.client.dataManager.newUser(guildUser.user); if (!(guildUser.user instanceof User)) guildUser.user = this.client.dataManager.newUser(guildUser.user);
guildUser.joined_at = guildUser.joined_at || 0; guildUser.joined_at = guildUser.joined_at || 0;
@@ -702,7 +703,7 @@ class Guild {
* @param {Guild} guild The guild that the user has joined * @param {Guild} guild The guild that the user has joined
* @param {GuildMember} member The member that has joined * @param {GuildMember} member The member that has joined
*/ */
if (this.client.ws.status === Constants.Status.READY && emitEvent) { if (this.client.ws.status === Constants.Status.READY && emitEvent && !existing) {
this.client.emit(Constants.Events.GUILD_MEMBER_ADD, this, member); this.client.emit(Constants.Events.GUILD_MEMBER_ADD, this, member);
} }

View File

@@ -20,6 +20,8 @@ client.on('userUpdate', (o, n) => {
console.log(o.username, n.username); console.log(o.username, n.username);
}); });
client.on('guildMemberAdd', (g, m) => console.log(`${m.user.username} joined ${g.name}`));
client.on('channelCreate', channel => { client.on('channelCreate', channel => {
console.log(`made ${channel.name}`); console.log(`made ${channel.name}`);
}); });