【问题标题】:Discord.JS: Welcome messageDiscord.JS:欢迎信息
【发布时间】:2021-09-23 07:50:31
【问题描述】:

此时我正试图弄清楚为什么我的“欢迎信息”在我自己的 Discord 服务器上不起作用。我一直在查看几个 Stackoverflow 主题和 YouTube 教程,我已经阅读了 Discord.js 文档,但我无法找到合适的解决方案。因此,我试图通过这个主题在这个网络上得到我的答案。

我目前的代码:

client.on('guildCreate', (guild) => {
    let channelToSend;
    guild.channels.cache.forEach((channel) => {
        if(
            channel.type === "text" && 
            !channelToSend && 
            channel.permissionsFor(guild.me).has("SEND_MESSAGES")
        ) channelToSend = channel;
    });
    
    if(!channelToSend) return;

    let channelEmbed = new Discord.MessageEmbed()
    .setColor("RED")
    .setAuthor(`TEXT TEXT ${guild.name} TEXT!`)
    .setDescription("TEXT TEXT")
    .addField("Roles", "TEXT TEXT")

    channelToSend.send(channelEmbed).catch(e =>{
        if (e) {
            return;
        }});
})

我完全不知道为什么这不起作用。我也承认我一个月前从Python 转换到Javascript,所以也许我在某个地方出错了?

我希望有人能够帮助我,因为我现在一无所知。

提前谢谢你。

【问题讨论】:

  • 澄清一下,您是否遇到了实际错误?
  • 公会可能未缓存。请改用guild.channels.fetch
  • 您是否启用了intents
  • 等等,你是说你的问题在于欢迎信息,但你到底是什么意思?就像是 Bot 加入服务器的消息还是会员加入服务器的消息?
  • 大家好,谢谢大家的帮助。非常感谢。 @Lioness100:关于错误,我的终端或不和谐频道中没有任何错误。根本没有消息(也不是预期的嵌入)。

标签: javascript node.js discord.js bots


【解决方案1】:

client.on("guildMemberAdd", (member) =>
  client.channels.cache.get("789830758331318273").send({
  //put your channel id in replace of "789830758331318273"
    embed: {
      title: "Joined",
      description: `\n? <@${member.id}> joined the server. There are now \`${member.guild.memberCount}\` in the server \nWelcome <@${member.id}> :wave:`,
      color: config.color,
    },
  })
);

【讨论】:

  • 非常感谢您的帮助。您的代码确实有效。我仍然想知道我自己的代码做错了什么?为什么这不起作用,可能是因为您的代码中有 client.channels.cache.get("1234..") ?再次感谢您的帮助。非常感谢。
  • @OrangeTiger 如果此代码正在生成,那么您正在监听错误,因为 guildCreate 事件是在机器人加入服务器时发出的,而 guildMemberAdd 事件是在新成员加入服务器时发出的。跨度>
猜你喜欢
  • 2020-07-11
  • 2021-12-24
  • 2021-10-12
  • 2021-01-25
  • 2021-04-11
  • 2021-10-09
  • 2018-04-03
  • 2021-12-06
  • 1970-01-01
相关资源
最近更新 更多