Skip to content

Commit

Permalink
feat: add Client#webhooksUpdate
Browse files Browse the repository at this point in the history
  • Loading branch information
Syjalo committed Jul 22, 2023
1 parent 6307f81 commit f950138
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
21 changes: 19 additions & 2 deletions packages/discord.js/src/client/actions/WebhooksUpdate.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,36 @@
'use strict';

const process = require('node:process');
const Action = require('./Action');
const Events = require('../../util/Events');

let deprecationEmitted = false;

class WebhooksUpdate extends Action {
handle(data) {
const client = this.client;
const channel = client.channels.cache.get(data.channel_id);
if (!channel) return;

// TODO: change to Events.WebhooksUpdate in the next major version
/**
* Emitted whenever a channel has its webhooks changed.
* @event Client#webhooksUpdate
* @param {TextChannel|NewsChannel|VoiceChannel|StageChannel|ForumChannel} channel
* The channel that had a webhook update
*/
client.emit('webhooksUpdate', channel);

/**
* Emitted whenever a channel has its webhooks changed.
* @event Client#webhookUpdate
* @param {TextChannel|NewsChannel|VoiceChannel|StageChannel|ForumChannel} channel
* The channel that had a webhook update
* @deprecated Use {@link Client#event:webhooksUpdate} instead
*/
if (channel) client.emit(Events.WebhooksUpdate, channel);
if (client.emit('webhookUpdate', channel) && !deprecationEmitted) {
deprecationEmitted = true;
process.emitWarning('The webhookUpdate event is deprecated. Use webhooksUpdate instead', 'DeprecationWarning');
}
}
}

Expand Down
1 change: 1 addition & 0 deletions packages/discord.js/typings/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4862,6 +4862,7 @@ export interface ClientEvents {
userUpdate: [oldUser: User | PartialUser, newUser: User];
voiceStateUpdate: [oldState: VoiceState, newState: VoiceState];
webhookUpdate: [channel: TextChannel | NewsChannel | VoiceChannel | ForumChannel];
webhooksUpdate: [channel: TextChannel | NewsChannel | VoiceChannel | ForumChannel];
interactionCreate: [interaction: Interaction];
shardDisconnect: [closeEvent: CloseEvent, shardId: number];
shardError: [error: Error, shardId: number];
Expand Down
2 changes: 1 addition & 1 deletion packages/discord.js/typings/index.test-d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1170,7 +1170,7 @@ client.on('voiceStateUpdate', ({ client: oldClient }, { client: newClient }) =>
expectType<Client<true>>(newClient);
});

client.on('webhookUpdate', ({ client }) => expectType<Client<true>>(client));
client.on('webhooksUpdate', ({ client }) => expectType<Client<true>>(client));

client.on('guildCreate', async g => {
expectType<Client<true>>(g.client);
Expand Down

0 comments on commit f950138

Please sign in to comment.