Изменение разрешений для более чем одной роли - PullRequest
0 голосов
/ 04 июня 2018

Я только вошел в Python, и общее программирование, и я уже начал с кодирования своих собственных ботов, но теперь у меня проблема с изменением разрешений с помощью команды бота, а точнее я хочу изменить разрешения для более чемодна роль, вот что я получил, пока не знаю, и я знаю, что это грязно и все, и я был бы очень признателен за некоторую помощь!

@bot.command(pass_context=True)
@commands.has_role("botadmin")
async def giveperm(ctx, *rankName: str):
    rank = discord.utils.get(ctx.message.server.roles, name=' '.join(rankName))
    await bot.say("Give me a moment! Giving permissions to post in " + str(ctx.message.channel))
    perms = discord.PermissionOverwrite(send_messages=True)
for rankName in str(rank):
    await bot.edit_channel_permissions(channel=ctx.message.channel, target=rankName, overwrite=perms)
if ctx.message.channel == "suggestions":
    await bot.say("Suggestions are now open again for a week! \n\n Please only post suggestions here to prevent any chaos, with that said, have fun and happy suggesting!")
else:
    await bot.say("Permissions granted to " + rankName + " to post in " + str(ctx.message.channel))

Заранее спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

utils.get вернет один role из server.roles.Вместо этого мы можем использовать конвертер , чтобы discord.py давал нам роли непосредственно при разборе команды

@bot.command(pass_context=True)
@commands.has_role("botadmin")
async def giveperm(ctx, *roles: discord.Role):
    await bot.say("Give me a moment! Giving permissions to post in " + str(ctx.message.channel))
    perms = discord.PermissionOverwrite(send_messages=True)

    for role in roles:
        await bot.edit_channel_permissions(channel=ctx.message.channel, target=rankName, overwrite=perms)

    if ctx.message.channel == "suggestions":
        await bot.say("Suggestions are now open again for a week! \n\n Please only post suggestions here to prevent any chaos, with that said, have fun and happy suggesting!")
    else:
        await bot.say("Permissions granted to " + rankName + " to post in " + str(ctx.message.channel))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...