无法添加角色和更改昵称,但bot是公会中的管理员

2024-04-19 04:55:52 发布

您现在位置: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


2条回答

有很多原因会让你犯这个错误。请检查列出的每个案例,看看您是否处于这种情况:

帮会一方
  • 您的bot没有所需的权限。请检查您的帮会设置,然后是角色,然后检查以您的机器人命名的角色。请注意,拥有管理员权限会绕过所有其他权限,因此这显然不是您的问题
  • 您的机器人低于您试图编辑的成员。验证您的bot的最高角色高于您尝试编辑的成员的最高角色(在您的情况下,是autor)。角色层次由公会设置中角色的顺序自上而下决定
不和谐的一面
  • 您的bot没有在Privileged Gateway Intents部分激活Server Members Intent。意图用于限制对某些信息的访问,以防止滥用,因此您必须激活它们才能获得链接权限。进入开发者门户,然后进入bot,搜索Server Members Intent,并激活它

程序端

  • 您的bot没有激活member意图。就像developper门户中的意图一样,您必须精确地确定要使用的意图There are multiple way to do it,但这里有一个:
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='!', intents=intents)

我认为最后两个应该对你有用

当您将bot邀请到服务器时,您没有在discord developer门户中添加权限功能。如果不是这个问题,可能是管理员角色有一些问题,您应该为bot创建一个新的管理员角色。但是我很确定你没有给机器人一定的权限

enter image description here

相关问题 更多 >