@ilyaokhanov

Как сделать, чтобы бот на disnake (python) мог выдавать админку на сервере?

Пишу бота для discord сервера, хочу, чтобы он мог выдавать админку по команде.
Как такое сделать, если возможно?

import disnake
from disnake.ext import commands
from random import choice

bot = commands.Bot()
roles = [тут роли, которые выдаёт бот]


@bot.event
async def on_ready():
    print("Бот готов!")


@bot.slash_command()
async def hello(inter):
    await inter.response.send_message("Бот приветствует тебя, человек!")


@bot.slash_command()
async def role(ctx, member: disnake.Member):
    member = member or ctx.message.author
    guild = bot.get_guild(id сервера)
    new_role = guild.get_role(choice(roles))
    await member.add_roles(new_role)
    await ctx.send(f'Бот добавил {member.mention} роль {new_role.mention}')

bot.run('токен')
  • Вопрос задан
  • 539 просмотров
Решения вопроса 1
@john_does13
Не совсем понятно, что вам нужно.
Вы уже написали функцию, которая выдаёт случайную роль с вашего списка "roles", если в этом списке будет роль с правами Администратора, то бот (в случае если сам является администратором и роль бота выше, чем выдаваемая роь) сможет выдать эту роль пользователю.

Если же вы хотите дать какой-то роли права администратора, то читайте документацию по этому поводу.
Там сказано, что объект Role (роль) имеет метод "edit()", у которого есть параметр "permissions". В свою очередь "Permissions" имеет атрибут "administrator", установив который в значение "True" вы сможете дать права администратора для определённой роли.
А уже роль вы сможете выдать пользователю, как в вашем коде.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект