Advertisement
pasta_la_wista

Untitled

Apr 3rd, 2023
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. import discord
  2. from discord.ext import commands
  3. from discord.ui import Button, View
  4. import traceback
  5. token = "token"
  6. intents = discord.Intents.all()
  7. intents.typing = True
  8. import asyncio
  9. bot = discord.Client(command_prefix='!', intents=intents)
  10. def err_trace_to_str(e):
  11. tb_str = ''.join(traceback.format_exception(type(e), e, e.__traceback__))
  12. return tb_str
  13. class Confirm(discord.ui.View):
  14. def __init__(self):
  15. super().__init__()
  16. self.value = None
  17. self.server = bot.get_guild(974300957993230396)
  18. self.notify_roles = ['КСЗС', 'Равные бои', 'ГЛ турнир', 'Быстрый турнир', 'Гильдия Тактиков', 'Турнир', 'Клановый деф']
  19. async def respond_to_button(self, interaction, button):
  20. new_role = discord.utils.get(self.server.roles, name=button.label)
  21. user = interaction.user
  22. notify_roles_msg = ""
  23. for role in user.roles:
  24. if str(role) in self.notify_roles:
  25. notify_roles_msg+=f"__{str(role)}__ "
  26. if new_role in user.roles:
  27. await user.remove_roles(new_role)
  28. print(notify_roles_msg)
  29. await interaction.response.send_message(f'_Удалена роль_ `@{button.label}`. _Список ролей в информации при нажатии на ник:_ <@{user.id}>', ephemeral=True)
  30. else:
  31. await user.add_roles(new_role)
  32. print(notify_roles_msg)
  33. await interaction.response.send_message(f'_Добавлена роль_ `@{button.label}`. _Список ролей в информации при нажатии на ник:_ <@{user.id}>', ephemeral=True)
  34. @discord.ui.button(label='КСЗС', style=discord.ButtonStyle.grey)
  35. async def button1(self, interaction: discord.Interaction, button: discord.ui.Button):
  36. await self.respond_to_button(interaction, button)
  37. @discord.ui.button(label='Равные бои', style=discord.ButtonStyle.green)
  38. async def button2(self, interaction: discord.Interaction, button: discord.ui.Button):
  39. await self.respond_to_button(interaction, button)
  40. @discord.ui.button(label='ГЛ турнир', style=discord.ButtonStyle.grey)
  41. async def button3(self, interaction: discord.Interaction, button: discord.ui.Button):
  42. await self.respond_to_button(interaction, button)
  43. @discord.ui.button(label='Быстрый Турнир', style=discord.ButtonStyle.green)
  44. async def button4(self, interaction: discord.Interaction, button: discord.ui.Button):
  45. await self.respond_to_button(interaction, button)
  46. @discord.ui.button(label='Гильдия Тактиков', style=discord.ButtonStyle.grey)
  47. async def button5(self, interaction: discord.Interaction, button: discord.ui.Button):
  48. await self.respond_to_button(interaction, button)
  49. @discord.ui.button(label='Турнир', style=discord.ButtonStyle.green)
  50. async def button6(self, interaction: discord.Interaction, button: discord.ui.Button):
  51. await self.respond_to_button(interaction, button)
  52. @discord.ui.button(label='Клановый деф', style=discord.ButtonStyle.grey)
  53. async def button7(self, interaction: discord.Interaction, button: discord.ui.Button):
  54. await self.respond_to_button(interaction, button)
  55. @bot.event
  56. async def on_ready():
  57. channel = bot.get_channel(1092453383106994328)
  58. await channel.purge()
  59. view = Confirm()
  60. await channel.send("__**Клик на кнопку добавляет или удаляет соответствующую роль, согласно которой приходят оповещения.**__", view=view)
  61.  
  62. bot.run(token)
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement