From c36cc3b551fcec1eb96615f833971dcd842d1d7b Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Mon, 18 Apr 2016 16:54:14 +0100 Subject: [PATCH] Added GuildMembersChunk handler; untested --- .../packets/WebSocketPacketManager.js | 1 + .../packets/handlers/GuildMembersChunk.js | 33 +++++++++++++++++++ .../websocket/packets/handlers/TypingStart.js | 2 -- src/util/Constants.js | 1 + 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/client/websocket/packets/handlers/GuildMembersChunk.js diff --git a/src/client/websocket/packets/WebSocketPacketManager.js b/src/client/websocket/packets/WebSocketPacketManager.js index 48c2dd3fa..43d6b1249 100644 --- a/src/client/websocket/packets/WebSocketPacketManager.js +++ b/src/client/websocket/packets/WebSocketPacketManager.js @@ -29,6 +29,7 @@ class WebSocketPacketManager { this.register(Constants.WSEvents.GUILD_ROLE_CREATE, 'GuildRoleCreate'); this.register(Constants.WSEvents.GUILD_ROLE_DELETE, 'GuildRoleDelete'); this.register(Constants.WSEvents.GUILD_ROLE_UPDATE, 'GuildRoleUpdate'); + this.register(Constants.WSEvents.GUILD_MEMBERS_CHUNK, 'GuildMembersChunk'); this.register(Constants.WSEvents.CHANNEL_CREATE, 'ChannelCreate'); this.register(Constants.WSEvents.CHANNEL_DELETE, 'ChannelDelete'); this.register(Constants.WSEvents.CHANNEL_UPDATE, 'ChannelUpdate'); diff --git a/src/client/websocket/packets/handlers/GuildMembersChunk.js b/src/client/websocket/packets/handlers/GuildMembersChunk.js new file mode 100644 index 000000000..3cd2ba516 --- /dev/null +++ b/src/client/websocket/packets/handlers/GuildMembersChunk.js @@ -0,0 +1,33 @@ +'use strict'; + +// ##untested## + +const AbstractHandler = require('./AbstractHandler'); +const Structure = name => require(`../../../../structures/${name}`); +const Constants = require('../../../../util/Constants'); +const CloneObject = require('../../../../util/CloneObject'); + +class GuildMembersChunkHandler extends AbstractHandler { + + constructor(packetManager) { + super(packetManager); + } + + handle(packet) { + let data = packet.d; + let client = this.packetManager.client; + let guild = client.store.get('guilds', data.guild_id); + + let members = []; + if (guild) { + for (let member of guild.members) { + members.push(guild._addMember(member, true)); + } + } + + client.emit(Constants.Events.GUILD_MEMBERS_CHUNK, guild, members); + } + +}; + +module.exports = GuildMembersChunkHandler; diff --git a/src/client/websocket/packets/handlers/TypingStart.js b/src/client/websocket/packets/handlers/TypingStart.js index 5fdbf598f..c64ff705a 100644 --- a/src/client/websocket/packets/handlers/TypingStart.js +++ b/src/client/websocket/packets/handlers/TypingStart.js @@ -5,8 +5,6 @@ const Structure = name => require(`../../../../structures/${name}`); const Constants = require('../../../../util/Constants'); const CloneObject = require('../../../../util/CloneObject'); -const Role = Structure('User'); - class TypingData { constructor(since, lastTimestamp, _timeout) { this.since = since; diff --git a/src/util/Constants.js b/src/util/Constants.js index 1449147fe..74666d589 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -97,6 +97,7 @@ const Events = exports.Events = { TYPING_START: 'typingStart', TYPING_STOP: 'typingStop', WARN: 'warn', + GUILD_MEMBERS_CHUNK: 'guildMembersChunk', }; const WSEvents = exports.WSEvents = {