是否有内置的不和谐功能允许对类别频道进行“标记”?

时间:2019-04-24 22:36:36

标签: javascript node.js visual-studio-code discord.js

因此,基本上,我的discord机器人中有一个命令,允许用户为创建的文本通道设置类别通道。在我走下一条使用arg拆分“”的路径或其他路径(我知道该怎么做,因此不会回答这个问题)之前,我想知道是否有一种方法可以让用户“如果名称是多个单词,请标记“类别频道”。 (即类别名称:帮助频道,标记为:帮助频道)

如果类别通道是一个单词,那么我当前正在使用的代码可以正常工作,因为它可以在不和谐中正确找到通道。

let Found = message.guild.channels.find(channel => channel.name === args[1])

但是我想知道是否有一种方法可以使用一种参数来检测具有多个单词的名称的类别通道,然后再尝试使用对行会不太友好的路由。< / p>

1 个答案:

答案 0 :(得分:1)

截至目前,Discord中尚未出现适当的类别提及。 <#idOfCategory>可以翻译,但这不是功能性渠道提及。

话虽如此,您有几种选择。

  • 询问类别ID而不是名称。
  • 如果您的命令在类别名称后不需要任何参数,请拼接参数数组并加入结果。
  • 仅要求用户具有类别的第一个单词,然后检查哪个类别名称以给定的字符串开头。
  • 让您的漫游器列出带有数字的类别,然后选择所需的类别,然后找到具有给定位置的类别。
  • 使用某种函数读取下一个参数,如果将它们与先前的参数组合在一起是类别名称的开头,则将它们添加到字符串中,如下所示。
let name = '';
let categories = message.guild.channels.filter(c => c.type === 'category');

for (i = 1; i < args.length; i++) {
  let matches = categories.filter(c => c.name.startsWith(name + args[i]));
  if (matches.length > 0) name += `${args[i]} `;
  else break;
}

// 'name' is now the name of the category