繁体   English   中英

discord.py SyntaxError: 'await' outside function

[英]discord.py SyntaxError: 'await' outside function

当我尝试运行命令时,我总是收到以下错误消息: SyntaxError: 'await' outside function 可能是非常简单的错误,但我真的没有看到其中的错误。 任何人都可以帮忙吗?

import discord
from discord.ext import commands

class unban(commands.Cog):

    def __init__(self, client):
        self.client = client

# Commandok

@commands.command()
async def unban(ctx, *, member): # unindent
    banned_users = await ctx.guild.bans() # unindent
    member_name, member_discriminator = member.split('#') # unindent

    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

def setup(client):
    client.add_cog(unban(client))

discord.ext.commands.errors.ExtensionFailed:扩展“cogs.unban”引发错误:TypeError:cogs must derived from Cog sys:1: RuntimeWarning: coroutine 'Command. 呼叫'从未等待

我认为您可能将 function 定义行缩进太多。

@commands.command()
async def unban(ctx, *, member): # unindent
    banned_users = await ctx.guild.bans() # unindent
    member_name, member_discriminator = member.split('#') # unindent

    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

您的if语句不在您的for循环中。 这应该有效:

@commands.command()
async def unban(ctx, *, member):
    banned_users = await ctx.guild.bans()
    member_name, member_discrinimator = member.split('#')

    for ban_entry in banned_users:
        user = ban_entry.user

        if (user.name, user.discriminator) == (member_name, member_discrinimator):
            await ctx.guild.unban(user)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM