Première version non terminer du nouveau système de ticket § ajout du système de boutons persistant (non tester)
This commit is contained in:
parent
10173132a2
commit
93e2f9bb44
15 changed files with 3788 additions and 209 deletions
|
|
@ -32,6 +32,26 @@ class Blacklist(commands.Cog):
|
|||
|
||||
def cog_unload(self):
|
||||
self.check_ban_expiry.cancel()
|
||||
|
||||
async def cog_load(self):
|
||||
"""Enregistrer les vues persistantes au démarrage"""
|
||||
await self._register_persistent_views()
|
||||
|
||||
async def _register_persistent_views(self):
|
||||
"""Enregistre les vues pour les tickets ouverts"""
|
||||
try:
|
||||
tickets = load_json(TICKETS_FILE, {})
|
||||
for user_id_str, data in tickets.items():
|
||||
user_id = int(user_id_str)
|
||||
# Enregistrer le bouton d'ouverture de ticket
|
||||
view = TicketButton(user_id)
|
||||
self.bot.add_view(view)
|
||||
# Enregistrer le bouton de fermeture
|
||||
close_view = CloseTicketView(user_id)
|
||||
self.bot.add_view(close_view)
|
||||
print(f"[Blacklist] {len(tickets)} vues de tickets enregistrées")
|
||||
except Exception as e:
|
||||
print(f"[Blacklist] Erreur lors de l'enregistrement des vues: {e}")
|
||||
|
||||
def is_agent(self, user_id: int):
|
||||
agents = load_json(AGENTS_FILE, {"agents": []})
|
||||
|
|
@ -180,7 +200,7 @@ class TicketButton(discord.ui.View):
|
|||
super().__init__(timeout=None)
|
||||
self.user_id = user_id
|
||||
|
||||
@discord.ui.button(label="📩 Ouvrir une demande de révision", style=discord.ButtonStyle.primary)
|
||||
@discord.ui.button(label="📩 Ouvrir une demande de révision", style=discord.ButtonStyle.primary, custom_id="blacklist_open_ticket")
|
||||
async def open_ticket(self, interaction: discord.Interaction, button: discord.ui.Button):
|
||||
if interaction.user.id != self.user_id:
|
||||
return await interaction.response.send_message("❌ Ce bouton ne t’appartient pas.", ephemeral=True)
|
||||
|
|
@ -219,7 +239,7 @@ class CloseTicketView(discord.ui.View):
|
|||
super().__init__(timeout=None)
|
||||
self.user_id = user_id
|
||||
|
||||
@discord.ui.button(label="❌ Fermer le ticket", style=discord.ButtonStyle.danger)
|
||||
@discord.ui.button(label="❌ Fermer le ticket", style=discord.ButtonStyle.danger, custom_id="blacklist_close_ticket")
|
||||
async def close_ticket(self, interaction: discord.Interaction, button: discord.ui.Button):
|
||||
if not interaction.client.get_cog("Blacklist").is_agent(interaction.user.id):
|
||||
return await interaction.response.send_message("⛔ Seuls les agents peuvent fermer ce ticket.", ephemeral=True)
|
||||
|
|
@ -232,7 +252,7 @@ class ConfirmCloseView(discord.ui.View):
|
|||
super().__init__(timeout=30)
|
||||
self.user_id = user_id
|
||||
|
||||
@discord.ui.button(label="✅ Oui", style=discord.ButtonStyle.success)
|
||||
@discord.ui.button(label="✅ Oui", style=discord.ButtonStyle.success, custom_id="blacklist_confirm_close")
|
||||
async def confirm(self, interaction: discord.Interaction, button: discord.ui.Button):
|
||||
if not interaction.client.get_cog("Blacklist").is_agent(interaction.user.id):
|
||||
return await interaction.response.send_message("⛔ Tu n’as pas la permission.", ephemeral=True)
|
||||
|
|
@ -270,7 +290,7 @@ class ConfirmCloseView(discord.ui.View):
|
|||
|
||||
await interaction.response.send_message("✅ Ticket fermé avec succès.", ephemeral=True)
|
||||
|
||||
@discord.ui.button(label="❌ Non", style=discord.ButtonStyle.secondary)
|
||||
@discord.ui.button(label="❌ Non", style=discord.ButtonStyle.secondary, custom_id="blacklist_cancel_close")
|
||||
async def cancel(self, interaction: discord.Interaction, button: discord.ui.Button):
|
||||
await interaction.response.send_message("❌ Fermeture annulée.", ephemeral=True)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue