В настоящее время я работаю над бот-диссонансом и столкнулся с проблемой, когда мне нужно ограничить реакцию. Я пытаюсь достичь следующей цели - если пользователь выбирает реакцию, ее следует заменить самой новой реакцией. Может кто-нибудь посоветовать, как это сделать?
Вот мой снимок экрана и код того, что у меня есть на данный момент.
Мой код:
client.on('raw', event => {
console.log(event);
const eventName = event.t;
if(eventName === 'MESSAGE_REACTION_ADD') {
if(event.d.message_id === '70цw3748527414706191') {
var reactionChannel = client.channels.get(event.d.channel_id);
if(reactionChannel.messages.has(event.d.message_id))
return;
else {
reactionChannel.fetchMessage(event.d.message_id)
.then(msg => {
var msgReaction = msg.reactions.get(event.d.emoji.name + ":" + event.d.emoji.id);
var user = client.users.get(event.d.user_id);
client.emit('messageReactionAdd', msgReation, user);
})
.catch(err => console.log(err));
}
}
}
else if(eventName === 'MESSAGE_REACTION_ADD') {
if(event.d.message_id === '703748527414706191') {
var reactionChannel = client.channels.get(event.d.channel_id);
if(reactionChannel.messages.has(event.d.message_id))
return;
else {
reactionChannel.fetchMessage(event.d.message_id)
.then(msg => {
var msgReaction = msg.reactions.get(event.d.emoji.name + ":" + event.d.emoji.id);
var user = client.users.get(event.d.user_id);
client.emit('messageReactionRemove', msgReation, user);
})
.catch(err => console.log(err));
}
}
}
});
client.on('messageReactionAdd', (messageReaction, user) => {
var roleName = messageReaction.emoji.name;
console.log(roleName);
var role = messageReaction.message.guild.roles.find(role => role.name.toLowerCase() ===
roleName.toLowerCase());
if(role) {
var member = messageReaction.message.guild.members.find(member => member.id === user.id);
if(member) {
member.addRole(role.id);
console.log("Success");
}
}
});
client.on('messageReactionRemove', (messageReaction, user) => {
var roleName = messageReaction.emoji.name;
var role = messageReaction.message.guild.roles.find(role => role.name.toLowerCase() ===
roleName.toLowerCase());
if(role) {
var member = messageReaction.message.guild.members.find(member => member.id === user.id);
if(member) {
member.removeRole(role.id);
console.log("Success");
}
}
});
Спасибо за руководство!