【问题标题】:Reacting with emojis across shards discord.js跨分片 discord.js 对表情符号做出反应
【发布时间】:2020-11-14 12:21:00
【问题描述】:

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

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")

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

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

【问题讨论】:

    标签: javascript discord discord.js sharding


    【解决方案1】:

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

    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)
    

    【讨论】:

      【解决方案2】:

      找个教程here

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

      【讨论】:

        猜你喜欢
        • 2021-08-11
        • 2021-07-15
        • 2021-05-20
        • 2021-02-06
        • 2020-07-30
        • 2021-12-17
        • 2021-04-04
        • 1970-01-01
        • 2022-01-19
        相关资源
        最近更新 更多