Discord.js V13 欢迎消息

Posted

技术标签:

【中文标题】Discord.js V13 欢迎消息【英文标题】:Discord.js V13 Welcome Message 【发布时间】:2021-12-24 06:59:35 【问题描述】:

我对创建机器人还很陌生,所以这条欢迎消息在 discord.js v12 中可以恢复,但在 v13 中不再适用于我。当有人加入服务器时,我试图在特定频道中发送消息,但我检查了,.send 在 GuildChannel 上不存在。我查看了文档,但他们都在谈论发送消息嵌入,但我只是想向 TextChannel 发送一条普通消息。这是代码。

const client = new Client( intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] );
client.on('guildMemberAdd', guildMember => 
    guildMember.guild.channels.cache.get('474431129613762571').send(`**Welcome to the discord server, <@$guildMember.user.id>!**`);
);

如果需要,我可以提供更多信息。任何帮助将不胜感激。

【问题讨论】:

你需要GUILD_MEMBERS 在代码和不和谐开发者门户中的意图。 .send 存在于TextChannels 上,GuildChannel 只是它的扩展,.send 不存在,因为它可能是VoiceChannel! (实际上TextChannel 扩展了BaseGuildTextChannel 扩展了GuildChannel @MrMythical 您想留下您的建议作为评论吗?因为它对我有用,我想感谢你,但这不是答案。 【参考方案1】:

你需要GUILD_MEMBERSintent 在代码和不和谐开发者门户中。

const client = new Client( 
    intents: [
        Intents.FLAGS.GUILDS,
        Intents.FLAGS.GUILD_MESSAGES,
        Intents.FLAGS.GUILD_MEMBERS //also enable in discord developer portal
    ] 
)

要回答您其他问题的另一部分,.send 存在于TextChannels。 TextChannel 扩展 BaseGuildTextChannel 扩展 GuildChannel。之所以这样,是因为可以是VoiceChannel

【讨论】:

以上是关于Discord.js V13 欢迎消息的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js V13:如何编辑交互的消息对象?

无法发送空消息 - Discord.JS v13

Discord.js v13 在一定时间后删除消息

如何将消息发送到指定的频道 - Discord.js v13 TypeScript

Discord.js V13 使用斜线命令时添加角色

discord.js v13 TypeError:无法读取未定义的属性“createMessageCollector”