Migration vers Disnake et ajout des components V2
This commit is contained in:
parent
c8c579eefe
commit
98f7501e07
47 changed files with 1196 additions and 722 deletions
|
|
@ -69,7 +69,7 @@ def is_immune(guild, user) -> bool:
|
|||
|
||||
# --- MODALS DE CONFIGURATION ---
|
||||
|
||||
class SpamThresholdModal(disnake.ui.Modal, title="🛡️ Seuil Anti-Spam"):
|
||||
class SpamThresholdModal(disnake.ui.Modal):
|
||||
"""Modal pour configurer le seuil anti-spam"""
|
||||
threshold_input = disnake.ui.TextInput(
|
||||
label="Messages max autorisés",
|
||||
|
|
@ -80,12 +80,12 @@ class SpamThresholdModal(disnake.ui.Modal, title="🛡️ Seuil Anti-Spam"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, view: 'SecurityView'):
|
||||
super().__init__()
|
||||
super().__init__(title="🛡️ Seuil Anti-Spam", components=[self.threshold_input])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.parent_view = view
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
if not self.threshold_input.value.isdigit():
|
||||
return await interaction.response.send_message(
|
||||
"❌ Erreur : Veuillez entrer un nombre entier.",
|
||||
|
|
@ -110,7 +110,7 @@ class SpamThresholdModal(disnake.ui.Modal, title="🛡️ Seuil Anti-Spam"):
|
|||
ephemeral=True
|
||||
)
|
||||
|
||||
class RaidThresholdModal(disnake.ui.Modal, title="⚔️ Seuil Anti-Raid"):
|
||||
class RaidThresholdModal(disnake.ui.Modal):
|
||||
"""Modal pour configurer le seuil anti-raid"""
|
||||
threshold_input = disnake.ui.TextInput(
|
||||
label="Joins max en 10 secondes",
|
||||
|
|
@ -121,12 +121,12 @@ class RaidThresholdModal(disnake.ui.Modal, title="⚔️ Seuil Anti-Raid"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, view: 'SecurityView'):
|
||||
super().__init__()
|
||||
super().__init__(title="⚔️ Seuil Anti-Raid", components=[self.threshold_input])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.parent_view = view
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
if not self.threshold_input.value.isdigit():
|
||||
return await interaction.response.send_message(
|
||||
"❌ Erreur : Veuillez entrer un nombre entier.",
|
||||
|
|
@ -153,7 +153,7 @@ class RaidThresholdModal(disnake.ui.Modal, title="⚔️ Seuil Anti-Raid"):
|
|||
|
||||
# --- MODALS DE CONFIGURATION WHITELIST ---
|
||||
|
||||
class WhitelistModal(disnake.ui.Modal, title="👤 Ajouter à la Whitelist"):
|
||||
class WhitelistModal(disnake.ui.Modal):
|
||||
"""Modal pour ajouter un utilisateur à la whitelist"""
|
||||
user_input = disnake.ui.TextInput(
|
||||
label="ID de l'utilisateur",
|
||||
|
|
@ -164,11 +164,11 @@ class WhitelistModal(disnake.ui.Modal, title="👤 Ajouter à la Whitelist"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, view: 'SecurityView'):
|
||||
super().__init__()
|
||||
super().__init__(title="👤 Ajouter à la Whitelist", components=[self.user_input])
|
||||
self.guild_id = guild_id
|
||||
self.parent_view = view
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
if not self.user_input.value.isdigit():
|
||||
return await interaction.response.send_message(
|
||||
"❌ Erreur : ID invalide.",
|
||||
|
|
@ -873,7 +873,7 @@ class MainCategorySelect(disnake.ui.Select):
|
|||
class WhitelistSelect(disnake.ui.Select):
|
||||
"""Menu dropdown pour voir et gérer les utilisateurs whitelistés"""
|
||||
|
||||
def __init__(self, guild: discord.Guild, view: 'SecurityView'):
|
||||
def __init__(self, guild: disnake.Guild, view: 'SecurityView'):
|
||||
self.guild = guild
|
||||
self.parent_view = view
|
||||
whitelist = load_whitelist(guild.id)
|
||||
|
|
@ -950,11 +950,11 @@ class Security(commands.Cog):
|
|||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@app_commands.command(
|
||||
@commands.slash_command(
|
||||
name="security",
|
||||
description="🛡️ Ouvrir le panneau de sécurité Kuby"
|
||||
)
|
||||
async def security(self, interaction: disnake.Interaction):
|
||||
async def security(self, interaction: disnake.ApplicationCommandInteraction):
|
||||
"""
|
||||
Commande principale pour ouvrir l'interface de sécurité.
|
||||
Accessible uniquement aux administrateurs et propriétaires whitelistés.
|
||||
|
|
@ -989,12 +989,12 @@ class Security(commands.Cog):
|
|||
)
|
||||
|
||||
@security.error
|
||||
async def security_error(self, interaction: disnake.Interaction, error: app_commands.AppCommandError):
|
||||
async def security_error(self, interaction: disnake.Interaction, error: Exception):
|
||||
"""Gestion des erreurs de la commande security"""
|
||||
# Utilisation de followup si l'interaction est déjà différée ou répondue
|
||||
send_method = interaction.followup.send if interaction.response.is_done() else interaction.response.send_message
|
||||
|
||||
if isinstance(error, app_commands.MissingPermissions):
|
||||
if isinstance(error, commands.MissingPermissions):
|
||||
await send_method(
|
||||
"❌ Permissions insuffisantes.",
|
||||
ephemeral=True
|
||||
|
|
@ -1006,7 +1006,7 @@ class Security(commands.Cog):
|
|||
)
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
def setup(bot):
|
||||
"""Setup du cog de sécurité"""
|
||||
await bot.add_cog(Security(bot))
|
||||
bot.add_cog(Security(bot))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue