Как создать роль с именем переменной в discord.py - PullRequest
0 голосов
/ 11 декабря 2018

Итак, я пытался создать команду проверки (.verify), где ему нужны имена аргументов, и он должен создать роль со своим именем и назначить его им, а также должен быть отправлен в определенном порядке.канал, чтобы люди не могли самим делать роли, я сначала подумал, что это channel.id, но я добавил print (ctx.message.channel.id), и это было то же самое, поэтому я знал, что это не ошибка,но это не делает роль и не дает никакой роли, и даже без ошибок!Пожалуйста, помогите мне.Вот мой код.

    @client.command(pass_context=True)
    async def verify(ctx, name):
      print(ctx.message.channel.id)
      if ctx.message.channel.id == 521645091098722305:
        await client.create_role(author.server, name=name)
        await client.say('Done! Welcome!')

Если все сделано, спасибо, С уважением, Хлеб

1 Ответ

0 голосов
/ 12 декабря 2018

Используйте строки вместо целых для идентификаторов в асинхронной ветви.Вам также необходимо захватить Role, который create_role делает, и передать его add_roles

@client.command(pass_context=True)
async def verify(ctx, name):
  print(ctx.message.channel.id)
  if ctx.message.channel.id == '521645091098722305:
    role = await client.create_role(ctx.message.author.server, name=name)
    await client.add_roles(ctx.message.author, role)
    await client.say('Done! Welcome!')

Эквивалентная команда перезаписи будет

@client.command()
async def verify(ctx, name):
  print(ctx.channel.id)
  if ctx.channel.id == 521645091098722305:
    role = await ctx.guild.create_role(name=name)
    await ctx.message.author.add_roles(role)
    await ctx.send('Done! Welcome!')
...