UNPKG

discord-tickets

Version:

Discord.js extention library for manage easily tickets

111 lines (110 loc) 3.53 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TextTicket = void 0; const BaseTicket_1 = require("../Base/BaseTicket"); /** * Represents a Ticket * @extends {BaseTicket} */ class TextTicket extends BaseTicket_1.BaseTicket { /** * @param {TicketManager} manager The Ticket Manager * @param {TicketData} data The ticket data */ constructor(manager, data) { super(manager, data); /** * The Ticket manager * @readonly * @type {TicketManager} */ this.manager = manager; } /** * Ticket's Channel * @type {TextChannel} * @readonly */ get channel() { return this.guild.channels.cache.get(this.channelId); } /** * Close Ticket * @return {Promise<void>} */ close() { return __awaiter(this, void 0, void 0, function* () { yield this.manager.closeTicket(this); }); } /** * Rename Ticket * @param {string} name New ticket's name (name-0000) * @return {Promise<void>} */ rename(name) { return __awaiter(this, void 0, void 0, function* () { yield this.manager.renameTicket(this, name); }); } /** * Delete Ticket * @return {Promise<void>} */ delete() { return __awaiter(this, void 0, void 0, function* () { yield this.manager.deleteTicket(this); }); } /** * ReOpen Ticket * @return {Promise<void>} */ reopen() { return __awaiter(this, void 0, void 0, function* () { yield this.manager.reOpenTicket(this); }); } /** * Add GuildMember to Ticket * @param {GuildMember} member Discord Guild Member * @return {Promise<any>} */ addMember(member) { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { this.channel.permissionOverwrites.edit(member, { SEND_MESSAGES: true, VIEW_CHANNEL: true }).catch(e => { reject(e); }); resolve(true); })); } /** * Remove GuildMember from Ticket * @param {GuildMember} member Discord Guild Member * @return {Promise<any>} */ removeMember(member) { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { this.channel.permissionOverwrites.edit(member, { SEND_MESSAGES: false, VIEW_CHANNEL: false }).catch(e => { reject(e); }); resolve(true); })); } } exports.TextTicket = TextTicket;