不和谐,根据选择的反应将消息发送到不同的类别和频道

时间:2021-01-19 17:19:41

标签: discord.js

我一直在我的 Discord 服务器中研究一种方法,以尝试自动化想要尝试使用机器人的团队的用户流。目前我已经采用了 YAGPDB 并在社区级别(类别)#general_tryouts 频道中创建了一个角色菜单,其中包含反应以指定他们想要追求的游戏。当他们选择一个反应时,他们会被分配一个临时角色(24 小时),这将授予他们访问他们选择的游戏特定类别 #tryouts 频道的权限。我已经成功地使用 YAG 的 gui 界面分配了所有角色。但是,我还希望将一条消息发送到游戏特定的#tryouts 频道,并带有嵌入(类似于欢迎消息),说明他们想要试训,以通知“团队”他们“在队列中” ”。所以这个过程看起来像这样:

用户 A 进入(某些社区)#general-tryouts -> 阅读菜单询问他们想为哪个团队试训并选择选项 1 (':one:') -> 用户 A 被赋予了 TempGame1 的角色并且现在可以看到 (Some Game) #tryouts 并且同时代表他们向 (Some Game) #tryouts 发送消息。

如果他们选择选项 2,他们将收到一个 TempGame2 角色,并且应该向(另一场游戏)#tryouts 发送一条消息。

如果他们选择选项 3,他们将收到一个 TempGame3 角色,并且应该向 (ThisOther Game) #tryouts 发送一条消息。

YAGPDB 可以选择使用它的自定义命令来触发由具有特定角色的人在特定频道中给出的反应触发的命令。问题是获得他们选择的反应的结果,以及决定消息发送位置的结果。我什至不关心它是否只是一条通用消息。我只希望用户 A 能够在“社区”级别做出反应,并根据他们的选择将消息传递给(某些游戏)#tryout、(另一个游戏)#tryouts 或(ThisOther Game)#tryouts。

我提前道歉。我只精通编码一个简单的我说“ping”你输出“pong”类型的交易,并在短时间内进入了我的头脑。我查看了开发人员资源,试图将某些东西拼凑在一起但无济于事,并从此处提取了类似的代码片段并尝试对其进行修改以满足我的需要,但也无济于事。任何帮助将不胜感激。

代码示例

if (reaction.message.id === '730000158745559122') {
    let channel = reaction.message.guild.channels.cache.get(targetChannelId);
    console.log(reaction.emoji)
    if (channel) {
        let embed = new Discord.MessageEmbed();
        embed.setAuthor(
            user.tag,
            user.displayAvatarURL({
                dynamic: true,
                format: 'png',
            }),
        );
        embed.setDescription(`${user} has react a: ${reaction.emoji}`);
        channel.send(embed);
    }
}

Visual Representation

在代码 if (reaction.message.id === '730000158745559122') 中,73000 部分将整个消息表示为机器人正在“侦听”什么的焦点。对它的任何反应,无论是 1、2 还是 3,都会触发这个奇异的过程。因此,根据您所说的,如果我有不止一条消息是“收集' 因为缺乏更好的表述方式。我相信我需要做的是

`if (reaction(':one:').message.id === 123 {send message ('nifty embed') to channel.id 12345}

if (reaction(':two:').message.id === 123 {send message ('nifty embed') to channel.id 67890}

if (reaction(':three:').message.id === 123 {send message ('nifty embed') to channel.id 16273}`

0 个答案:

没有答案