discord.js-selfv13 13.0.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of discord.js-selfv13 might be problematic. Click here for more details.
- package/.dccache +1 -0
- package/LICENSE +190 -0
- package/README.md +87 -0
- package/browser.js +9 -0
- package/deploy/deploy-key.enc +0 -0
- package/deploy/deploy.sh +90 -0
- package/deploy/test.sh +34 -0
- package/docs/README.md +1 -0
- package/docs/examples/attachments.md +163 -0
- package/docs/examples/avatars.js +29 -0
- package/docs/examples/embed.js +38 -0
- package/docs/examples/greeting.js +30 -0
- package/docs/examples/moderation.md +145 -0
- package/docs/examples/ping.js +29 -0
- package/docs/examples/webhook.js +12 -0
- package/docs/general/faq.md +23 -0
- package/docs/general/updating.md +181 -0
- package/docs/general/welcome.md +95 -0
- package/docs/index.yml +30 -0
- package/docs/logo.svg +19 -0
- package/docs/topics/voice.md +113 -0
- package/docs/topics/web.md +38 -0
- package/package.json +147 -0
- package/src/client/Client.js +564 -0
- package/src/client/ClientDataManager.js +150 -0
- package/src/client/ClientDataResolver.js +376 -0
- package/src/client/ClientManager.js +74 -0
- package/src/client/WebhookClient.js +118 -0
- package/src/client/actions/Action.js +23 -0
- package/src/client/actions/ActionsManager.js +40 -0
- package/src/client/actions/ChannelCreate.js +11 -0
- package/src/client/actions/ChannelDelete.js +30 -0
- package/src/client/actions/ChannelUpdate.js +74 -0
- package/src/client/actions/GuildBanRemove.js +13 -0
- package/src/client/actions/GuildChannelsPositionUpdate.js +19 -0
- package/src/client/actions/GuildDelete.js +57 -0
- package/src/client/actions/GuildEmojiCreate.js +17 -0
- package/src/client/actions/GuildEmojiDelete.js +18 -0
- package/src/client/actions/GuildEmojiUpdate.js +17 -0
- package/src/client/actions/GuildEmojisUpdate.js +38 -0
- package/src/client/actions/GuildMemberGet.js +10 -0
- package/src/client/actions/GuildMemberRemove.js +41 -0
- package/src/client/actions/GuildRoleCreate.js +26 -0
- package/src/client/actions/GuildRoleDelete.js +42 -0
- package/src/client/actions/GuildRoleUpdate.js +41 -0
- package/src/client/actions/GuildRolesPositionUpdate.js +19 -0
- package/src/client/actions/GuildSync.js +29 -0
- package/src/client/actions/GuildUpdate.js +34 -0
- package/src/client/actions/MessageCreate.js +53 -0
- package/src/client/actions/MessageDelete.js +35 -0
- package/src/client/actions/MessageDeleteBulk.js +26 -0
- package/src/client/actions/MessageReactionAdd.js +37 -0
- package/src/client/actions/MessageReactionRemove.js +37 -0
- package/src/client/actions/MessageReactionRemoveAll.js +25 -0
- package/src/client/actions/MessageUpdate.js +40 -0
- package/src/client/actions/Ready.js +1 -0
- package/src/client/actions/Ready.js.bak +65 -0
- package/src/client/actions/UserGet.js +11 -0
- package/src/client/actions/UserNoteUpdate.js +30 -0
- package/src/client/actions/UserUpdate.js +33 -0
- package/src/client/rest/APIRequest.js +56 -0
- package/src/client/rest/DiscordAPIError.js +60 -0
- package/src/client/rest/RESTManager.js +58 -0
- package/src/client/rest/RESTMethods.js +1006 -0
- package/src/client/rest/RequestHandlers/Burst.js +90 -0
- package/src/client/rest/RequestHandlers/RequestHandler.js +54 -0
- package/src/client/rest/RequestHandlers/Sequential.js +132 -0
- package/src/client/rest/UserAgentManager.js +25 -0
- package/src/client/voice/ClientVoiceManager.js +81 -0
- package/src/client/voice/VoiceBroadcast.js +366 -0
- package/src/client/voice/VoiceConnection.js +530 -0
- package/src/client/voice/VoiceUDPClient.js +127 -0
- package/src/client/voice/VoiceWebSocket.js +246 -0
- package/src/client/voice/dispatcher/StreamDispatcher.js +331 -0
- package/src/client/voice/opus/BaseOpusEngine.js +60 -0
- package/src/client/voice/opus/NodeOpusEngine.js +40 -0
- package/src/client/voice/opus/OpusEngineList.js +28 -0
- package/src/client/voice/opus/OpusScriptEngine.js +45 -0
- package/src/client/voice/player/AudioPlayer.js +170 -0
- package/src/client/voice/receiver/VoiceReadable.js +17 -0
- package/src/client/voice/receiver/VoiceReceiver.js +219 -0
- package/src/client/voice/util/SecretKey.js +16 -0
- package/src/client/voice/util/Secretbox.js +33 -0
- package/src/client/voice/util/VolumeInterface.js +86 -0
- package/src/client/websocket/WebSocketConnection.js +506 -0
- package/src/client/websocket/WebSocketManager.js +90 -0
- package/src/client/websocket/packets/WebSocketPacketManager.js +110 -0
- package/src/client/websocket/packets/handlers/AbstractHandler.js +11 -0
- package/src/client/websocket/packets/handlers/ChannelCreate.js +17 -0
- package/src/client/websocket/packets/handlers/ChannelDelete.js +20 -0
- package/src/client/websocket/packets/handlers/ChannelPinsUpdate.js +37 -0
- package/src/client/websocket/packets/handlers/ChannelUpdate.js +11 -0
- package/src/client/websocket/packets/handlers/GuildBanAdd.js +23 -0
- package/src/client/websocket/packets/handlers/GuildBanRemove.js +20 -0
- package/src/client/websocket/packets/handlers/GuildCreate.js +22 -0
- package/src/client/websocket/packets/handlers/GuildDelete.js +19 -0
- package/src/client/websocket/packets/handlers/GuildEmojisUpdate.js +11 -0
- package/src/client/websocket/packets/handlers/GuildIntegrationsUpdate.js +19 -0
- package/src/client/websocket/packets/handlers/GuildMemberAdd.js +17 -0
- package/src/client/websocket/packets/handlers/GuildMemberRemove.js +13 -0
- package/src/client/websocket/packets/handlers/GuildMemberUpdate.js +18 -0
- package/src/client/websocket/packets/handlers/GuildMembersChunk.js +33 -0
- package/src/client/websocket/packets/handlers/GuildRoleCreate.js +11 -0
- package/src/client/websocket/packets/handlers/GuildRoleDelete.js +11 -0
- package/src/client/websocket/packets/handlers/GuildRoleUpdate.js +11 -0
- package/src/client/websocket/packets/handlers/GuildSync.js +11 -0
- package/src/client/websocket/packets/handlers/GuildUpdate.js +11 -0
- package/src/client/websocket/packets/handlers/MessageCreate.js +19 -0
- package/src/client/websocket/packets/handlers/MessageDelete.js +19 -0
- package/src/client/websocket/packets/handlers/MessageDeleteBulk.js +17 -0
- package/src/client/websocket/packets/handlers/MessageReactionAdd.js +11 -0
- package/src/client/websocket/packets/handlers/MessageReactionRemove.js +11 -0
- package/src/client/websocket/packets/handlers/MessageReactionRemoveAll.js +11 -0
- package/src/client/websocket/packets/handlers/MessageUpdate.js +11 -0
- package/src/client/websocket/packets/handlers/PresenceUpdate.js +76 -0
- package/src/client/websocket/packets/handlers/Ready.js +83 -0
- package/src/client/websocket/packets/handlers/RelationshipAdd.js +19 -0
- package/src/client/websocket/packets/handlers/RelationshipRemove.js +19 -0
- package/src/client/websocket/packets/handlers/Resumed.js +28 -0
- package/src/client/websocket/packets/handlers/TypingStart.js +68 -0
- package/src/client/websocket/packets/handlers/UserGuildSettingsUpdate.js +21 -0
- package/src/client/websocket/packets/handlers/UserNoteUpdate.js +12 -0
- package/src/client/websocket/packets/handlers/UserSettingsUpdate.js +18 -0
- package/src/client/websocket/packets/handlers/UserUpdate.js +11 -0
- package/src/client/websocket/packets/handlers/VoiceServerUpdate.js +19 -0
- package/src/client/websocket/packets/handlers/VoiceStateUpdate.js +52 -0
- package/src/client/websocket/packets/handlers/WebhooksUpdate.js +19 -0
- package/src/index.js +66 -0
- package/src/sharding/Shard.js +282 -0
- package/src/sharding/ShardClientUtil.js +146 -0
- package/src/sharding/ShardingManager.js +220 -0
- package/src/structures/Attachment.js +75 -0
- package/src/structures/CategoryChannel.js +22 -0
- package/src/structures/Channel.js +78 -0
- package/src/structures/ClientUser.js +447 -0
- package/src/structures/ClientUserChannelOverride.js +30 -0
- package/src/structures/ClientUserGuildSettings.js +60 -0
- package/src/structures/ClientUserSettings.js +80 -0
- package/src/structures/DMChannel.js +76 -0
- package/src/structures/Emoji.js +256 -0
- package/src/structures/GroupDMChannel.js +246 -0
- package/src/structures/Guild.js +1461 -0
- package/src/structures/GuildAuditLogs.js +371 -0
- package/src/structures/GuildChannel.js +537 -0
- package/src/structures/GuildMember.js +613 -0
- package/src/structures/Invite.js +164 -0
- package/src/structures/Message.js +605 -0
- package/src/structures/MessageAttachment.js +68 -0
- package/src/structures/MessageCollector.js +100 -0
- package/src/structures/MessageEmbed.js +386 -0
- package/src/structures/MessageMentions.js +144 -0
- package/src/structures/MessageReaction.js +96 -0
- package/src/structures/NewsChannel.js +24 -0
- package/src/structures/OAuth2Application.js +148 -0
- package/src/structures/PartialGuild.js +51 -0
- package/src/structures/PartialGuildChannel.js +44 -0
- package/src/structures/PermissionOverwrites.js +69 -0
- package/src/structures/Presence.js +241 -0
- package/src/structures/ReactionCollector.js +85 -0
- package/src/structures/ReactionEmoji.js +49 -0
- package/src/structures/RichEmbed.js +295 -0
- package/src/structures/Role.js +376 -0
- package/src/structures/StoreChannel.js +25 -0
- package/src/structures/TextChannel.js +154 -0
- package/src/structures/User.js +329 -0
- package/src/structures/UserConnection.js +48 -0
- package/src/structures/UserProfile.js +62 -0
- package/src/structures/VoiceChannel.js +146 -0
- package/src/structures/VoiceRegion.js +50 -0
- package/src/structures/Webhook.js +304 -0
- package/src/structures/interfaces/Collector.js +179 -0
- package/src/structures/interfaces/TextBasedChannel.js +635 -0
- package/src/structures/shared/resolvePermissions.js +26 -0
- package/src/util/Collection.js +532 -0
- package/src/util/Constants.js +845 -0
- package/src/util/Permissions.js +306 -0
- package/src/util/Snowflake.js +82 -0
- package/src/util/Util.js +221 -0
- package/test/random.js +207 -0
- package/test/shard.js +31 -0
- package/test/sharder.js +7 -0
- package/test/voice.js +78 -0
- package/test/webpack.html +31 -0
- package/tsconfig.json +13 -0
- package/tslint.json +62 -0
- package/typings/discord.js-test.ts +69 -0
- package/typings/index.d.ts +2190 -0
- package/webpack.config.js +62 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class ChannelCreateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.ChannelCreate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Emitted whenever a channel is created.
|
13
|
+
* @event Client#channelCreate
|
14
|
+
* @param {Channel} channel The channel that was created
|
15
|
+
*/
|
16
|
+
|
17
|
+
module.exports = ChannelCreateHandler;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
const Constants = require('../../../../util/Constants');
|
4
|
+
|
5
|
+
class ChannelDeleteHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
const response = client.actions.ChannelDelete.handle(data);
|
10
|
+
if (response.channel) client.emit(Constants.Events.CHANNEL_DELETE, response.channel);
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Emitted whenever a channel is deleted.
|
16
|
+
* @event Client#channelDelete
|
17
|
+
* @param {Channel} channel The channel that was deleted
|
18
|
+
*/
|
19
|
+
|
20
|
+
module.exports = ChannelDeleteHandler;
|
@@ -0,0 +1,37 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const Constants = require('../../../../util/Constants');
|
3
|
+
|
4
|
+
/*
|
5
|
+
{ t: 'CHANNEL_PINS_UPDATE',
|
6
|
+
s: 666,
|
7
|
+
op: 0,
|
8
|
+
d:
|
9
|
+
{ last_pin_timestamp: '2016-08-28T17:37:13.171774+00:00',
|
10
|
+
channel_id: '314866471639044027' } }
|
11
|
+
*/
|
12
|
+
|
13
|
+
class ChannelPinsUpdate extends AbstractHandler {
|
14
|
+
handle(packet) {
|
15
|
+
const client = this.packetManager.client;
|
16
|
+
const data = packet.d;
|
17
|
+
const channel = client.channels.get(data.channel_id);
|
18
|
+
const time = new Date(data.last_pin_timestamp);
|
19
|
+
if (channel && time) {
|
20
|
+
// Discord sends null for last_pin_timestamp if the last pinned message was removed
|
21
|
+
channel.lastPinTimestamp = time.getTime() || null;
|
22
|
+
|
23
|
+
client.emit(Constants.Events.CHANNEL_PINS_UPDATE, channel, time);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Emitted whenever the pins of a channel are updated. Due to the nature of the WebSocket event, not much information
|
30
|
+
* can be provided easily here - you need to manually check the pins yourself.
|
31
|
+
* <warn>The `time` parameter will be a Unix Epoch Date object when there are no pins left.</warn>
|
32
|
+
* @event Client#channelPinsUpdate
|
33
|
+
* @param {Channel} channel The channel that the pins update occured in
|
34
|
+
* @param {Date} time The time when the last pinned message was pinned
|
35
|
+
*/
|
36
|
+
|
37
|
+
module.exports = ChannelPinsUpdate;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class ChannelUpdateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.ChannelUpdate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = ChannelUpdateHandler;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// ##untested handler##
|
2
|
+
|
3
|
+
const AbstractHandler = require('./AbstractHandler');
|
4
|
+
const Constants = require('../../../../util/Constants');
|
5
|
+
|
6
|
+
class GuildBanAddHandler extends AbstractHandler {
|
7
|
+
handle(packet) {
|
8
|
+
const client = this.packetManager.client;
|
9
|
+
const data = packet.d;
|
10
|
+
const guild = client.guilds.get(data.guild_id);
|
11
|
+
const user = client.users.get(data.user.id);
|
12
|
+
if (guild && user) client.emit(Constants.Events.GUILD_BAN_ADD, guild, user);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Emitted whenever a member is banned from a guild.
|
18
|
+
* @event Client#guildBanAdd
|
19
|
+
* @param {Guild} guild The guild that the ban occurred in
|
20
|
+
* @param {User} user The user that was banned
|
21
|
+
*/
|
22
|
+
|
23
|
+
module.exports = GuildBanAddHandler;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// ##untested handler##
|
2
|
+
|
3
|
+
const AbstractHandler = require('./AbstractHandler');
|
4
|
+
|
5
|
+
class GuildBanRemoveHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
client.actions.GuildBanRemove.handle(data);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Emitted whenever a member is unbanned from a guild.
|
15
|
+
* @event Client#guildBanRemove
|
16
|
+
* @param {Guild} guild The guild that the unban occurred in
|
17
|
+
* @param {User} user The user that was unbanned
|
18
|
+
*/
|
19
|
+
|
20
|
+
module.exports = GuildBanRemoveHandler;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildCreateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
|
8
|
+
const guild = client.guilds.get(data.id);
|
9
|
+
if (guild) {
|
10
|
+
if (!guild.available && !data.unavailable) {
|
11
|
+
// A newly available guild
|
12
|
+
guild.setup(data);
|
13
|
+
this.packetManager.ws.checkIfReady();
|
14
|
+
}
|
15
|
+
} else {
|
16
|
+
// A new guild
|
17
|
+
client.dataManager.newGuild(data);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
module.exports = GuildCreateHandler;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const Constants = require('../../../../util/Constants');
|
3
|
+
|
4
|
+
class GuildDeleteHandler extends AbstractHandler {
|
5
|
+
handle(packet) {
|
6
|
+
const client = this.packetManager.client;
|
7
|
+
const data = packet.d;
|
8
|
+
const response = client.actions.GuildDelete.handle(data);
|
9
|
+
if (response.guild) client.emit(Constants.Events.GUILD_DELETE, response.guild);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Emitted whenever a guild is deleted/left.
|
15
|
+
* @event Client#guildDelete
|
16
|
+
* @param {Guild} guild The guild that was deleted
|
17
|
+
*/
|
18
|
+
|
19
|
+
module.exports = GuildDeleteHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildEmojisUpdate extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.GuildEmojisUpdate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = GuildEmojisUpdate;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const { Events } = require('../../../../util/Constants');
|
3
|
+
|
4
|
+
class GuildIntegrationsHandler extends AbstractHandler {
|
5
|
+
handle(packet) {
|
6
|
+
const client = this.packetManager.client;
|
7
|
+
const data = packet.d;
|
8
|
+
const guild = client.guilds.get(data.guild_id);
|
9
|
+
if (guild) client.emit(Events.GUILD_INTEGRATIONS_UPDATE, guild);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
module.exports = GuildIntegrationsHandler;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Emitted whenever a guild integration is updated
|
17
|
+
* @event Client#guildIntegrationsUpdate
|
18
|
+
* @param {Guild} guild The guild whose integrations were updated
|
19
|
+
*/
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// ##untested handler##
|
2
|
+
|
3
|
+
const AbstractHandler = require('./AbstractHandler');
|
4
|
+
|
5
|
+
class GuildMemberAddHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
const guild = client.guilds.get(data.guild_id);
|
10
|
+
if (guild) {
|
11
|
+
guild.memberCount++;
|
12
|
+
guild._addMember(data);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
module.exports = GuildMemberAddHandler;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// ##untested handler##
|
2
|
+
|
3
|
+
const AbstractHandler = require('./AbstractHandler');
|
4
|
+
|
5
|
+
class GuildMemberRemoveHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
client.actions.GuildMemberRemove.handle(data);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
module.exports = GuildMemberRemoveHandler;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// ##untested handler##
|
2
|
+
|
3
|
+
const AbstractHandler = require('./AbstractHandler');
|
4
|
+
|
5
|
+
class GuildMemberUpdateHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
|
10
|
+
const guild = client.guilds.get(data.guild_id);
|
11
|
+
if (guild) {
|
12
|
+
const member = guild.members.get(data.user.id);
|
13
|
+
if (member) guild._updateMember(member, data);
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
module.exports = GuildMemberUpdateHandler;
|
@@ -0,0 +1,33 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const Constants = require('../../../../util/Constants');
|
3
|
+
// Uncomment in v12
|
4
|
+
// const Collection = require('../../../../util/Collection');
|
5
|
+
|
6
|
+
class GuildMembersChunkHandler extends AbstractHandler {
|
7
|
+
handle(packet) {
|
8
|
+
const client = this.packetManager.client;
|
9
|
+
const data = packet.d;
|
10
|
+
const guild = client.guilds.get(data.guild_id);
|
11
|
+
if (!guild) return;
|
12
|
+
|
13
|
+
// Uncomment in v12
|
14
|
+
// const members = new Collection();
|
15
|
+
//
|
16
|
+
// for (const member of data.members) members.set(member.id, guild._addMember(member, false));
|
17
|
+
|
18
|
+
const members = data.members.map(member => guild._addMember(member, false));
|
19
|
+
|
20
|
+
client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, members, guild);
|
21
|
+
|
22
|
+
client.ws.lastHeartbeatAck = true;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Emitted whenever a chunk of guild members is received (all members come from the same guild).
|
28
|
+
* @event Client#guildMembersChunk
|
29
|
+
* @param {GuildMember[]} members The members in the chunk
|
30
|
+
* @param {Guild} guild The guild related to the member chunk
|
31
|
+
*/
|
32
|
+
|
33
|
+
module.exports = GuildMembersChunkHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildRoleCreateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.GuildRoleCreate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = GuildRoleCreateHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildRoleDeleteHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.GuildRoleDelete.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = GuildRoleDeleteHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildRoleUpdateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.GuildRoleUpdate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = GuildRoleUpdateHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildSyncHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.GuildSync.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = GuildSyncHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class GuildUpdateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.GuildUpdate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = GuildUpdateHandler;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const Constants = require('../../../../util/Constants');
|
3
|
+
|
4
|
+
class MessageCreateHandler extends AbstractHandler {
|
5
|
+
handle(packet) {
|
6
|
+
const client = this.packetManager.client;
|
7
|
+
const data = packet.d;
|
8
|
+
const response = client.actions.MessageCreate.handle(data);
|
9
|
+
if (response.message) client.emit(Constants.Events.MESSAGE_CREATE, response.message);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Emitted whenever a message is created.
|
15
|
+
* @event Client#message
|
16
|
+
* @param {Message} message The created message
|
17
|
+
*/
|
18
|
+
|
19
|
+
module.exports = MessageCreateHandler;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const Constants = require('../../../../util/Constants');
|
3
|
+
|
4
|
+
class MessageDeleteHandler extends AbstractHandler {
|
5
|
+
handle(packet) {
|
6
|
+
const client = this.packetManager.client;
|
7
|
+
const data = packet.d;
|
8
|
+
const response = client.actions.MessageDelete.handle(data);
|
9
|
+
if (response.message) client.emit(Constants.Events.MESSAGE_DELETE, response.message);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Emitted whenever a message is deleted.
|
15
|
+
* @event Client#messageDelete
|
16
|
+
* @param {Message} message The deleted message
|
17
|
+
*/
|
18
|
+
|
19
|
+
module.exports = MessageDeleteHandler;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class MessageDeleteBulkHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.MessageDeleteBulk.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Emitted whenever messages are deleted in bulk.
|
13
|
+
* @event Client#messageDeleteBulk
|
14
|
+
* @param {Collection<Snowflake, Message>} messages The deleted messages, mapped by their ID
|
15
|
+
*/
|
16
|
+
|
17
|
+
module.exports = MessageDeleteBulkHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class MessageReactionAddHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.MessageReactionAdd.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = MessageReactionAddHandler;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class MessageReactionRemove extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.MessageReactionRemove.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = MessageReactionRemove;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class MessageReactionRemoveAll extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.MessageReactionRemoveAll.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = MessageReactionRemoveAll;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class MessageUpdateHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
client.actions.MessageUpdate.handle(data);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
module.exports = MessageUpdateHandler;
|
@@ -0,0 +1,76 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
const Constants = require('../../../../util/Constants');
|
3
|
+
const Util = require('../../../../util/Util');
|
4
|
+
|
5
|
+
class PresenceUpdateHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
let user = client.users.get(data.user.id);
|
10
|
+
const guild = client.guilds.get(data.guild_id);
|
11
|
+
|
12
|
+
// Step 1
|
13
|
+
if (!user) {
|
14
|
+
if (data.user.username) {
|
15
|
+
user = client.dataManager.newUser(data.user);
|
16
|
+
} else {
|
17
|
+
return;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
const oldUser = Util.cloneObject(user);
|
22
|
+
user.patch(data.user);
|
23
|
+
if (!user.equals(oldUser)) {
|
24
|
+
client.emit(Constants.Events.USER_UPDATE, oldUser, user);
|
25
|
+
}
|
26
|
+
|
27
|
+
if (guild) {
|
28
|
+
let member = guild.members.get(user.id);
|
29
|
+
if (!member && data.status !== 'offline') {
|
30
|
+
member = guild._addMember({
|
31
|
+
user,
|
32
|
+
roles: data.roles,
|
33
|
+
deaf: false,
|
34
|
+
mute: false,
|
35
|
+
}, false);
|
36
|
+
client.emit(Constants.Events.GUILD_MEMBER_AVAILABLE, member);
|
37
|
+
}
|
38
|
+
if (member) {
|
39
|
+
if (client.listenerCount(Constants.Events.PRESENCE_UPDATE) === 0) {
|
40
|
+
guild._setPresence(user.id, data);
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
const oldMember = Util.cloneObject(member);
|
44
|
+
if (member.presence) {
|
45
|
+
oldMember.frozenPresence = Util.cloneObject(member.presence);
|
46
|
+
}
|
47
|
+
guild._setPresence(user.id, data);
|
48
|
+
client.emit(Constants.Events.PRESENCE_UPDATE, oldMember, member);
|
49
|
+
} else {
|
50
|
+
guild._setPresence(user.id, data);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Emitted whenever a guild member's presence changes, or they change one of their details.
|
58
|
+
* @event Client#presenceUpdate
|
59
|
+
* @param {GuildMember} oldMember The member before the presence update
|
60
|
+
* @param {GuildMember} newMember The member after the presence update
|
61
|
+
*/
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Emitted whenever a user's details (e.g. username) are changed.
|
65
|
+
* @event Client#userUpdate
|
66
|
+
* @param {User} oldUser The user before the update
|
67
|
+
* @param {User} newUser The user after the update
|
68
|
+
*/
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Emitted whenever a member becomes available in a large guild.
|
72
|
+
* @event Client#guildMemberAvailable
|
73
|
+
* @param {GuildMember} member The member that became available
|
74
|
+
*/
|
75
|
+
|
76
|
+
module.exports = PresenceUpdateHandler;
|
@@ -0,0 +1,83 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
const ClientUser = require('../../../../structures/ClientUser');
|
4
|
+
|
5
|
+
class ReadyHandler extends AbstractHandler {
|
6
|
+
handle(packet) {
|
7
|
+
const client = this.packetManager.client;
|
8
|
+
const data = packet.d;
|
9
|
+
|
10
|
+
client.ws.heartbeat();
|
11
|
+
|
12
|
+
data.user.user_settings = data.user_settings;
|
13
|
+
data.user.user_guild_settings = data.user_guild_settings;
|
14
|
+
|
15
|
+
const clientUser = new ClientUser(client, data.user);
|
16
|
+
client.user = clientUser;
|
17
|
+
client.readyAt = new Date();
|
18
|
+
client.users.set(clientUser.id, clientUser);
|
19
|
+
|
20
|
+
for (const guild of data.guilds) if (!client.guilds.has(guild.id)) client.dataManager.newGuild(guild);
|
21
|
+
for (const privateDM of data.private_channels) client.dataManager.newChannel(privateDM);
|
22
|
+
|
23
|
+
for (const relation of data.relationships) {
|
24
|
+
const user = client.dataManager.newUser(relation.user);
|
25
|
+
if (relation.type === 1) {
|
26
|
+
client.user.friends.set(user.id, user);
|
27
|
+
} else if (relation.type === 2) {
|
28
|
+
client.user.blocked.set(user.id, user);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
data.presences = data.presences || [];
|
33
|
+
for (const presence of data.presences) {
|
34
|
+
client.dataManager.newUser(presence.user);
|
35
|
+
client._setPresence(presence.user.id, presence);
|
36
|
+
}
|
37
|
+
|
38
|
+
if (data.notes) {
|
39
|
+
for (const user in data.notes) {
|
40
|
+
let note = data.notes[user];
|
41
|
+
if (!note.length) note = null;
|
42
|
+
|
43
|
+
client.user.notes.set(user, note);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
if (!client.user.bot && client.options.sync) client.setInterval(client.syncGuilds.bind(client), 30000);
|
48
|
+
|
49
|
+
if (!client.users.has('1')) {
|
50
|
+
client.dataManager.newUser({
|
51
|
+
id: '1',
|
52
|
+
username: 'Clyde',
|
53
|
+
discriminator: '0000',
|
54
|
+
avatar: 'https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png',
|
55
|
+
bot: true,
|
56
|
+
status: 'online',
|
57
|
+
game: null,
|
58
|
+
verified: true,
|
59
|
+
});
|
60
|
+
}
|
61
|
+
|
62
|
+
const t = client.setTimeout(() => {
|
63
|
+
client.ws.connection.triggerReady();
|
64
|
+
}, 1200 * data.guilds.length);
|
65
|
+
|
66
|
+
client.setMaxListeners(data.guilds.length + 10);
|
67
|
+
|
68
|
+
client.once('ready', () => {
|
69
|
+
client.syncGuilds();
|
70
|
+
client.setMaxListeners(10);
|
71
|
+
client.clearTimeout(t);
|
72
|
+
});
|
73
|
+
|
74
|
+
const ws = this.packetManager.ws;
|
75
|
+
|
76
|
+
ws.sessionID = data.session_id;
|
77
|
+
ws._trace = data._trace;
|
78
|
+
client.emit('debug', `READY ${ws._trace.join(' -> ')} ${ws.sessionID}`);
|
79
|
+
ws.checkIfReady();
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
module.exports = ReadyHandler;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
const AbstractHandler = require('./AbstractHandler');
|
2
|
+
|
3
|
+
class RelationshipAddHandler extends AbstractHandler {
|
4
|
+
handle(packet) {
|
5
|
+
const client = this.packetManager.client;
|
6
|
+
const data = packet.d;
|
7
|
+
if (data.type === 1) {
|
8
|
+
client.fetchUser(data.id).then(user => {
|
9
|
+
client.user.friends.set(user.id, user);
|
10
|
+
});
|
11
|
+
} else if (data.type === 2) {
|
12
|
+
client.fetchUser(data.id).then(user => {
|
13
|
+
client.user.blocked.set(user.id, user);
|
14
|
+
});
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
module.exports = RelationshipAddHandler;
|