Привет, я уже получил свою ролевую реакцию, но хотел бы сделать так, чтобы после нажатия эмодзи код спрашивал, есть ли у кого-то уже группа или нет, и, соответственно, добавляет или удаляет группу, но я также хотел бы сделать это так, что реакция с эмодзи удаляется автоматически, так что только бот реагирует на сообщение, что отображается эмодзи.
Я добавлю код, который я написал до сих пор, во вложении, и, возможно, есть какие-то люди кто может мне помочь.
MessageReactionAddEvent:
const BaseEvent = require('../utils/structures/BaseEvent');
require('dotenv').config();
module.exports = class MessageReactionAddEvent extends BaseEvent {
constructor() {
super('messageReactionAdd');
}
async run(client, reaction, user) {
const message = reaction.message;
const member = message.guild.members.cache.get(user.id);
if(user.bot) return;
const Valorant = message.guild.roles.cache.get(process.env.DISCORD_ROLE_VALORANT);
const League = message.guild.roles.cache.get(process.env.DISCORD_ROLE_LEAGUE);
if(
["?", "?"].includes(reaction.emoji.name)
) {
switch(reaction.emoji.name) {
case"?":
if (message.member.roles.cache.has(process.env.DISCORD_ROLE_VALORANT)) {
console.log('Has Valorant')
} else {
member.roles.add(Valorant)
member.createDM().then( channel => {
channel.send("Added Valorant")
})
}
break;
case"?":
if (message.member.roles.cache.has(process.env.DISCORD_ROLE_LEAGUE)) {
console.log('Has League of Legends')
} else {
member.roles.add(League)
member.createDM().then( channel => {
channel.send("Added League of Legends")
})
}
}
}
}
}
MessageReactionRemoveEvent:
const BaseEvent = require('../utils/structures/BaseEvent');
require('dotenv').config();
module.exports = class MessageReactionRemoveEvent extends BaseEvent {
constructor() {
super('messageReactionRemove');
}
async run(client, reaction, user) {
const message = reaction.message;
const member = message.guild.members.cache.get(user.id);
if(user.bot) return;
const Valorant = message.guild.roles.cache.get(process.env.DISCORD_ROLE_VALORANT);
const League = message.guild.roles.cache.get(process.env.DISCORD_ROLE_LEAGUE);
if(
["?", "?"].includes(reaction.emoji.name)
) {
switch(reaction.emoji.name) {
case"?":
if (message.member.roles.cache.has(process.env.DISCORD_ROLE_VALORANT)) {
member.roles.remove(Valorant)
member.createDM().then( channel => {
channel.send("Added Valorant")
})
} else {
console.log('Hasn´t Valorant')
}
break;
case"?":
if (message.member.roles.cache.has(process.env.DISCORD_ROLE_LEAGUE)) {
member.roles.remove(League)
member.createDM().then( channel => {
channel.send("Added League of Legends")
})
} else {
console.log('Hasn´t League of Legends')
}
}
}
}
}
RolesCommand:
const BaseCommand = require('../../utils/structures/BaseCommand');
const Discord = require("discord.js")
module.exports = class RolesCommand extends BaseCommand {
constructor() {
super('roles', 'Team', []);
}
run(client, message, args) {
try {
message.delete()
const embed = new Discord.MessageEmbed()
.setTitle("Test1")
.setDescription("Test2")
.setColor("#FCCF00")
.setFooter("Test3")
message.channel.send(embed).then(async msg => {
await msg.react("?")
await msg.react("?")
})
} catch(e) {
console.log(e)
}
}
}
Спасибо за всю помощь, которую я получил до сих пор, сообщество уже помогло мне очень хорошо - спасибо за это.