Javascript DISCORD.JS如何通过名称获取特定的频道ID?

Javascript DISCORD.JS如何通过名称获取特定的频道ID?,javascript,node.js,bots,discord,discord.js,Javascript,Node.js,Bots,Discord,Discord.js,这是一个相当新的问题,但我的总体目标是拥有一个专用的日志通道,机器人也可以发送消息。所以应该是这样的 log=logstuff; 通道=[通过名称获取通道ID的方式] client.channels.get(channel.send(log) 所有这些都在使用Commando的异步功能bc im中。解决这一问题意味着您只需在消息中搜索您的频道,然后发送日志 让targetChannelName=“我的样本频道名称”; 让log=“测试有效负载”; 试一试{ 等待message.guild.cha

这是一个相当新的问题,但我的总体目标是拥有一个专用的日志通道,机器人也可以发送消息。所以应该是这样的

log=logstuff;
通道=[通过名称获取通道ID的方式]
client.channels.get(channel.send(log)


所有这些都在使用Commando的异步功能bc im中。

解决这一问题意味着您只需在
消息中搜索您的
频道,然后发送日志

让targetChannelName=“我的样本频道名称”;
让log=“测试有效负载”;
试一试{
等待message.guild.channels.find(channel=>channel.name==targetChannelName&&channel.type==text”).send(日志)
}catch{console.log}//记录所有错误

当您将消息传递到此代码段时,它会在
message.guild
的频道集合中搜索
name
值为
targetCannelName
且为文本频道的频道。当它找到目标频道时,它会发送
日志
内容。

另一个答案会起作用,但您可以通过执行以下操作将其缩短很多:

let log = "Your Stuff";
message.guild.channels.find('name', 'channel-name').send(log)

Collection.find()
的这种用法已被弃用,并将在控制台中发出警告。坚持使用谓词函数。微小的建议:首先确保通道存在,确保通道是文本通道,从
TextChannel.send()
捕获任何错误,并使用camelCase(JS中变量的标准大写)。尽管如此,这个答案在没有它们的情况下(99%的情况下)仍然有效。@slothiful我添加了你的建议。我刚开始写JS,非常感谢你的帮助!