discord - 如何设置权限?
问题描述
我需要设置用户权限,我试过了
chanel2.overwritePermissions(message.member,{'SEND_MESSAGES': true,'READ_MESSAGES': true})
但它覆盖了所有权限(对于每个人,不仅仅是 message.member),不仅仅是为 message.member 添加特定权限(但对于 1 个成员,它可以满足我的需要)
解决方案
最好参考本指南以获取有关在频道中设置用户权限所需了解的所有信息。看起来它正在出错,因为message.member
没有获取要在 overwritePermissions 中设置的用户 ID。我会在这里解释这一切,但下次尝试在您的问题和代码中添加一些错误信息和上下文:)
你需要确保你有一个通道对象,所以你可以像这样抓取它:
const channelID = message.channel.id //alternatively you can hardcode one like so: "588868740980932620"
const channel = message.guild.channels.find(c => {return c.id === channelID})
获取频道对象后,您现在可以像这样设置频道权限:
// channel is whatever your constant variable is in the section above
// message.member.user.id is identical to message.author.id
channel.overwritePermissions(message.member.user.id, {
SEND_MESSAGES: true,
READ_MESSAGES: true,
ATTACH_FILES: true
});
您可以在此处找到权限标志。
希望这对您有所帮助。DiscordJS 指南和Discord JS 文档是寻求帮助的非常有用的领域。
推荐阅读
- regex - 使用正则表达式规则打印字符串
- http - How to send boolean value or int value in a http request body?
- android - 如何设置 android 库以支持不同的 android 版本
- c# - 来自 MSSQL 中存储过程的 C# Web API 嵌套 JSON
- python - 为什么记录器不打印任何东西?
- postgresql - 如何在我的 Postgres PLpgsql 存储过程中包含输出参数?
- python - 获取时间戳在特定滑动窗口时间间隔 pandas(时间序列)内的行
- reactjs - Apollo-Client GraphQL refetchQueries 是如何工作的?
- c# - 将 hangfire BackgroundJob.Schedule 与 httpclientfactory DI 一起使用
- integration-testing - 为什么 testcontainers 在测试类之间重新启动容器