mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 19:43:29 +01:00
Switch to maps for action deleted + more cleaning (#592)
This commit is contained in:
committed by
Amish Shah
parent
a3b9b0f1b4
commit
5af09d335c
@@ -4,8 +4,7 @@ class ChannelDeleteAction extends Action {
|
|||||||
|
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
super(client);
|
super(client);
|
||||||
this.timeouts = [];
|
this.deleted = new Map();
|
||||||
this.deleted = {};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
@@ -14,10 +13,10 @@ class ChannelDeleteAction extends Action {
|
|||||||
let channel = client.channels.get(data.id);
|
let channel = client.channels.get(data.id);
|
||||||
if (channel) {
|
if (channel) {
|
||||||
client.dataManager.killChannel(channel);
|
client.dataManager.killChannel(channel);
|
||||||
this.deleted[channel.id] = channel;
|
this.deleted.set(channel.id, channel);
|
||||||
this.scheduleForDeletion(channel.id);
|
this.scheduleForDeletion(channel.id);
|
||||||
} else if (this.deleted[data.id]) {
|
} else {
|
||||||
channel = this.deleted[data.id];
|
channel = this.deleted.get(data.id) || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -26,7 +25,7 @@ class ChannelDeleteAction extends Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scheduleForDeletion(id) {
|
scheduleForDeletion(id) {
|
||||||
this.client.setTimeout(() => delete this.deleted[id], this.client.options.rest_ws_bridge_timeout);
|
this.client.setTimeout(() => this.deleted.delete(id), this.client.options.rest_ws_bridge_timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ class GuildDeleteAction extends Action {
|
|||||||
|
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
super(client);
|
super(client);
|
||||||
this.deleted = {};
|
this.deleted = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
@@ -27,10 +27,10 @@ class GuildDeleteAction extends Action {
|
|||||||
|
|
||||||
// delete guild
|
// delete guild
|
||||||
client.guilds.delete(guild.id);
|
client.guilds.delete(guild.id);
|
||||||
this.deleted[guild.id] = guild;
|
this.deleted.set(guild.id, guild);
|
||||||
this.scheduleForDeletion(guild.id);
|
this.scheduleForDeletion(guild.id);
|
||||||
} else if (this.deleted[data.id]) {
|
} else {
|
||||||
guild = this.deleted[data.id];
|
guild = this.deleted.get(data.id) || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -39,7 +39,7 @@ class GuildDeleteAction extends Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scheduleForDeletion(id) {
|
scheduleForDeletion(id) {
|
||||||
this.client.setTimeout(() => delete this.deleted[id], this.client.options.rest_ws_bridge_timeout);
|
this.client.setTimeout(() => this.deleted.delete(id), this.client.options.rest_ws_bridge_timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ class GuildMemberRemoveAction extends Action {
|
|||||||
|
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
super(client);
|
super(client);
|
||||||
this.deleted = {};
|
this.deleted = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
@@ -17,11 +17,11 @@ class GuildMemberRemoveAction extends Action {
|
|||||||
if (member) {
|
if (member) {
|
||||||
guild.memberCount--;
|
guild.memberCount--;
|
||||||
guild._removeMember(member);
|
guild._removeMember(member);
|
||||||
this.deleted[guild.id + data.user.id] = member;
|
this.deleted.set(guild.id + data.user.id, member);
|
||||||
if (client.status === Constants.Status.READY) client.emit(Constants.Events.GUILD_MEMBER_REMOVE, guild, member);
|
if (client.status === Constants.Status.READY) client.emit(Constants.Events.GUILD_MEMBER_REMOVE, guild, member);
|
||||||
this.scheduleForDeletion(guild.id, data.user.id);
|
this.scheduleForDeletion(guild.id, data.user.id);
|
||||||
} else {
|
} else {
|
||||||
member = this.deleted[guild.id + data.user.id];
|
member = this.deleted.get(guild.id + data.user.id) || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -37,7 +37,7 @@ class GuildMemberRemoveAction extends Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scheduleForDeletion(guildID, userID) {
|
scheduleForDeletion(guildID, userID) {
|
||||||
this.client.setTimeout(() => delete this.deleted[guildID + userID], this.client.options.rest_ws_bridge_timeout);
|
this.client.setTimeout(() => this.deleted.delete(guildID + userID), this.client.options.rest_ws_bridge_timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ class GuildRoleDeleteAction extends Action {
|
|||||||
|
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
super(client);
|
super(client);
|
||||||
this.deleted = {};
|
this.deleted = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
@@ -16,11 +16,11 @@ class GuildRoleDeleteAction extends Action {
|
|||||||
let role = guild.roles.get(data.role_id);
|
let role = guild.roles.get(data.role_id);
|
||||||
if (role) {
|
if (role) {
|
||||||
guild.roles.delete(data.role_id);
|
guild.roles.delete(data.role_id);
|
||||||
this.deleted[guild.id + data.role_id] = role;
|
this.deleted.set(guild.id + data.role_id, role);
|
||||||
this.scheduleForDeletion(guild.id, data.role_id);
|
this.scheduleForDeletion(guild.id, data.role_id);
|
||||||
client.emit(Constants.Events.GUILD_ROLE_DELETE, guild, role);
|
client.emit(Constants.Events.GUILD_ROLE_DELETE, guild, role);
|
||||||
} else {
|
} else {
|
||||||
role = this.deleted[guild.id + data.role_id];
|
role = this.deleted.get(guild.id + data.role_id) || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -34,7 +34,7 @@ class GuildRoleDeleteAction extends Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scheduleForDeletion(guildID, roleID) {
|
scheduleForDeletion(guildID, roleID) {
|
||||||
this.client.setTimeout(() => delete this.deleted[guildID + roleID], this.client.options.rest_ws_bridge_timeout);
|
this.client.setTimeout(() => this.deleted.delete(guildID + roleID), this.client.options.rest_ws_bridge_timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,6 @@ const cloneObject = require('../../util/CloneObject');
|
|||||||
|
|
||||||
class GuildUpdateAction extends Action {
|
class GuildUpdateAction extends Action {
|
||||||
|
|
||||||
constructor(client) {
|
|
||||||
super(client);
|
|
||||||
this.deleted = {};
|
|
||||||
this.timeouts = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
const client = this.client;
|
const client = this.client;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ class MessageDeleteAction extends Action {
|
|||||||
|
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
super(client);
|
super(client);
|
||||||
this.deleted = {};
|
this.deleted = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
@@ -16,10 +16,10 @@ class MessageDeleteAction extends Action {
|
|||||||
|
|
||||||
if (message) {
|
if (message) {
|
||||||
channel.messages.delete(message.id);
|
channel.messages.delete(message.id);
|
||||||
this.deleted[channel.id + message.id] = message;
|
this.deleted.set(channel.id + message.id, message);
|
||||||
this.scheduleForDeletion(channel.id, message.id);
|
this.scheduleForDeletion(channel.id, message.id);
|
||||||
} else if (this.deleted[channel.id + data.id]) {
|
} else {
|
||||||
message = this.deleted[channel.id + data.id];
|
message = this.deleted.get(channel.id + data.id) || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -33,7 +33,7 @@ class MessageDeleteAction extends Action {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scheduleForDeletion(channelID, messageID) {
|
scheduleForDeletion(channelID, messageID) {
|
||||||
this.client.setTimeout(() => delete this.deleted[channelID + messageID],
|
this.client.setTimeout(() => this.deleted.delete(channelID + messageID),
|
||||||
this.client.options.rest_ws_bridge_timeout);
|
this.client.options.rest_ws_bridge_timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,12 +4,6 @@ const Constants = require('../../util/Constants');
|
|||||||
|
|
||||||
class MessageDeleteBulkAction extends Action {
|
class MessageDeleteBulkAction extends Action {
|
||||||
|
|
||||||
constructor(client) {
|
|
||||||
super(client);
|
|
||||||
this.timeouts = [];
|
|
||||||
this.deleted = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
handle(data) {
|
handle(data) {
|
||||||
const client = this.client;
|
const client = this.client;
|
||||||
const channel = client.channels.get(data.channel_id);
|
const channel = client.channels.get(data.channel_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user