mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
voiceStateUpdate stored per-server, some docs
This commit is contained in:
@@ -50,7 +50,9 @@ export default class Server extends Equality {
|
||||
this.memberMap[dataUser.user.id] = {
|
||||
roles: dataUser.roles.map((pid) => self.roles.get("id", pid)),
|
||||
mute: dataUser.mute,
|
||||
self_mute: dataUser.self_mute,
|
||||
deaf: dataUser.deaf,
|
||||
self_deaf: dataUser.self_deaf,
|
||||
joinedAt: Date.parse(dataUser.joined_at)
|
||||
};
|
||||
var user = client.internal.users.add(new User(dataUser.user, client));
|
||||
@@ -108,6 +110,10 @@ export default class Server extends Equality {
|
||||
return this.detailsOf(user);
|
||||
}
|
||||
|
||||
detailsOfMember(user) {
|
||||
return this.detailsOf(user);
|
||||
}
|
||||
|
||||
details(user) {
|
||||
return this.detailsOf(user);
|
||||
}
|
||||
@@ -169,6 +175,31 @@ export default class Server extends Equality {
|
||||
user.voiceChannel = channel;
|
||||
}
|
||||
|
||||
eventVoiceStateUpdate(channel, user, data) {
|
||||
// removes from other speaking channels first
|
||||
if (!this.memberMap[user.id]) {
|
||||
this.memberMap[user.id] = {};
|
||||
}
|
||||
var oldState = {
|
||||
mute: this.memberMap[user.id].mute,
|
||||
self_mute: this.memberMap[user.id].self_mute,
|
||||
deaf: this.memberMap[user.id].deaf,
|
||||
self_deaf: this.memberMap[user.id].self_deaf
|
||||
};
|
||||
this.memberMap[user.id].mute = data.mute;
|
||||
this.memberMap[user.id].self_mute = data.self_mute;
|
||||
this.memberMap[user.id].deaf = data.deaf;
|
||||
this.memberMap[user.id].self_deaf = data.self_deaf;
|
||||
if ((oldState.mute != data.mute || oldState.self_mute != data.self_mute
|
||||
|| oldState.deaf != data.deaf || oldState.self_deaf != data.self_deaf)
|
||||
&& oldState.mute !== undefined) {
|
||||
this.client.emit("voiceStateUpdate", channel, user, oldState, this.memberMap[user.id]);
|
||||
} else {
|
||||
this.eventVoiceJoin(user, channel);
|
||||
this.client.emit("voiceJoin", channel, user);
|
||||
}
|
||||
}
|
||||
|
||||
eventVoiceLeave(user) {
|
||||
for (let chan of this.channels.getAll("type", "voice")) {
|
||||
if (chan.members.has(user)) {
|
||||
|
||||
Reference in New Issue
Block a user