【发布时间】:2020-09-07 16:42:18
【问题描述】:
所以我制作了一个机器人,可以在频道中向新成员发送欢迎消息。 我的代码应该可以工作,因为它没有在我的控制台中发送任何错误,但我的机器人没有发送欢迎消息。
我尝试了很多东西:
使嵌入成为对象(不)
制作了 4 个不同的长代码(都不起作用)
在网上搜索并看了一些 tuts(控制台没有错误但没有发送)
我正在使用 discord.js@v12
代码:
client.on('guildMemberAdd', member => {
// Finds the channel name from the array
function channelNamesFilter(channel) {
let channelNames = ['name', 'welcome', 'welcoming', 'greeting', 'general', 'hello'];
if (channelNames.includes(channel.name)) {
return true;
}
return false;
}
const welcome = new Discord.MessageEmbed()
.setColor('#F2CC0D')
.setTitle('Welcome To The Server!')
.addFields({
name: member.nickname
}, {
name: '\n ',
value: 'Make sure to visit the FAQ and Rules channel (if there are)!'
})
.setImage(member.user.avatarURL)
let filteredChannels = member.guild.channels.cache.filter(channelNamesFilter);
filteredChannels.forEach(element => element.send(welcome));
});
【问题讨论】:
-
如果在声明变量后运行
console.log(filteredChannels),它会记录什么? -
上面写着
Collection(0) [Map] {} -
抱歉回答不好,我在手机上,没有正确阅读您的代码。我正在寻找新的答案。
-
@Lenin 似乎问题出在过滤器功能上,您应该尝试调试它。假设您至少有一个频道具有这些名称之一,请尝试在代码中输入
console.log(channel.name)和console.log(channelNames.includes(channel.name))以查看频道是否被正确过滤 -
size是一个属性而不是一个方法顺便说一下(不要调用它)..
标签: javascript bots discord discord.js