gpt4 book ai didi

node.js - 指定从 Discord 机器人发送聊天的 channel (say-channel 命令)

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:45 27 4
gpt4 key购买 nike

该功能可在 GLaDOS 中找到。机器人,Connor RK800机器人,以及 TypicalBot

命令通常如下所示:

!说#general heck

文本将通过机器人出现在该 channel 中。

如果可能的话,我想将其添加到我自己的机器人中!

我有一个 say-delete 命令的简单代码。我需要添加什么,又需要删除什么?

      if (command === "say") {
const sayMessage = args.join(" ");

message.delete().catch(O_o => {
// Catch error
});
message.channel.send(sayMessage);
}

谢谢!我真的很感激。

最佳答案

首先,您需要将本例中定义参数的代码更改为 const channel = args.shift(); ,这将返回 args[] 数组中的第一项。

然后您可以使用message.guild.channels[channel].send(sayMessage);来识别用户想要将消息发送到的 channel 。 (我认为)。

总而言之,您的代码将是:

if(command === "say") {

const channel = args.shift();
const sayMessage = args.join(" ");

message.delete().catch(O_o=>{});

message.guild.channels[channel].send(sayMessage);

}

由于我现在无法检查这一点,所以我不确定这是否有效,但值得一试!如果您愿意,我可以在可以的情况下为您测试。

编辑:我测试并修复了代码,希望我写的注释足够解释。

const channel = args.shift().slice(2,-1); // this is due to how channel mentions work in discord (they are sent to clients as <#462650628376625169>, this cuts off the first <# and the finishing >)
const sayMessage = args.join(` `);

message.delete(); // you may want to add a catch() here, i didn't because my bot requires permissions to be added to a server
client.channels.get(channel).send(sayMessage); // client here may need to be replaced with bot, or app, or whatever you're using - client.channels returns a collection, which we use get() to find an item in

需要明确的是,此代码必须位于您的 if (command === "say") 内 block 。

关于node.js - 指定从 Discord 机器人发送聊天的 channel (say-channel 命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52088120/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com