Проблема с командой запрета discord.py (переписать ветку) - PullRequest
0 голосов
/ 10 апреля 2019

Я программировал бота с помощью discord.py (ветвь перезаписи), и я хочу добавить команду запрета. Бот по-прежнему не забаняет участника, он просто показывает ошибку:

@client.command(aliases=['Ban'])
async def ban(ctx,member: discord.Member, days: int = 1):
    if "548841535223889923" in (ctx.author.roles):
        await client.ban(member, days)
        await ctx.send("Banned".format(ctx.author))
    else:
        await ctx.send("You don't have permission to use this command.".format(ctx.author))
        await ctx.send(ctx.author.roles)      

Он заблокирует пользователя с проверкой и подтвердит, что он заблокировал

1 Ответ

0 голосов
/ 10 апреля 2019

Member.roles - это список Role объектов, а не строк.Вы можете использовать discord.utils.get для поиска по этому списку с использованием идентификатора (как целое число).

from discord.utils import get

@client.command(aliases=['Ban'])
async def ban(ctx, member: discord.Member, days: int = 1):
    if get(ctx.author.roles, id=548841535223889923):
        await member.ban(delete_message_days=days)
        await ctx.send("Banned {}".format(ctx.author))
    else:
        await ctx.send("{}, you don't have permission to use this command.".format(ctx.author))
        await ctx.send(ctx.author.roles)

Также больше нет подпрограммы Client.ban, и дополнительные аргументы для Member.ban должны бытьпередается в качестве аргументов ключевых слов.

...