【发布时间】: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) – 是否自动添加角色。这将确保无论缓存的当前状态如何,都将始终应用多个操作。”
标签: python error-handling async-await discord.py