Я использую nextcord и пытаюсь проверить, есть ли у пользователя роль, когда он запускает команду. Я понятия не имею, как это сделать, поэтому я не могу предоставить MRE. Я предполагаю, что код будет примерно таким:
@client.slash_command(name = "test")
async def test(interaction:nextcord.Interaction):
if interaction.user.has_role("Cool"):
await interaction.send("You are cool!")
else:
await interaction.send("You are not cool.")
Для этого вам нужно будет сначала получить роль, а затем проверить, находится ли конкретный участник в этой роли. Вот пример, однако я считаю, что это не единственный способ сделать это:
from nextcord.utils import get
role = get(ctx.guild.roles, name='search for role by name')
if interaction.user in role:
do something
else:
do a different thing
Надеюсь это поможет
Я нашел ответ, это похоже на этот ответ, но наоборот:
@client.slash_command(name = "check_role", description = "Check if a user has a role", guild_ids=GUILD_IDS)
async def check_role(interaction:nextcord.Interaction, user:nextcord.Member):
if nextcord.utils.get(interaction.guild.roles, name = "Role Name") in user.roles:
await interaction.send("True!")
else:
await interaction.send("False.")