在新的 discordjs 中从 DM 向用户添加角色

Posted

技术标签:

【中文标题】在新的 discordjs 中从 DM 向用户添加角色【英文标题】:Add roles to user from DMs in new discordjs 【发布时间】:2022-01-18 21:18:38 【问题描述】:

我想知道如何在 DM 中为特定用户添加角色。 随着新的 Discord.js 更新,它很棘手,并且找不到解决方法。 谢谢。

我的尝试:

var guild = client.guilds.cache.get("[GUILDID]")
var buyerRole = guild.roles.cache.get("[ROLE ID]")
console.log(message.author.id) // Works
var guildMember = guild.members.fetch(message.author.id)
console.log(guildMember.displayName) // Returns 'undefined'
guildMember.setNickname(guildMember.username+" | Buyer") // Error
console.log(buyerRole.color) // Works

输出:guildMember.setNickname is not a function

【问题讨论】:

你能展示你的尝试吗,你卡在哪一部分? 好的,我编辑它。 请将您的代码显示为代码块而不是图像。代码块可以复制,图片不能复制 【参考方案1】:

那是因为您获取成员但从不等待它。 .fetch 返回一个承诺,所以获取guildMember 的正确方法是这样的:

const guildMember = await guild.members.fetch(message.author.id)

【讨论】:

谢谢,但是当我尝试时,我得到“SyntaxError: await is only valid in async functions and the top level body of modules” 确保回调如下所示:async (message) => ... 我还是明白了。异步与client.on('messageCreate',async (message)=> 是吗? 哦,还有,所有这些都包含在一个 try 方法中。 哦,原来我没有使 fs.readfile 异步。谢谢!

以上是关于在新的 discordjs 中从 DM 向用户添加角色的主要内容,如果未能解决你的问题,请参考以下文章

Discord JS - 向机器人所在的每台服务器中的每个用户发送 dm

如何在 DiscordJS v13 上向用户添加角色?

如何在新的 itunesconnet 中从 Pre-Release 中删除构建?

在新的 Rails 项目中从 SQLite 更改为 PostgreSQL

Discord js直接消息等待不起作用

有啥方法可以更改 DM 名称?不和谐 js 12