所以我只需要一些关于如何在discord.js上做一件事的帮助。
我对如何使用message.mentions.channels
感到困惑,而文档没有帮助。
我只需要一个console.log
频道提到的命令(如#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缺乏技巧)
答案 0 :(得分:0)
首先,你的if语句需要2或3个=
字符来检查args.join(" ").mentions.channel
是否等于true。像这样:
if (args.join(" ").mentions.channels === true) {
// ... the rest of your code
其次,有几种方法可以控制记录消息中的所有频道提及。这有两种方法可以做到:
方法1:记录包含所有频道的Collection
。这很有用,但在console
中可能会非常有用,因为Collection
在其中包含许多属性和函数。
function logMentionChannels(message) {
let channels = message.mentions.channels;
console.log(channels);
}
方法2:使用...channels.map()
仅将所需的频道属性拉出到对象中。
function logMentionChannels(message) {
let myChannels = channels.map(channel => new Object({
'id': channel.id,
'name': channel.name
}));
console.log(myChannels);
}
如果您需要其他方式循环播放频道,请参阅Collection
答案 1 :(得分:0)
这可能对你有帮助! 试试这个:
client.on('message', async message => {
let channel = message.mentions.channels.first();
console.log(`#${channel.name}`);
});