Как создать команду бота, которая даст роль упомянутому пользователю | Discord.py - PullRequest
4 голосов
/ 26 марта 2020

Здравствуйте, я новичок в discord.py (не в Python!) И хочу создать команду бота. Я беру, например, Warn

Так что его как Admin напишет эту команду:

```?Warn @user "Some text that will be in string, we call it MESSEGE"```
    ^
PING USER, WE CALL IT "TARGET"

Проверка команды, если у цели есть роли A, B, C или D. Если у него нет, он получает A, если у него есть A, он получает B и так далее. Администратор должен иметь роль персонала команды, чтобы использовать команду.

Я пробовал это, но это не работает:

@bot.command(name="Warn", pass_context=True)
@commands.has_role("Staff Team")
async def addrole(ctx,arg):
    user = arg
    if user.role.name != "Warning 1" or "Warning 2" or "Warning 3":
        role = get(user.server.roles, name="Warning 1")
        await bot.add_roles(user, role)
    elif user.role.name == "Warning 1":
        role = get(user.server.roles, name="Warning 2")
        role_last = get(user.server.roles, name="Warning 1")
        await bot.add_roles(user, role)
        await bot.remove_roles(user,role_last)
    elif user.role.name == "Warning 2":
        role = get(user.server.roles, name="Warning 3")
        role_last = get(user.server.roles, name="Warning 2")
        await bot.add_roles(user, role)
        await bot.remove_roles(user,role_last)

Чем пользователь DM бота с текстом, а затем MESSEGE.

Бот только на одном сервере!

Напоминаю, я новичок, поэтому, пожалуйста, ведите меня шаг за шагом. Буду очень благодарен! Как я могу это сделать? Спасибо.

PS: Я новичок в переполнении стека, поэтому, пожалуйста, не блокируйте меня.

1 Ответ

2 голосов
/ 08 апреля 2020

Это ответ:

  1. asyn c def Warn (ctx, args1: discord.Mmber, args2 = "без причины"):

                      ^                         ^
                 User Mention              Optional
    
  2. Участник = args1

  3. Role = ctx.guild.get_role (ROLE ID)

  4. для ролей в Участнике. Роли:

  5. если роли! = Роль: или если роли == Роль:

  6. ждут Member.add_roles (Роль)

...