Для того, чтобы реализовать команду в вашем Discord боте на Python, которая будет выдавать определенную роль пользователю с удалением предыдущих ролей, вам понадобится библиотека discord.py.
Ниже представлен пример кода для бота, который выполняет указанное действие:
import discord from discord.ext import commands intents = discord.Intents.default() intents.members = True bot = commands.Bot(command_prefix='!', intents=intents) @bot.command() async def set_role(ctx, role_name: str): role = discord.utils.get(ctx.guild.roles, name=role_name) if role is None: await ctx.send(f"Роль `{role_name}` не найдена") return member = ctx.author await member.edit(roles=[role]) await ctx.send(f"Роль `{role_name}` успешно установлена для вас") bot.run('токен_вашего_бота')
В этом коде в команде set_role
происходит следующее:
1. Бот ищет роль с переданным именем role_name
в списке ролей сервера.
2. Если роль не найдена, бот отправляет сообщение об ошибке.
3. Если роль найдена, бот применяет эту роль к пользователю (ctx.author
), удаляя все предыдущие роли (метод edit(roles=[role])
).
4. Бот отправляет сообщение об успешной установке роли пользователю.
Не забудьте заменить 'токен_вашего_бота'
на реальный токен вашего Discord бота.
После написания кода, вы можете добавить вашего бота на сервер и использовать команду !set_role <название_роли>
для установки новой роли с удалением предыдущих ролей.