reactionroles.js:
const { SlashCommandBuilder, EmbedBuilder, PermissionsBitField, InteractionCollector} = require('discord.js');
const reaction = require('../../Schemas/reactionrolesSchema');
const reactionrolesSchema = require('../../Schemas/reactionrolesSchema');
module.exports = {
data: new SlashCommandBuilder()
.setName('AutoRole')
.setDescription('Создайте систему авторолей.')
.addSubcommand(command => command.setName('добавить').setDescription('Добавляет систему авторолей под сообщением.').addStringOption(option => option.setName('id-сообщения').setDescription('Сообщение в котором будет система авторолей.').setRequired(true)).addStringOption(option => option.setName('эмодзи').setDescription('эмодзи на которое будет выдаваться роль.').setRequired(true)).addRoleOption(option => option.setName('роль').setDescription('роль которая будет выдаваться после того как нажмут на эмодзи.').setRequired(true)))
.addSubcommand(command => command.setName('убрать').setDescription('Уберает систему авторолей под сообщением.').addStringOption(option => option.setName('id-сообщения').setDescription('Сообщение на которое будет реагировать.').setRequired(true)).addStringOption(option => option.setName('эмодзи').setDescription('эмодзи на которое будет убераться роль.').setRequired(true))),
async execute (interaction) {
const { options, guild, channel } = interaction;
const sub = options.getSubcommand();
const emoji = options.getString('эмодзи');
let e;
const message = await channel.message.fetch(options.getString('id-сообщения')).catch(err => {
e = err;
});
if (!interaction.member.permission.has(PermissionsBitField.Flags.Administrator)) return await interaction.reply({content: `У вас нету прав чтоб использовать эту систему!`, ephemeral: true});
if (e) return await interaction.reply({ content: `Сообщение щас отправиться в ${channel}!`, ephemeral: true});
const data = await reaction.findOne({ Guild: guild.id, Message: message.id, Emoji: emoji});
switch(sub) {
case `добавить`:
if (data) {
return await interaction.reply({ content: `Кажись вы уже поставили ${emoji} на это сообщение.`, ephemeral: true});
} else {
const role = options.getRole('роль');
await reaction.create({
Guild: guild.id,
Message: message.id,
Emoji: emoji,
Role: role.id
});
const embed = new EmbedBuilder()
.setColor("Blurple")
.setDescription(`Я добавил систему автореакций на ${message.url} с эмодзи ${emoji} и ролью ${role}`)
await message.react(emoji).catch(err => {});
await interaction.reply({ embeds: [embed], ephemeral: true});
}
break;
case 'убрать':
if (!data) {
return await interaction.reply({content: `Кажись, у вас нету системы авторолей.`, ephemeral: true});
} else {
await reaction.deleteMany({
Guild: guild.id,
Message: message.id,
Emoji: emoji
});
const embed = new EmbedBuilder()
.setColor("Blurple")
.setDescription(`Я удалил систему авторолей из ${message.url} с эмодзи ${emoji}`)
await interaction.reply({ embeds: [embed], ephemeral: true});
}
}
}
}