From 85097a37236899488eb139175c7cf709c2dea373 Mon Sep 17 00:00:00 2001 From: kyraNET Date: Wed, 22 Aug 2018 11:39:42 +0200 Subject: [PATCH] backport: WEBHOOKS_UPDATE event --- .../packets/WebSocketPacketManager.js | 1 + .../packets/handlers/WebhooksUpdate.js | 19 +++++++++++++++++++ src/util/Constants.js | 3 +++ 3 files changed, 23 insertions(+) create mode 100644 src/client/websocket/packets/handlers/WebhooksUpdate.js diff --git a/src/client/websocket/packets/WebSocketPacketManager.js b/src/client/websocket/packets/WebSocketPacketManager.js index efc42df4a633..a73ffca8f6ec 100644 --- a/src/client/websocket/packets/WebSocketPacketManager.js +++ b/src/client/websocket/packets/WebSocketPacketManager.js @@ -53,6 +53,7 @@ class WebSocketPacketManager { this.register(Constants.WSEvents.MESSAGE_REACTION_ADD, require('./handlers/MessageReactionAdd')); this.register(Constants.WSEvents.MESSAGE_REACTION_REMOVE, require('./handlers/MessageReactionRemove')); this.register(Constants.WSEvents.MESSAGE_REACTION_REMOVE_ALL, require('./handlers/MessageReactionRemoveAll')); + this.register(Constants.WSEvents.WEBHOOKS_UPDATE, require('./handlers/WebhooksUpdate')); } get client() { diff --git a/src/client/websocket/packets/handlers/WebhooksUpdate.js b/src/client/websocket/packets/handlers/WebhooksUpdate.js new file mode 100644 index 000000000000..7ed2721e35e3 --- /dev/null +++ b/src/client/websocket/packets/handlers/WebhooksUpdate.js @@ -0,0 +1,19 @@ +const AbstractHandler = require('./AbstractHandler'); +const { Events } = require('../../../../util/Constants'); + +class WebhooksUpdate extends AbstractHandler { + handle(packet) { + const client = this.packetManager.client; + const data = packet.d; + const channel = client.channels.get(data.channel_id); + if (channel) client.emit(Events.WEBHOOKS_UPDATE, channel); + } +} + +/** + * Emitted whenever a guild text channel has its webhooks changed. + * @event Client#webhookUpdate + * @param {TextChannel} channel The channel that had a webhook update + */ + +module.exports = WebhooksUpdate; diff --git a/src/util/Constants.js b/src/util/Constants.js index 58760ec3c379..89e706bfb6ba 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -346,6 +346,7 @@ exports.Events = { VOICE_STATE_UPDATE: 'voiceStateUpdate', TYPING_START: 'typingStart', TYPING_STOP: 'typingStop', + WEBHOOKS_UPDATE: 'webhookUpdate', DISCONNECT: 'disconnect', RECONNECTING: 'reconnecting', ERROR: 'error', @@ -414,6 +415,7 @@ exports.ActivityFlags = { * * VOICE_SERVER_UPDATE * * RELATIONSHIP_ADD * * RELATIONSHIP_REMOVE + * * WEBHOOKS_UPDATE * @typedef {string} WSEventType */ exports.WSEvents = { @@ -454,6 +456,7 @@ exports.WSEvents = { VOICE_SERVER_UPDATE: 'VOICE_SERVER_UPDATE', RELATIONSHIP_ADD: 'RELATIONSHIP_ADD', RELATIONSHIP_REMOVE: 'RELATIONSHIP_REMOVE', + WEBHOOKS_UPDATE: 'WEBHOOKS_UPDATE', }; /**