因此,我在discord.py中为我的机器人发出了一个unban命令
代码:
@client.command()
@commands.has_permissions(ban_members=True)
async def unban(ctx, *, member):
banned_users=await ctx.guild.bans()
member_name, member_discriminator = member.split('#')
for ban_entry in banned_users:
user = ban_entry.user
if (user.name, user.discriminator) == (member_name, member_discriminator):
await ctx.guild.unban(user)
await ctx.send(f'**Unbanned** {user.mention}')
return
当我尝试使用它时,我会得到以下错误:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: object async_generator can't be used in 'await' expression
我该怎么解决这个问题?
发布于 2022-09-05 12:21:42
ctx.guild.bans()
现在是在discord.py 2.0中被废弃的。根据discord.py API参考,您现在应该使用:
async for entry in ctx.guild.bans():
user = entry.user
# ...
上面的代码遍历每一个被禁止的用户。
或者,将所有被禁止的用户整理成一个列表:
banned_users = [entry.user async for entry in ctx.guild.bans()]
希望这能帮上忙。顺便说一句,如果您正在构建一个不和谐的机器人,阅读discord.py API参考将是有用的。它包含了许多关于discord.py基础知识的有用信息。
https://stackoverflow.com/questions/73608878
复制相似问题