UNPKG

oceanic.js

Version:

A NodeJS library for interfacing with Discord.

58 lines 4.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); /** @module TextableChannel */ const TextableChannel_1 = tslib_1.__importDefault(require("./TextableChannel")); const Collection_1 = tslib_1.__importDefault(require("../util/Collection")); /** Represents a guild textable channel. */ class ThreadableChannel extends TextableChannel_1.default { /** The default auto archive duration for threads created in this channel. */ defaultAutoArchiveDuration; constructor(data, client) { super(data, client); this.defaultAutoArchiveDuration = data.default_auto_archive_duration; this.update(data); } update(data) { super.update(data); if (data.default_auto_archive_duration !== undefined) { this.defaultAutoArchiveDuration = data.default_auto_archive_duration; } } /** The threads in this channel. The returned collection is disposable. */ get threads() { return new Collection_1.default(this.guild.threads.filter(thread => thread.parentID === this.id).map(thread => [thread.id, thread])); } /** * Get the public archived threads in this channel. * @param options The options for getting the public archived threads. */ async getPublicArchivedThreads(options) { return this.client.rest.channels.getPublicArchivedThreads(this.id, options); } /** * Create a thread from an existing message in this channel. * @param messageID The ID of the message to create a thread from. * @param options The options for creating the thread. */ async startThreadFromMessage(messageID, options) { return this.client.rest.channels.startThreadFromMessage(this.id, messageID, options); } /** * Create a thread without an existing message in this channel. * @param options The options for creating the thread. */ async startThreadWithoutMessage(options) { return this.client.rest.channels.startThreadWithoutMessage(this.id, options); } toJSON() { return { ...super.toJSON(), defaultAutoArchiveDuration: this.defaultAutoArchiveDuration, threads: this.threads.map(thread => thread.id), type: this.type }; } } exports.default = ThreadableChannel; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhyZWFkYWJsZUNoYW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3RydWN0dXJlcy9UaHJlYWRhYmxlQ2hhbm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4QkFBOEI7QUFDOUIsZ0ZBQWdEO0FBY2hELDRFQUE0QztBQUU1QywyQ0FBMkM7QUFDM0MsTUFBcUIsaUJBQWdJLFNBQVEseUJBQW1CO0lBQzVLLDZFQUE2RTtJQUM3RSwwQkFBMEIsQ0FBNEI7SUFHdEQsWUFBWSxJQUE2QyxFQUFFLE1BQWM7UUFDckUsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDO1FBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVrQixNQUFNLENBQUMsSUFBc0Q7UUFDNUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyw2QkFBNkIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDO1FBQ3pFLENBQUM7SUFDTCxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxvQkFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckksQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxPQUFtQztRQUM5RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBb0MsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxTQUFpQixFQUFFLE9BQXNDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFvQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHlCQUF5QixDQUFDLE9BQXlDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUdRLE1BQU07UUFDWCxPQUFPO1lBQ0gsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pCLDBCQUEwQixFQUFFLElBQUksQ0FBQywwQkFBMEI7WUFDM0QsT0FBTyxFQUFxQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDakUsSUFBSSxFQUF3QixJQUFJLENBQUMsSUFBSTtTQUN4QyxDQUFDO0lBQ04sQ0FBQztDQUNKO0FBekRELG9DQXlEQyJ9