You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在discord.py中使用权限位整数设置频道权限覆盖

正确实现方案

你需要将权限整数转换为Permissions对象后,再通过PermissionOverwrite.from_pair()构造权限覆盖对象传入set_permissions的overwrite参数,示例代码如下:

from discord import Permissions, PermissionOverwrite

ow_allow = 1024  # 允许的权限位整数
ow_deny = 0      # 拒绝的权限位整数,无相关需求可保持为0

# 构造权限覆盖对象
overwrite = PermissionOverwrite.from_pair(
    allow=Permissions(ow_allow),
    deny=Permissions(ow_deny)
)

# 调用方法设置权限
await voice_channel.set_permissions(everyone, overwrite=overwrite)

错误原因说明

之前报错是因为set_permissions的permissions参数设计为接收send_messages=True这类键值对形式的权限参数,不支持直接传入整数或Permissions实例。

内容的提问来源于stack exchange,提问作者FileX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:54:04