discord-tickets
Version:
Discord.js extention library for manage easily tickets
132 lines (98 loc) • 3.44 kB
Markdown
<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>
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
**Node.js 16.6.0 or newer is required.**
```sh-session
npm install discord-tickets
```
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);
```
- [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)