#node.js #discord #discord.js
Вопрос:
Мне нужна помощь с моим текущим методом, который не вызывает правильной реакции. Но я хочу, чтобы у него был правильный смайлик. Кто-нибудь может мне помочь?
bot.on('messageReactionAdd', async (reaction, user) => {
const message = reaction.message
if (reaction.partial) {
try {
await reaction.fetch();
} catch (error) {
console.error('Something went wrong when fetching the message: ', error);
return;
}
if(user.bot) return;
if(reaction.emoji == "🤖"){
reaction.message.channel.send("Right emoji")
reaction.message.reactions.cache.get("🤖").remove(user);
reaction.message.react("🤖")
let category = message.guild.channels.cache.find(cat=> cat.name === "my category")
if(category == null){
message.guild.channels.create('my category', { type: 'category' })
.catch(console.error);
category = message.guild.channels.cache.find(cat=> cat.name === "my category")
}
setTimeout(createShopTicketChannel, 2000, message, category, user, "🤖")
}else if(reaction.emoji == "🗺"){
reaction.message.channel.send("Wrong emoji")
reaction.message.reactions.cache.get("🗺").remove(user);
reaction.message.react("🗺")
let category = message.guild.channels.cache.find(cat=> cat.name === "my category")
if(category == null){
message.guild.channels.create('my category', { type: 'category' })
.catch(console.error);
category = message.guild.channels.cache.find(cat=> cat.name === "my category")
}
setTimeout(createShopTicketChannel, 2000, message, category, user, "🗺")
}else{
message.channel.send("Wrong emoooji")
}
}
вывод: Неправильные эмоции, даже когда я реагирую правильно.
Ответ №1:
Чтобы устранить эту проблему, вы должны использовать reaction.emoji.name
вместо reaction.emoji
. Также я рекомендую использовать switch
вместо нескольких операторов if-else, если вы собираетесь добавить еще несколько случаев.
Документация по переключателю — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
Надеюсь, это помогло 🙂