Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord
- from discord.ext import commands
- from discord.ui import Button, View
- import traceback
- token = "token"
- intents = discord.Intents.all()
- intents.typing = True
- import asyncio
- bot = discord.Client(command_prefix='!', intents=intents)
- def err_trace_to_str(e):
- tb_str = ''.join(traceback.format_exception(type(e), e, e.__traceback__))
- return tb_str
- class Confirm(discord.ui.View):
- def __init__(self):
- super().__init__()
- self.value = None
- self.server = bot.get_guild(974300957993230396)
- self.notify_roles = ['КСЗС', 'Равные бои', 'ГЛ турнир', 'Быстрый турнир', 'Гильдия Тактиков', 'Турнир', 'Клановый деф']
- async def respond_to_button(self, interaction, button):
- new_role = discord.utils.get(self.server.roles, name=button.label)
- user = interaction.user
- notify_roles_msg = ""
- for role in user.roles:
- if str(role) in self.notify_roles:
- notify_roles_msg+=f"__{str(role)}__ "
- if new_role in user.roles:
- await user.remove_roles(new_role)
- print(notify_roles_msg)
- await interaction.response.send_message(f'_Удалена роль_ `@{button.label}`. _Список ролей в информации при нажатии на ник:_ <@{user.id}>', ephemeral=True)
- else:
- await user.add_roles(new_role)
- print(notify_roles_msg)
- await interaction.response.send_message(f'_Добавлена роль_ `@{button.label}`. _Список ролей в информации при нажатии на ник:_ <@{user.id}>', ephemeral=True)
- @discord.ui.button(label='КСЗС', style=discord.ButtonStyle.grey)
- async def button1(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @discord.ui.button(label='Равные бои', style=discord.ButtonStyle.green)
- async def button2(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @discord.ui.button(label='ГЛ турнир', style=discord.ButtonStyle.grey)
- async def button3(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @discord.ui.button(label='Быстрый Турнир', style=discord.ButtonStyle.green)
- async def button4(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @discord.ui.button(label='Гильдия Тактиков', style=discord.ButtonStyle.grey)
- async def button5(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @discord.ui.button(label='Турнир', style=discord.ButtonStyle.green)
- async def button6(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @discord.ui.button(label='Клановый деф', style=discord.ButtonStyle.grey)
- async def button7(self, interaction: discord.Interaction, button: discord.ui.Button):
- await self.respond_to_button(interaction, button)
- @bot.event
- async def on_ready():
- channel = bot.get_channel(1092453383106994328)
- await channel.purge()
- view = Confirm()
- await channel.send("__**Клик на кнопку добавляет или удаляет соответствующую роль, согласно которой приходят оповещения.**__", view=view)
- bot.run(token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement