如何在 discord.js 上为 discord 服务器的新成员发送欢迎消息?

Posted

技术标签:

【中文标题】如何在 discord.js 上为 discord 服务器的新成员发送欢迎消息?【英文标题】:How to make welcome message for new members of the discord server on discord.js? 【发布时间】:2021-03-16 07:07:34 【问题描述】:

我知道这是一个非常基本的问题,但是 1. 我是 discord.js 编程的新手(我之前用 html 编程过,但这次不同) 2. 我还很年轻(我是 kido哈哈)

好的,所以我的问题是:如何在我的机器人上创建一个功能,在特殊频道上向加入的人发送欢迎消息,并通过 DM 向加入的人说“欢迎”之类的话?

我问这个是因为我在整个网络上搜索过,但没有找到我真正理解的东西。

附:如果您可以添加带有解释的 cmets,我将不胜感激。

提前致谢!

【问题讨论】:

为了更好地了解如何写出好问题并获得相关答案,请阅读我们的Welcome Tour to 和How ask a good question 文章。 好的,但是你我说我还是个孩子,我的英语很糟糕,因为我不是来自英国或美国......但如果你能帮助我,那就太棒了! 【参考方案1】:

您可以使用guildMemberAdd事件检测成员何时加入公会,ChannelManager#cache向某个频道发送消息,GuildMember#send()向某个成员发送消息。

<client>.on('guildMemberAdd', (member) => 
  // use either `.get('id')` or `.find((c) => c.name === 'name'`
  const channel = member.guild.channels.cache.get('Channel ID');
  channel.send(...); // send to a channel
  member.send(...); // dm the member
);

【讨论】:

我真的不明白第一条评论(//使用.get('id') ...)。你是什​​么意思,我应该选择什么以及如何使用它?如果我复制粘贴您的代码,我会收到一个错误: SyntaxError: Unexpected token ') 您的错误是指&lt;client&gt;,这是您的客户端实例的占位符。运行此代码时,将 &lt;client&gt; 替换为您的 discord.js 客户端。我的第一条评论是说你应该使用Collection#get()Collection#find() Collection#get() 和 Collection#find() 之间有什么主要区别吗? Collection#get() 将通过其键获取元素。在这种情况下,频道的 ID。 Collection#find() 将获得第一个通过给定函数的元素。

以上是关于如何在 discord.js 上为 discord 服务器的新成员发送欢迎消息?的主要内容,如果未能解决你的问题,请参考以下文章

(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?

我将如何使用两个不同版本的 discord.js | Discord.js 机器人

Discord.js/JavaScript:如何让用户选择角色?

如何查找机器人在特定频道中发送的消息? [discord.js]

如何使用 discord.js 创建角色

如何在循环 discord.js 中减去和除数