voiceStateUpdate stored per-server, some docs

This commit is contained in:
abalabahaha
2016-01-30 14:11:21 -08:00
parent 46807bf1c1
commit cd25848bdc
12 changed files with 134 additions and 95 deletions

View File

@@ -406,9 +406,7 @@ var Client = (function (_EventEmitter) {
// def addUserToRole
Client.prototype.userHasRole = function userHasRole(member, role) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];
return this.memberHasRole(member, role, callback);
return this.memberHasRole(member, role);
};
// def removeMemberFromRole

View File

@@ -1710,22 +1710,7 @@ var InternalClient = (function () {
// in voice channel
var channel = self.channels.get("id", data.channel_id);
if (channel && channel.type === "voice") {
var oldState = {
mute: user.voiceState.mute,
self_mute: user.voiceState.self_mute,
deaf: user.voiceState.deaf,
self_deaf: user.voiceState.self_deaf
};
user.voiceState.mute = data.mute;
user.voiceState.self_mute = data.self_mute;
user.voiceState.deaf = data.deaf;
user.voiceState.self_deaf = data.self_deaf;
if ((oldState.mute != user.voiceState.mute || oldState.self_mute != user.voiceState.self_mute || oldState.deaf != user.voiceState.deaf || oldState.self_deaf != user.voiceState.self_deaf) && oldState.mute !== undefined) {
client.emit("voiceStateUpdate", channel, user, oldState);
} else {
server.eventVoiceJoin(user, channel);
client.emit("voiceJoin", channel, user);
}
server.eventVoiceStateUpdate(channel, user, data);
} else {
client.emit("warn", "voice state channel not in cache");
}

View File

@@ -88,7 +88,9 @@ var Server = (function (_Equality) {
return 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 _User2["default"](dataUser.user, client));
@@ -174,6 +176,10 @@ var Server = (function (_Equality) {
return this.detailsOf(user);
};
Server.prototype.detailsOfMember = function detailsOfMember(user) {
return this.detailsOf(user);
};
Server.prototype.details = function details(user) {
return this.detailsOf(user);
};
@@ -207,6 +213,29 @@ var Server = (function (_Equality) {
user.voiceChannel = channel;
};
Server.prototype.eventVoiceStateUpdate = function 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);
}
};
Server.prototype.eventVoiceLeave = function eventVoiceLeave(user) {
for (var _iterator3 = this.channels.getAll("type", "voice"), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;