Как я могу заставить диск-бота создать роль, основанную на том, что человек вводит в команду? - PullRequest
0 голосов
/ 23 мая 2018

Я новичок в кодировании и создании разногласий ботов, я получил его, чтобы сделать роль, используя команду, но я не могу понять, как заставить его сделать роль, основываясь на том, что человек помещает в команду.Например,! Rolecreate test, если я набрал, что хочу, чтобы он создал роль под названием test и передал ее мне.Если это поможет, вот код, который у меня есть для создания синей роли под названием test.

https://pastebin.com/HMkLTkSe

@client.command(pass_context=True)
async def rolecreate(ctx):
    author = ctx.message.author
    await client.create_role(author.server, name='TEST', colour=discord.Colour(0x0000FF))

1 Ответ

0 голосов
/ 23 мая 2018

Это не проверено, но что-то вроде этого должно работать:

from discord.utils import get

@client.command(pass_context=True)
async def rolecreate(ctx):
    author = ctx.message.author
    # split the string to get the rolename to create
    role_name = ctx.message.content.lower().split("!rolecreate ", maxsplit=1)[1]
    # check if that role already exists
    check_for_duplicate = get(ctx.message.server.roles, name=role_name)
    if check_for_duplicate is not None: # if the role doesn't exist
        # create the role
        role = await client.create_role(author.server, name=role_name, colour=discord.Colour(0x0000FF))
        await client.add_roles(author, role)
    else:
        client.send_message(ctx.message.channel, "That role already exists")
...