Get the Best Support Ticket System with Ticket Bot Discord
Ticket bot для Discord это бот, который помогает создавать отдельные каналы, которые позволяют пользователям отправлять вопросы и получать на них ответы. Это очень полезно для команд и сообществ с большим количеством участников, которые нуждаются в организации общения, чтобы вопросы не терялись и были решены тем, кто наиболее компетентен в данном вопросе.
Примеры кода для создания ticket bot:
1. Создание нового сервера или выбор существующего сервера
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
client.on('ready', () => {
console.log('Ticket Bot is ready to use!');
});
client.on('message', message => {
if (message.content === '!create_ticket') {
const category = message.guild.channels.cache.find(c => c.name === 'Tickets' && c.type === 'category');
if (!category) return message.channel.send('There is no "Tickets" category on this server.');
message.guild.channels.create(`ticket-${message.author.username}`, {
type: 'text',
parent: category.id,
topic: `Ticket of ${message.author.tag}`,
permissionOverwrites: [
{
id: message.author.id,
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'ATTACH_FILES', 'READ_MESSAGE_HISTORY'],
},
{
id: message.guild.roles.everyone,
deny: ['VIEW_CHANNEL'],
},
],
})
.then(channel => {
channel.send(`Hello <@${message.author.id}>, your ticket has been created.`);
})
.catch(err => {
console.error(err);
message.channel.send('There was an error creating your ticket.');
});
}
});
client.login(config.token);
2. Ответ бота на команду пользователя
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
client.on('ready', () => {
console.log('Ticket Bot is ready to use!');
});
client.on('message', message => {
const prefix = '!';
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'help') {
message.channel.send('Please create a ticket by typing !create_ticket');
}
});
client.login(config.token);
3. Закрытие ticket канала
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
client.on('ready', () => {
console.log('Ticket Bot is ready to use!');
});
client.on('message', message => {
if (message.content === '!close_ticket') {
if (!message.channel.name.startsWith('ticket-')) return message.channel.send('This command can only be used in a ticket channel.');
message.channel.send('Are you sure you want to close this ticket? Type `!confirm` to confirm or `!cancel` to cancel.')
.then(() => {
const filter = m => message.author.id === m.author.id;
message.channel.awaitMessages(filter, { max: 1, time: 60000, errors: ['time'] })
.then(collected => {
const response = collected.first().content.toLowerCase();
if (response === '!confirm') {
message.channel.delete();
} else {
message.channel.send('Ticket closure canceled.');
}
})
.catch(() => {
message.channel.send('No confirmation message was received, ticket closure canceled.');
});
});
}
});
client.login(config.token);
Это всего лишь примеры кода, которые могут использоваться для создания ticket bot. Разработка бота может варьироваться в зависимости от потребностей конкретного сервера. Также необходимо учитывать, что некоторые функции могут нарушать правила Discord API, поэтому необходимо соблюдать правила и ограничения при разработке бота.