{Решено} discord.js метод реакции выдает неверный смайлик

#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

Надеюсь, это помогло 🙂