我已经使用discord.js 11.4.4已有一段时间了,由于硬盘故障,我不得不重新下载discord.js并决定是时候也要获得最新版本了,但是却遇到了一些问题方式。
我正在寻找所需channel
的{{1}} ID,我希望按channel
的名称搜索频道。
我过去使用的代码:
channel
然后,我会将ID存储到一个变量中,以便以后使用。
答案 0 :(得分:1)
如果您使用的是v11,则其
message.guild.channels.find(channel => channel.name === "channel-name").id;
如果您使用的是v12,则其
message.guild.channels.cache.find(channel => channel.name === "channel-name").id;
Collection#find返回一个频道对象,您只需要从中获取id
答案 1 :(得分:0)
大多数集合已转换为版本12中的新Manager系统,该系统除其他外还包含一个称为“缓存”的集合。除了需要重定向以使用此缓存属性外,检索时的功能基本相同。
let ch = message.guild.channels.cache.find(channel => channel.name === "channel-name");
console.log(`Channel ID: ${ch.id}`));
Manager系统的主要优点是它允许在其他领域中使用更好的结构化方法系统。例如v11
guild.createChannel();
变成guild.channels.create();
,这在面向对象的方法中变得更加有意义。
此特定管理员在此处记录:GuildChannelManager
也有完整的upgrade guide