Пишу бота на disnake.
Суть бота:
Пользователь вводит команду, ему в ЛС бот отправляет эмбед и кнопки.
Вопрос такой:
Как выдать пользователю роль кнопкой через ЛС?
Изучаю disnake недавно.
Убедительная просьба, тапками не бросаться.
Я лишь хочу научиться и сделать прикольного бота для своего сервера.
from typing import Optional
import disnake
from disnake.ext import commands
from disnake import utils
class Test(disnake.ui.View):
def __init__(self, bot):
super().__init__(timeout=None)
self.value = Optional[bool]
@disnake.ui.button(label='Выйти в открытый космос', style=disnake.ButtonStyle.blurple, custom_id="Кнопка5")
async def button5(self, button: disnake.ui.Button, interaction: disnake.Interaction):
guild = self.bot.get_guild(id server)
member = guild.get_member(ctx.message.author.id)
user = interaction.author
embed = disnake.Embed(colour= disnake.Color.dark_red())
embed.title = "Отчаяние"
embed.description = "текст"
embed.add_field(name="Вы погибаете.", value="Вы прошли на плохую концовку. [:x:]")
await interaction.response.send_message(embed=embed)
await member.add_roles(rolebad)
self.value = False
self.stop()
class TestRole(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.persistents_views_added = False
print('Module {} is loaded'.format(self.__class__.__name__))
@commands.command()
@commands.cooldown(1, 30, commands.BucketType.user)
async def test(self, ctx):
start = Test()
user = ctx.author
embed = disnake.Embed(colour= disnake.Color.dark_green())
embed.title = "Квесты"
embed.description = "текст"
embed.set_footer(text="Бета тест")
embed.set_author(name=f"{user.name}", icon_url=f"{user.display_avatar}")
await ctx.message.delete()
await ctx.author.send(embed=embed, view=start)
def setup(bot):
bot.add_cog(TestRole(bot))