Webpack build for branch master: 306ea97f99

This commit is contained in:
Travis CI 2017-01-21 16:39:27 +00:00
parent e1881bc3ae
commit ea80458bb7
2 changed files with 28 additions and 26 deletions

View file

@ -3742,7 +3742,6 @@ class Guild {
* @returns {Promise<GuildMember>} * @returns {Promise<GuildMember>}
*/ */
fetchMember(user, cache = true) { fetchMember(user, cache = true) {
if (this._fetchWaiter) return Promise.reject(new Error('Already fetching guild members.'));
user = this.client.resolver.resolveUser(user); user = this.client.resolver.resolveUser(user);
if (!user) return Promise.reject(new Error('User is not cached. Use Client.fetchUser first.')); if (!user) return Promise.reject(new Error('User is not cached. Use Client.fetchUser first.'));
if (this.members.has(user.id)) return Promise.resolve(this.members.get(user.id)); if (this.members.has(user.id)) return Promise.resolve(this.members.get(user.id));
@ -3752,17 +3751,17 @@ class Guild {
/** /**
* Fetches all the members in the guild, even if they are offline. If the guild has less than 250 members, * Fetches all the members in the guild, even if they are offline. If the guild has less than 250 members,
* this should not be necessary. * this should not be necessary.
* @param {string} [query=''] An optional query to provide when fetching members * @param {string} [query=''] Limit fetch to members with similar usernames
* @returns {Promise<Guild>} * @returns {Promise<Guild>}
*/ */
fetchMembers(query = '') { fetchMembers(query = '') {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (this._fetchWaiter) throw new Error(`Already fetching guild members in ${this.id}.`);
if (this.memberCount === this.members.size) { if (this.memberCount === this.members.size) {
// uncomment in v12
// resolve(this.members)
resolve(this); resolve(this);
return; return;
} }
this._fetchWaiter = resolve;
this.client.ws.send({ this.client.ws.send({
op: Constants.OPCodes.REQUEST_GUILD_MEMBERS, op: Constants.OPCodes.REQUEST_GUILD_MEMBERS,
d: { d: {
@ -3771,7 +3770,17 @@ class Guild {
limit: 0, limit: 0,
}, },
}); });
this._checkChunks(); const handler = (members, guild) => {
if (guild.id !== this.id) return;
if (this.memberCount === this.members.size) {
this.client.removeListener(Constants.Events.GUILD_MEMBERS_CHUNK, handler);
// uncomment in v12
// resolve(this.members)
resolve(this);
return;
}
};
this.client.on(Constants.Events.GUILD_MEMBERS_CHUNK, handler);
this.client.setTimeout(() => reject(new Error('Members didn\'t arrive in time.')), 120 * 1000); this.client.setTimeout(() => reject(new Error('Members didn\'t arrive in time.')), 120 * 1000);
}); });
} }
@ -4217,7 +4226,6 @@ class Guild {
this.client.emit(Constants.Events.GUILD_MEMBER_ADD, member); this.client.emit(Constants.Events.GUILD_MEMBER_ADD, member);
} }
this._checkChunks();
return member; return member;
} }
@ -4247,7 +4255,6 @@ class Guild {
_removeMember(guildMember) { _removeMember(guildMember) {
this.members.delete(guildMember.id); this.members.delete(guildMember.id);
this._checkChunks();
} }
_memberSpeakUpdate(user, speaking) { _memberSpeakUpdate(user, speaking) {
@ -4271,15 +4278,6 @@ class Guild {
} }
this.presences.set(id, new Presence(presence)); this.presences.set(id, new Presence(presence));
} }
_checkChunks() {
if (this._fetchWaiter) {
if (this.members.size === this.memberCount) {
this._fetchWaiter(this);
this._fetchWaiter = null;
}
}
}
} }
module.exports = Guild; module.exports = Guild;
@ -24011,10 +24009,10 @@ module.exports = GuildMemberUpdateHandler;
/* 133 */ /* 133 */
/***/ (function(module, exports, __webpack_require__) { /***/ (function(module, exports, __webpack_require__) {
// ##untested##
const AbstractHandler = __webpack_require__(1); const AbstractHandler = __webpack_require__(1);
const Constants = __webpack_require__(0); const Constants = __webpack_require__(0);
// uncomment in v12
// const Collection = require('../../../../util/Collection');
class GuildMembersChunkHandler extends AbstractHandler { class GuildMembersChunkHandler extends AbstractHandler {
handle(packet) { handle(packet) {
@ -24023,9 +24021,13 @@ class GuildMembersChunkHandler extends AbstractHandler {
const guild = client.guilds.get(data.guild_id); const guild = client.guilds.get(data.guild_id);
if (!guild) return; if (!guild) return;
// uncomment in v12
// const members = new Collection();
//
// for (const member of data.members) members.set(member.id, guild._addMember(member, false));
const members = data.members.map(member => guild._addMember(member, false)); const members = data.members.map(member => guild._addMember(member, false));
guild._checkChunks();
client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, members); client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, members);
client.ws.lastHeartbeatAck = true; client.ws.lastHeartbeatAck = true;
@ -24035,7 +24037,7 @@ class GuildMembersChunkHandler extends AbstractHandler {
/** /**
* Emitted whenever a chunk of guild members is received (all members come from the same guild) * Emitted whenever a chunk of guild members is received (all members come from the same guild)
* @event Client#guildMembersChunk * @event Client#guildMembersChunk
* @param {GuildMember[]} members The members in the chunk * @param {Collection<GuildMember>} members The members in the chunk
*/ */
module.exports = GuildMembersChunkHandler; module.exports = GuildMembersChunkHandler;

12
discord.master.min.js vendored

File diff suppressed because one or more lines are too long