【问题标题】:Discord.js - Change Role of a given Discord IDDiscord.js - 更改给定 Discord ID 的角色
【发布时间】:2020-11-23 04:29:22
【问题描述】:

我正在尝试根据某人的不和谐 ID 更改他的角色 我四处寻找解决方案,但它们都依赖于用户向机器人发送消息(消息事件)来检索成员对象

问题是,我想以不同的方式做,而我拥有的唯一信息就是不和谐 ID

我试过的代码:

let User = await client.users.fetch(discord_id),
dm_channel = await User.createDM();
dm_channel.send(msg);

我以为我可以通过 dm 获得“消息”,但我想不会..

有什么想法吗?

【问题讨论】:

  • 我无法理解您的问题。我想您是在问如何在不听Clientmessage 事件的情况下更改某人的角色?
  • 是的,没错
  • 您想在机器人启动或其他事件触发时执行此操作吗?例如,当有人加入您的公会时。
  • 我想从另一个脚本调用函数

标签: node.js discord.js


【解决方案1】:

导出您的Client 对象;然后Client.guilds.cache.get("guild id").members.cache.get("user ID").roles.cache.map(x => ${x.name}).join("\n")

如果您在同一个 index.js 文件中使用它,则无需导出它

您需要一个公会 ID,因为角色只存在于公会中,而不存在于 DM 中。

【讨论】:

  • 太好了。我检索了成员对象。但是,当我使用 member.addRole(role) 时,“member”和“role”是我从您的代码中检索到的,它说 addRole 不是函数?它可以重命名为其他东西吗?因为我在原始文档中找不到
  • nevrmind,我用 member.roles.add 代替。谢谢你的帮助!
  • member.addRole() 是 v11 上的一个函数;在 v12 上,您需要使用 member.roles.add(),因为您已经这样做了。干得好!
猜你喜欢
  • 2021-07-01
  • 2021-11-16
  • 2019-02-26
  • 2021-04-16
  • 1970-01-01
  • 2021-11-02
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多