33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const { Routes } = require('discord-api-types/v9');
|
|
const BaseGuildTextChannel = require('./BaseGuildTextChannel');
|
|
const { Error } = require('../errors');
|
|
|
|
/**
|
|
* Represents a guild news channel on Discord.
|
|
* @extends {BaseGuildTextChannel}
|
|
*/
|
|
class NewsChannel extends BaseGuildTextChannel {
|
|
/**
|
|
* Adds the target to this channel's followers.
|
|
* @param {TextChannelResolvable} channel The channel where the webhook should be created
|
|
* @param {string} [reason] Reason for creating the webhook
|
|
* @returns {Promise<NewsChannel>}
|
|
* @example
|
|
* if (channel.type === ChannelType.GuildNews) {
|
|
* channel.addFollower('222197033908436994', 'Important announcements')
|
|
* .then(() => console.log('Added follower'))
|
|
* .catch(console.error);
|
|
* }
|
|
*/
|
|
async addFollower(channel, reason) {
|
|
const channelId = this.guild.channels.resolveId(channel);
|
|
if (!channelId) throw new Error('GUILD_CHANNEL_RESOLVE');
|
|
await this.client.api.channels(this.id).followers.post({ body: { webhook_channel_id: channelId }, reason });
|
|
return this;
|
|
}
|
|
}
|
|
|
|
module.exports = NewsChannel;
|