所以我只需要一些关于如何在 Discord.js 上做某事的帮助。
我对如何使用 message.mentions.channels
感到非常困惑,并且文档没有帮助。
我只需要一个 console.log
channel 提到的命令(如 #annoucements
),不知道如何执行。我现在的代码是
if (args.join(" ").mentions.channels = true) {
console.log(args.join(" ").mentions.channels)
这是使用的命令-!setWelcome #announcements
。
args
去掉前缀/命令并留下 #announcements
但它返回Cannot set property 'channels' of undefined.
如何简单?我很困惑。
如何才能使用 -!setWelcome #announcements
记录 #announcements
?
(我还在学习中,请原谅这里缺乏 JavaScript 技能)
最佳答案
首先,您的 if 语句需要 2 或 3 个 =
字符来检查 args.join("").mentions.channel
是否等于 true。像这样的事情:
if (args.join(" ").mentions.channels === true) {
// ... the rest of your code
其次,您可以通过多种方式控制台记录消息中提及的所有 channel 。您可以通过以下两种方法来实现:
方法 1:记录保存所有 channel 的Collection
。这很有用,但在控制台
中可能会让人不知所措,因为Collection
内部包含大量属性和函数。
function logMentionChannels(message) {
let channels = message.mentions.channels;
console.log(channels);
}
方法 2:使用 ...channels.map()
仅将所需的 channel 属性提取到对象中。
function logMentionChannels(message) {
let myChannels = channels.map(channel => new Object({
'id': channel.id,
'name': channel.name
}));
console.log(myChannels);
}
如果您需要其他方式循环提及 channel ,请参阅 Collection
上的文档。
关于javascript - 使用 message.mentions.channels 提及 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48604671/