python - 无法添加角色和更改昵称,但机器人在公会中是管理员
问题描述
我在尝试着:
isp = "new role1"
lis = [0, 'ingame_name', 'Real_first_name']
await message.author.add_roles(discord.utils.get(message.author.guild.roles, name=isp))
await message.author.edit(nick=f"{lis[1]} ({lis[2]})")
我得到了missing permissions
错误。
我什至在公会中没有管理员的情况下尝试了我的 alt。
解决方案
有很多原因可以给你这个错误。请检查列出的每个案例,看看您是否处于这种情况:
公会一方
- 您的机器人没有所需的权限。请检查您的公会设置,然后检查角色,然后检查以您的机器人命名的角色。请注意,拥有管理员权限会绕过所有其他权限,因此显然这不是您的问题。
- 您的机器人低于您尝试编辑的成员。验证您的机器人的最高角色是否高于您尝试编辑的成员的最高角色(在您的情况下为作者)。角色层次由公会设置中的角色顺序决定,从上到下。
不和谐的一面
- 您的机器人没有在该部分中
Server Members Intent
激活。Privileged Gateway Intents
意图用于限制对某些信息的访问以防止滥用,因此您必须激活它们以获得链接权限。进入开发者门户,然后是 bot,搜索Server Members Intent
并激活它。
程序端
- 您的机器人没有
member
激活意图。就像开发者门户中的意图一样,您必须精确地确定要使用的意图。有多种方法可以做到这一点,但这里有一个:
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='!', intents=intents)
我认为最后两个应该对你有用。
推荐阅读
- android - Android 10:在应用关闭(死机)时使用 Firebase 消息打开活动
- swift - 帖子和评论的 Firestore 数据模型
- c - 在C中按值调用函数
- python - 如何使用商品价格作为 wordcloud 中的文本频率?
- python-3.x - 在 selenium python 中每次搜索得到 50 个搜索结果
- reactjs - 我如何在 Heroku 上部署 React 项目
- c - 如何在 C 语言的 macOs 上的 Visual Studio Code 中开始调试?
- python - Amazon AWS Kinesis Video Boto GetMedia/PutMedia
- matlab - LSB 加解密
- powershell - 如何在 PowerShell 中打开新控制台,然后在其中执行某些操作?