带有嵌入的欢迎消息未显示
Posted
技术标签:
【中文标题】带有嵌入的欢迎消息未显示【英文标题】:Welcome message with embed is not showing 【发布时间】: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
是一个属性而不是一个方法顺便说一下(不要调用它)..
【参考方案1】:
好的,我研究了 10 多个小时后才解决它!我终于明白了!
client.on('guildMemberAdd', member =>
const channel = member.guild.channels.cache.find(channel => channel.name.includes('welcome'));
if (!channel) return;
//send through channel
const welcomegreet =
color: 0xF2CC0D,
title: `**WELCOME TO THE SERVER, $member.user.tag !!**`,
description: `I hope you will enjoy it here! \n A place full of chaos and wonder!`,
thumbnail:
url: member.user.avatarURL(),
,
fields:[
name: 'Need Help?',
value: 'Please read the FAQ and Rules Channels (if there are)! \n Have Fun at the Server! CHEERS ? !',
inline: false
,
name: 'Join Me!',
value: 'Do: `h.help` for entertainment and profanities!',
inline: false
],
timestamp: new Date(),
;
//send through dm
const welcome =
color: 0xF2CC0D,
title: `**WELCOME TO THE SERVER, $member.user.tag !!**`,
description: `I hope you will enjoy it here! \n A place full of chaos and wonder!`,
thumbnail:
url: member.user.avatarURL(),
,
timestamp: new Date(),
;
member.send( embed: welcomegreet );
channel.send( embed: welcome );
感谢大家尝试帮助我,尽管它并没有离 amswer 太近。 我对此进行了测试,效果非常好! 笔记: 这仅在频道带有“欢迎”字样时才有效
【讨论】:
以上是关于带有嵌入的欢迎消息未显示的主要内容,如果未能解决你的问题,请参考以下文章
“member.guild.username”在消息中显示为“未定义”