mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 09:03:29 +01:00
Merge branch 'master' into indev-prism
This commit is contained in:
@@ -354,6 +354,7 @@ class ClientDataResolver {
|
||||
*/
|
||||
|
||||
/**
|
||||
* Resolves a ColorResolvable into a color number
|
||||
* @param {ColorResolvable} color Color to resolve
|
||||
* @returns {number} A color
|
||||
*/
|
||||
@@ -363,11 +364,13 @@ class ClientDataResolver {
|
||||
} else if (color instanceof Array) {
|
||||
color = (color[0] << 16) + (color[1] << 8) + color[2];
|
||||
}
|
||||
|
||||
if (color < 0 || color > 0xFFFFFF) {
|
||||
throw new RangeError('Color must be within the range 0 - 16777215 (0xFFFFFF).');
|
||||
} else if (color && isNaN(color)) {
|
||||
throw new TypeError('Unable to convert color to a number.');
|
||||
}
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
@@ -376,7 +379,7 @@ class ClientDataResolver {
|
||||
* @returns {number} A color
|
||||
*/
|
||||
resolveColor(color) {
|
||||
return ClientDataResolver.resolveColor(color);
|
||||
return this.constructor.resolveColor(color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ class GuildDeleteAction extends Action {
|
||||
|
||||
let guild = client.guilds.get(data.id);
|
||||
if (guild) {
|
||||
for (const channel of guild.channels.values()) channel.stopTyping(true);
|
||||
|
||||
if (guild.available && data.unavailable) {
|
||||
// guild is unavailable
|
||||
guild.available = false;
|
||||
|
||||
@@ -6,20 +6,22 @@ class GuildSync extends Action {
|
||||
|
||||
const guild = client.guilds.get(data.id);
|
||||
if (guild) {
|
||||
data.presences = data.presences || [];
|
||||
for (const presence of data.presences) {
|
||||
guild._setPresence(presence.user.id, presence);
|
||||
if (data.presences) {
|
||||
for (const presence of data.presences) guild._setPresence(presence.user.id, presence);
|
||||
}
|
||||
|
||||
data.members = data.members || [];
|
||||
for (const syncMember of data.members) {
|
||||
const member = guild.members.get(syncMember.user.id);
|
||||
if (member) {
|
||||
guild._updateMember(member, syncMember);
|
||||
} else {
|
||||
guild._addMember(syncMember, false);
|
||||
if (data.members) {
|
||||
for (const syncMember of data.members) {
|
||||
const member = guild.members.get(syncMember.user.id);
|
||||
if (member) {
|
||||
guild._updateMember(member, syncMember);
|
||||
} else {
|
||||
guild._addMember(syncMember, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ('large' in data) guild.large = data.large;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,10 @@ class PresenceUpdateHandler extends AbstractHandler {
|
||||
client.emit(Constants.Events.GUILD_MEMBER_AVAILABLE, member);
|
||||
}
|
||||
if (member) {
|
||||
if (client.listenerCount(Constants.Events.PRESENCE_UPDATE) === 0) {
|
||||
guild._setPresence(user.id, data);
|
||||
return;
|
||||
}
|
||||
const oldMember = cloneObject(member);
|
||||
if (member.presence) {
|
||||
oldMember.frozenPresence = cloneObject(member.presence);
|
||||
|
||||
Reference in New Issue
Block a user