Discord.js 使用@person 和#channel 发送消息

Posted

技术标签:

【中文标题】Discord.js 使用@person 和#channel 发送消息【英文标题】:Discord.js sending message with @person and #channel 【发布时间】:2020-11-25 19:26:00 【问题描述】:

使用我的不和谐机器人,我正在尝试创建欢迎消息。 我得到了以下工作:

有人加入时发送消息 获取加入者的姓名

现在我遇到的问题是在该消息中使用 @ 或 #。我使用以下代码作为消息:

const welcomeMessage = `Welcome @$member.user.username to the server! Please look through the #:page_with_curl:rules and assign yourself a role at #:mortar_board:role-assignment`;

但我也试过:

Welcome @$member.user.username to the server! Please look through the #????rules and assign yourself a role at #????role-assignment

他们都没有我希望他们做的事情。我从这段代码中得到以下结果:

您可以看到@MEE6 和 2 频道# 不是蓝色的,并且不可点击。但是当我复制全文时,将其粘贴过去并在聊天中发送它确实显示为蓝色。

我想要的结果是我复制、粘贴和发送时的结果。也就是以下内容:

这里还有一点代码:

const welcomeChannel = client.channels.cache.get('738678076174630922');
const welcomeMessage = `Welcome @$member.user.username to the server! Please look through the #????rules and assign yourself a role at #????role-assignment`;

welcomeChannel.send(welcomeMessage)

我应该怎么做才能解决这个问题?

【问题讨论】:

关于会员只需将member.user.username改为member即可自动链接,无需添加@ @Cursed 是的,我明白了。谢谢! 【参考方案1】:
const welcomeMessage = `Welcome $member! Please look through the <#id-of-rules-channel-here> and assign yourself a role at <#id-of-role-assignment-channel-here>`

如果您已经将诸如频道和成员之类的 Discord 类存储在变量中(就像您为 member 所做的那样),您可以自动嵌入它们的 ID,或者您可以直接以 &lt;#id&gt; 的形式在文本中使用它们的 ID 用于频道或&lt;@id&gt; 为用户。

【讨论】:

以上是关于Discord.js 使用@person 和#channel 发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Discord.JS 角色创建事件

Discord.js 机器人通过随机消息欢迎新用户

Discord.js - 允许特定频道中的命令[关闭]

(Discord.js)TypeError:无法读取未定义的属性“添加”

Discord.js SyntaxError: Unexpected Identifier (For command handler)

欢迎信息的问题 |不和谐.js