discord-tickets
Version:
Discord.js extention library for manage easily tickets
106 lines (105 loc) • 3.48 kB
JavaScript
;
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.ThreadTicket = void 0;
const BaseTicket_1 = require("../Base/BaseTicket");
/**
* Represents a Thread Ticket
* @extends {BaseTicket}
*/
class ThreadTicket extends BaseTicket_1.BaseTicket {
/**
* @param {ThreadManager} 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 {ThreadTicket}
* @readonly
*/
get channel() {
const channel = this.guild.channels.cache.get(this.manager.options.channelId);
return channel === null || channel === void 0 ? void 0 : channel.threads.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 Thread
* @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.members.add(member.user).catch(e => {
reject(e);
});
resolve(true);
}));
}
/**
* Remove GuildMember from Thread
* @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.members.remove(member.id).catch(e => {
reject(e);
});
resolve(true);
}));
}
}
exports.ThreadTicket = ThreadTicket;