diff --git a/index.d.ts b/index.d.ts index 5a8833743..1f3ec9fcc 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1158,7 +1158,7 @@ declare namespace Eris { limit?: number; constructor(baseObject: new (...args: any[]) => T, limit?: number); add(obj: T, extra?: any, replace?: boolean): T; - find(func: (i: T) => boolean): T; + find(func: (i: T) => boolean): T | undefined; random(): T; filter(func: (i: T) => boolean): T[]; map(func: (i: T) => R): R[]; diff --git a/lib/gateway/Shard.js b/lib/gateway/Shard.js index 9646ebce2..466ead18e 100644 --- a/lib/gateway/Shard.js +++ b/lib/gateway/Shard.js @@ -370,8 +370,8 @@ class Shard extends EventEmitter { * Fired when a guild member switches voice channels * @event Client#voiceChannelSwitch * @prop {Member} member The member - * @prop {CategoryChannel | TextChannel | VoiceChannel} newChannel The new voice channel - * @prop {CategoryChannel | TextChannel | VoiceChannel} oldChannel The old voice channel + * @prop {VoiceChannel} newChannel The new voice channel + * @prop {VoiceChannel} oldChannel The old voice channel */ oldChannel.voiceMembers.remove(member); this.emit("voiceChannelSwitch", newChannel.voiceMembers.add(member, guild), newChannel, oldChannel); @@ -380,18 +380,19 @@ class Shard extends EventEmitter { * Fired when a guild member joins a voice channel. This event is not fired when a member switches voice channels, see `voiceChannelSwitch` * @event Client#voiceChannelJoin * @prop {Member} member The member - * @prop {CategoryChannel | TextChannel | VoiceChannel} newChannel The voice channel + * @prop {VoiceChannel} newChannel The voice channel */ this.emit("voiceChannelJoin", newChannel.voiceMembers.add(member, guild), newChannel); } } else if(oldChannel) { + oldChannel.voiceMembers.remove(member); /** * Fired when a guild member leaves a voice channel. This event is not fired when a member switches voice channels, see `voiceChannelSwitch` * @event Client#voiceChannelLeave - * @prop {Member} member The member - * @prop {CategoryChannel | TextChannel | VoiceChannel} oldChannel The voice channel + * @prop {?Member} member The member + * @prop {VoiceChannel} oldChannel The voice channel */ - this.emit("voiceChannelLeave", oldChannel.voiceMembers.remove(member), oldChannel); + this.emit("voiceChannelLeave", member, oldChannel); } } if(oldState.mute !== member.mute || oldState.deaf !== member.deaf || oldState.selfMute !== member.selfMute || oldState.selfDeaf !== member.selfDeaf || oldState.selfStream !== member.selfStream) {