Discord Python Сменить регион - PullRequest
0 голосов
/ 13 ноября 2018

извините, если это такой вопрос DUMB, но я хотел бы знать, что не так с этой командой, так как я получаю discord.ext.commands.errors.BadArgument: Converting to "EnumMeta" failed. как ошибку. Что именно означает ошибка и что будет правильной командой?

@commands.command(pass_context = True)
@commands.has_permissions(manage_server=True)
async def region(self, ctx, region=discord.ServerRegion):
    """Changes the server region."""
    if not region:
        await self.bot.say("What region are we changing to, {ctx.message.author.mention}?")
    await self.bot.edit_server(region)
    await self.bot.say("Ok! We're now in " + str(ctx.message.server.region) + " :smiley:")
    print('ok')

1 Ответ

0 голосов
/ 13 ноября 2018

Нет встроенного конвертера для ServerRegion.К счастью, мы можем сделать тот, который выполняет работу довольно легко, используя тот факт, что ServerRegion('amsterdam') эквивалентно ServerRegion.amsterdam:

region_converter = lambda region: discord.ServerRegion('-'.join(region.lower().split()))

@commands.command(pass_context = True)
@commands.has_permissions(manage_server=True)
async def region(self, ctx, *, region: region_converter=None):
    """Changes the server region."""
    if not region:
        await self.bot.say("What region are we changing to, {ctx.message.author.mention}?")
        return
    await self.bot.edit_server(ctx.message.server, region=region)
    await self.bot.say("Ok! We're now in " + str(ctx.message.server.region) + " :smiley:")
    print('ok')
...