带有嵌入的欢迎消息未显示

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 太近。 我对此进行了测试,效果非常好! 笔记: 这仅在频道带有“欢迎”字样时才有效

【讨论】:

以上是关于带有嵌入的欢迎消息未显示的主要内容,如果未能解决你的问题,请参考以下文章

将欢迎消息嵌入到 discord.js

欢迎消息未通过 Discord.js 发送

“member.guild.username”在消息中显示为“未定义”

Discord.py 嵌入式消息未从 else 语句发送

Android Studio Logcat 未通过 Wi-Fi 显示带有 ADB 的日志消息

带有社交元数据的 Firebase 动态链接未在 iMessage 上显示图像(iOS 消息)