首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异步元不能用于等待表达式

异步元不能用于等待表达式
EN

Stack Overflow用户
提问于 2022-09-05 11:46:32
回答 1查看 334关注 0票数 0

因此,我在discord.py中为我的机器人发出了一个unban命令

代码:

代码语言:javascript
运行
复制
@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

当我尝试使用它时,我会得到以下错误:

代码语言:javascript
运行
复制
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: object async_generator can't be used in 'await' expression

我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2022-09-05 12:21:42

ctx.guild.bans()现在是在discord.py 2.0中被废弃的。根据discord.py API参考,您现在应该使用:

代码语言:javascript
运行
复制
async for entry in ctx.guild.bans():
    user = entry.user
    # ...

上面的代码遍历每一个被禁止的用户。

或者,将所有被禁止的用户整理成一个列表:

代码语言:javascript
运行
复制
banned_users = [entry.user async for entry in ctx.guild.bans()]

希望这能帮上忙。顺便说一句,如果您正在构建一个不和谐的机器人,阅读discord.py API参考将是有用的。它包含了许多关于discord.py基础知识的有用信息。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73608878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档