[英]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.