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
|
|
@ -38,7 +38,7 @@ def save_settings(guild_id: int, settings: dict) -> None:
|
|||
|
||||
# --- MODALS DE CONFIGURATION DU RÈGLEMENT (BACK-END) ---
|
||||
|
||||
class RulesTitleModal(disnake.ui.Modal, title="📜 Titre du Règlement"):
|
||||
class RulesTitleModal(disnake.ui.Modal):
|
||||
"""Modal pour configurer le titre du règlement"""
|
||||
title_input = disnake.ui.TextInput(
|
||||
label="Titre du règlement",
|
||||
|
|
@ -49,12 +49,12 @@ class RulesTitleModal(disnake.ui.Modal, title="📜 Titre du Règlement"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, on_update_callback=None):
|
||||
super().__init__()
|
||||
super().__init__(title="📜 Titre du Règlement", components=[self.title_input])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.on_update_callback = on_update_callback
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
self.settings["rules_title"] = self.title_input.value
|
||||
save_settings(self.guild_id, self.settings)
|
||||
|
||||
|
|
@ -77,24 +77,24 @@ class RulesTitleModal(disnake.ui.Modal, title="📜 Titre du Règlement"):
|
|||
return view
|
||||
|
||||
|
||||
class RulesContentModal(disnake.ui.Modal, title="📝 Contenu du Règlement"):
|
||||
class RulesContentModal(disnake.ui.Modal):
|
||||
"""Modal pour configurer le contenu du règlement"""
|
||||
content_input = disnake.ui.TextInput(
|
||||
label="Contenu du règlement",
|
||||
placeholder="Entrez les règles de votre serveur...",
|
||||
style=disnake.TextStyle.paragraph,
|
||||
style=disnake.TextInputStyle.paragraph,
|
||||
min_length=10,
|
||||
max_length=4000,
|
||||
required=True
|
||||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, on_update_callback=None):
|
||||
super().__init__()
|
||||
super().__init__(title="📝 Contenu du Règlement", components=[self.content_input])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.on_update_callback = on_update_callback
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
self.settings["rules_content"] = self.content_input.value
|
||||
save_settings(self.guild_id, self.settings)
|
||||
|
||||
|
|
@ -117,7 +117,7 @@ class RulesContentModal(disnake.ui.Modal, title="📝 Contenu du Règlement"):
|
|||
return view
|
||||
|
||||
|
||||
class RulesChannelModal(disnake.ui.Modal, title="📌 Salon du Règlement"):
|
||||
class RulesChannelModal(disnake.ui.Modal):
|
||||
"""Modal pour sélectionner le salon du règlement"""
|
||||
channel_input = disnake.ui.TextInput(
|
||||
label="ID du salon",
|
||||
|
|
@ -128,12 +128,12 @@ class RulesChannelModal(disnake.ui.Modal, title="📌 Salon du Règlement"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, on_update_callback=None):
|
||||
super().__init__()
|
||||
super().__init__(title="📌 Salon du Règlement", components=[self.channel_input])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.on_update_callback = on_update_callback
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
if not self.channel_input.value.isdigit():
|
||||
return await interaction.response.send_message(
|
||||
"❌ Erreur : ID invalide.",
|
||||
|
|
@ -171,7 +171,7 @@ class RulesChannelModal(disnake.ui.Modal, title="📌 Salon du Règlement"):
|
|||
return view
|
||||
|
||||
|
||||
class RulesRoleModal(disnake.ui.Modal, title="✅ Rôle d'Acceptation"):
|
||||
class RulesRoleModal(disnake.ui.Modal):
|
||||
"""Modal pour configurer le rôle attribué à l'acceptation"""
|
||||
role_input = disnake.ui.TextInput(
|
||||
label="ID du rôle",
|
||||
|
|
@ -182,12 +182,12 @@ class RulesRoleModal(disnake.ui.Modal, title="✅ Rôle d'Acceptation"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, on_update_callback=None):
|
||||
super().__init__()
|
||||
super().__init__(title="✅ Rôle d'Acceptation", components=[self.role_input])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.on_update_callback = on_update_callback
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
if not self.role_input.value.isdigit():
|
||||
return await interaction.response.send_message(
|
||||
"❌ Erreur : ID invalide.",
|
||||
|
|
@ -225,7 +225,7 @@ class RulesRoleModal(disnake.ui.Modal, title="✅ Rôle d'Acceptation"):
|
|||
return view
|
||||
|
||||
|
||||
class RulesMessageTypeModal(disnake.ui.Modal, title="📝 Type de Message"):
|
||||
class RulesMessageTypeModal(disnake.ui.Modal):
|
||||
"""Modal pour choisir le type de message du règlement"""
|
||||
message_type = disnake.ui.TextInput(
|
||||
label="Type de message",
|
||||
|
|
@ -236,12 +236,12 @@ class RulesMessageTypeModal(disnake.ui.Modal, title="📝 Type de Message"):
|
|||
)
|
||||
|
||||
def __init__(self, guild_id: int, settings: dict, on_update_callback=None):
|
||||
super().__init__()
|
||||
super().__init__(title="📝 Type de Message", components=[self.message_type])
|
||||
self.guild_id = guild_id
|
||||
self.settings = settings
|
||||
self.on_update_callback = on_update_callback
|
||||
|
||||
async def on_submit(self, interaction: disnake.Interaction):
|
||||
async def callback(self, interaction: disnake.Interaction):
|
||||
msg_type = self.message_type.value.lower().strip()
|
||||
|
||||
if msg_type not in ["embed", "simple"]:
|
||||
|
|
@ -323,13 +323,13 @@ class RulesAcceptButton(disnake.ui.View):
|
|||
self.guild_id = guild_id
|
||||
self.accept_role_id = accept_role_id
|
||||
|
||||
@discord.ui.button(
|
||||
@disnake.ui.button(
|
||||
label="J'accepte le règlement",
|
||||
emoji="✅",
|
||||
style=disnake.ButtonStyle.green,
|
||||
custom_id="rules_accept_button"
|
||||
)
|
||||
async def accept_rules(self, interaction: disnake.Interaction, button: disnake.ui.Button):
|
||||
async def accept_rules(self, button: disnake.ui.Button, interaction: disnake.Interaction):
|
||||
"""Gère le clic sur le bouton d'acceptation"""
|
||||
guild = interaction.guild
|
||||
|
||||
|
|
@ -495,8 +495,8 @@ class RulesCog(commands.Cog):
|
|||
return title, content
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
def setup(bot):
|
||||
"""Setup du cog de règlement"""
|
||||
cog = RulesCog(bot)
|
||||
await bot.add_cog(cog)
|
||||
bot.add_cog(cog)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue