跨分片与表情符号反应 discord.js

Reacting with emojis across shards discord.js

所以我最近更新了我的机器人所以它现在使用碎片但是我遇到了一个问题我无法对消息做出反应因为表情不在同一个碎片上而且我不知道如何从不同的碎片中获取它。

let msg = await message.channel.send("hey")

async function reactEmoji(emote){
  msg.react(emote)
}

client.shard.broadcastEval(`
 let emote = this.emojis.cache.get("emoji id")
 if(emote){
  (${reactEmoji}).call(this, emote)
 }
`);

所以上面的代码是我已经尝试过的,但它似乎不起作用,当我尝试对消息做出反应时,它说 msg 是未定义的,我还尝试用 emote 传递 msg 但没有'也不行。

我尝试做的另一种方式是使用表情符号 ID 对消息做出反应:

msg.react("emoji id")

这又遇到了同样的问题,因为表情符号不在同一个碎片上。

所以如果有人知道这样做的好方法请告诉我:)

你可能应该使用这个承诺(我认为它应该有效):

let emoji = await client.shard.broadcastEval(`
            (async () => {
                const emoji = this.emojis.cache.get('emoji ID')
                if (emoji) {
                    return emoji
                    true;
                } else {
                    false;
                }
            })();
        `)

let msg = await message.channel.send("hey")
msg.react(emoji)

刚刚找到教程here

它解释了如何为分片构建函数,特别是如何从另一个分片获取表情。