Ввод роли или пользователя в команду discord py

Мне нужно сделать команду, которая бы выглядела так:

/voice permit <@member>/<@role>

Но я не знаю, как дать пользователю возможность ввести либо тег роли, либо тег пользователя одновременно.


Ответы (1 шт):

Автор решения: Baluk Ivan
from typing import Union

import discord
from discord import option


bot = discord.Bot()



@bot.slash_command()
@option("permit", Union[discord.Role, discord.Member], description="Select a permit")
async def voice(ctx, permit: Union[discord.Role, discord.Member]):
    await ctx.respond(f"You selected {permit.mention} permit.")



bot.run("token")

введите сюда описание изображения

Достаточно, просто, объединить 2 аннотации при помощи Union (или | в python3.10+).

ВАЖНО: нужно использовать последнюю версию py-cord (то, что это возможно именно в discord.py, я сомневаюсь), если Вы использовали до этого discord.py, а не py-cord, не волнуйтесь, py-cord целиком обладает обратной совместимостью с discord.py, то есть Вам достаточно, просто, удалить discord.py и скачать py-cord, разницы не будет

→ Ссылка