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

Posted

技术标签:

【中文标题】是否有允许“标记”类别频道的内置不和谐功能?【英文标题】:Is there a built-in discord feature that allows for 'tagging' of a category channel? 【发布时间】:2019-09-14 07:22:10 【问题描述】:

所以基本上我的 discord 机器人中有一个命令,允许用户为创建的文本频道设置类别频道。在我使用 arg 拆分“”或另一条路径(我知道该怎么做,所以这不是这个问题的答案)沿着另一条路线走之前,我想知道用户是否有办法'如果名称是多个单词,则标记“类别频道”。 (即类别名称:Help Channels,标记为:Help-Channels)

如果类别频道是一个词,我目前使用的代码可以正常工作,因为它能够正确找到不和谐中的频道。

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

但我想知道是否有办法让它使用一个参数检测名称包含多个单词的类别频道,然后再尝试对公会不太友好的路线。

【问题讨论】:

如果您没有任何其他参数,您可以使用args.join(' ') @PLASMAchicken 有多个 args :c 一切都很好,我一切正常,只是很好奇是否有一个对用户更友好的不和谐功能我可以使用。 【参考方案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

【讨论】:

我很欣赏这些想法,你所说的就是我目前所拥有的,我只是好奇是否有更用户友好的方式。

以上是关于是否有允许“标记”类别频道的内置不和谐功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何让不和谐机器人在命令上创建频道

将“我已经在频道功能中”添加到机器人。 [不和谐.js]

不和谐.JS |检查频道是不是存在票务机器人

有没有办法让我的不和谐机器人在播放完歌曲后断开与语音频道的连接?

权限覆盖不更改不和谐频道权限。不和谐.py

如何在频道列表中指定语音频道的位置?不和谐.py