discord.py 在使用 add_roles 时等待“AttributeError:'list' 对象没有属性 'id'”
Posted
技术标签:
【中文标题】discord.py 在使用 add_roles 时等待“AttributeError:\'list\' 对象没有属性 \'id\'”【英文标题】:discord.py await "AttributeError: 'list' object has no attribute 'id'" while using add_rolesdiscord.py 在使用 add_roles 时等待“AttributeError:'list' 对象没有属性 'id'” 【发布时间】:2021-04-18 17:44:39 【问题描述】:我尝试使用 discord.py 创建机器人,并尝试使用 discord.ext 命令使用 add_roles 成员函数。
这是我的代码:
import os
import discord
from dotenv import load_dotenv
from discord.ext import commands
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
GUILD = os.getenv('DISCORD_GUILD')
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
guild = discord.utils.get(client.guilds, name=GUILD)
print(
f'client.user is connected to the following guild:\n'
f'guild.name (id: guild.id)'
)
members = guild.members
for member in members:
role = discord.utils.get(member.guild.roles, name='test 2')
await member.add_roles([role],False)
当它调用“await member.add_roles([role], False)”时,会出现如下错误:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/discord/client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "/Users/tanay/Documents/Python CYOA/bot.py", line 31, in on_ready
await member.add_roles([role],False)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/discord/member.py", line 676, in add_roles
await req(guild_id, user_id, role.id, reason=reason)
AttributeError: 'list' object has no attribute 'id'
我一直在进行大量互联网搜索,但找不到解决此问题的方法。有谁知道我做错了什么?
非常感谢!
【问题讨论】:
澄清一下,await member.add_roles(role, False)
中的False
是做什么的?
这是来自 discord API 的引用:“atomic (bool) – 是否自动添加角色。这将确保无论缓存的当前状态如何,都将始终应用多个操作。”
【参考方案1】:
当您添加一个角色时,您不必将其放入[]
。这就是您收到此错误的原因。所以你只需要删除括号。
...
for member in members:
role = discord.utils.get(member.guild.roles, name='test 2')
await member.add_roles(role)
【讨论】:
如果我这样做,它会显示“AttributeError: 'bool' object has no attribute 'id'”将“list”替换为“bool”。以上是关于discord.py 在使用 add_roles 时等待“AttributeError:'list' 对象没有属性 'id'”的主要内容,如果未能解决你的问题,请参考以下文章