正如问题所述,我有一个机器人正在使用该消息向所有受邀的公会中的特定通道发送消息。首先,该功能在我的受控实验中使用了3台服务器,该服务器由该机器人所需的所需通道构成中继我的所有消息。然后,当我的漫游器公开发布时,一些成员的服务器中没有此频道,这导致我的Bot在执行测试/中继功能时显示og:description
。
TypeError
我希望该漫游器能够将中继消息发送到我指定的通道名称,并忽略所有未在其服务器中使用该通道的用户,并继续将该消息发送到其服务器中使用该通道的其他用户。有人可以为我指出正确的方向吗?
这是我的命令功能代码。我尝试使用try and catch块,但它似乎也不起作用。
详细信息:
Associations =接收来自我的漫游器消息的必需通道。
test =命令我用来中继消息。
TypeError: Cannot read property 'send' of undefined
答案 0 :(得分:1)
像syntle一样,您应该使频道名称更具包容性,但是要回答您的问题,您只需使用&&
或if语句
if (command === "test") {
const Detail = args.join(" ");
bot.guilds.cache.forEach(guild => {
const channel = guild.channels.cache.find(t => t.name.toLowerCase().startsWith('associations'));
if (channel) { channel.send(Detail); }
});
}
当错误处理和if语句一样容易时,不需要昂贵的try块。它也确实起作用,尽管它被记录的原因是因为您指定了它使用console.log(err)