UNPKG

discord-tickets

Version:

Discord.js extention library for manage easily tickets

132 lines (98 loc) 3.44 kB
<div align="center"> <br /> <p> <a href="https://discord-tickets.js.org"><img src="https://cdn.sayrix.fr/1u3/logo.svg" width="546" alt="discord-tickets" /></a> </p> <br /> <p> <a href="https://discord.gg/ncheNRHFR7"><img src="https://img.shields.io/discord/848500695506223104?color=5865F2&logo=discord&logoColor=white" alt="Discord server" /></a> <a href="https://www.npmjs.com/package/discord-tickets"><img src="https://img.shields.io/npm/v/discord-tickets.svg?maxAge=3600" alt="npm version" /></a> <a href="https://www.npmjs.com/package/discord-tickets"><img src="https://img.shields.io/npm/dt/discord-tickets.svg?maxAge=3600" alt="npm downloads" /></a> </p> </div> ## About discord-tickets is a powerful [Node.js](https://nodejs.org) module that allows you to manage tickets very easily. Making your bot's code significantly tidier and easier to comprehend. - Object-oriented - Performant ## Installation **Node.js 16.6.0 or newer is required.** ```sh-session npm install discord-tickets ``` ## Example usage Init Text Ticket Manager: ```js const {TicketManager} = require('discord-tickets'); client.ticketManager = new TicketManager(client, { enabled: true,//If Module is enabled parentId: '696891020146638868',//Ticket's category staffRole: '613426529623605268',//Role who have access to tickets closeParentId: '613425648685547544',//Closed's tickets category channelTopic: true, storage: './tickets.json',//Storage ticketCache: true//Save tickets on cache (TicketManager#tickets.get("channelId")) }); ``` Init Threads Ticket Manager: ```js const {ThreadManager} = require('discord-tickets'); client.ticketManager = new ThreadManager(client, { enabled: true, channelId: "697138785317814292", staffRole: "613426529623605268", storage: `./tickets.json`, ticketCache: true }); ``` Create Ticket: ```js await client.ticketManager.createTicket(message.guild, message.member); ``` Get Ticket: ```js const ticket = client.ticketManager.tickets.get('channelId'); ``` Close Ticket: ```js await client.ticketManager.closeTicket(ticket); //or await ticket.close(); ``` ReOpen ticket: ```js await client.ticketManager.reOpenTicket(ticket); //or ticket.reopen(); ``` Delete Ticket: ```js await client.ticketManager.deleteTicket(ticket); //or ticket.delete(); ``` Using with Database: ```js const {TicketManager} = require('discord-tickets'); const db = require('quick.db'); class TicketManagerWithDB extends TicketManager { async getOptions(id){ return db.get(`options_${id}`) } async getAllTickets(){ return db.get('tickets') } async saveTicketRaws(){ db.set('tickets', JSON.stringify(this.ticketRaws)) return true } } client.ticketManager = new TicketManagerWithDB(client); ``` ## Links - [Website](https://discord-tickets.js.org/) ([source](https://github.com/Derpinou/discord-tickets-docs)) - [Documentation](https://discord-tickets.js.org/#/docs) - [Support & Help Discord server](https://discord.gg/ncheNRHFR7) - [discord.js Discord server](https://discord.gg/djs) - [Discord API Discord server](https://discord.gg/discord-api) - [GitHub](https://github.com/Derpinou/discord-tickets) - [npm](https://www.npmjs.com/package/discord-tickets)