Handle testing mode in modals

This commit is contained in:
Codex 2025-06-06 19:34:32 +00:00 committed by Slipstream
parent ce01752e31
commit fcedfd3760
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -105,6 +105,10 @@ class AIModerationCog(commands.Cog):
) )
print("AIModerationCog Initialized.") print("AIModerationCog Initialized.")
def is_testing_mode(self, guild_id: int) -> bool:
"""Return True if testing mode is enabled for the guild."""
return get_guild_config(guild_id, "TESTING_MODE", False)
class QuickActionView(discord.ui.View): class QuickActionView(discord.ui.View):
"""Buttons for quick moderator actions.""" """Buttons for quick moderator actions."""
@ -134,6 +138,12 @@ class AIModerationCog(commands.Cog):
"You lack permission to ban members.", ephemeral=True "You lack permission to ban members.", ephemeral=True
) )
return return
if self.view.parent.is_testing_mode(interaction.guild.id):
await interaction.response.send_message(
f"[TEST MODE] Would ban {self.view.target.mention}.",
ephemeral=True,
)
return
try: try:
await self.view.target.ban( await self.view.target.ban(
reason=self.reason.value or "Escalated via mod panel" reason=self.reason.value or "Escalated via mod panel"
@ -168,6 +178,12 @@ class AIModerationCog(commands.Cog):
"You lack permission to kick members.", ephemeral=True "You lack permission to kick members.", ephemeral=True
) )
return return
if self.view.parent.is_testing_mode(interaction.guild.id):
await interaction.response.send_message(
f"[TEST MODE] Would kick {self.view.target.mention}.",
ephemeral=True,
)
return
try: try:
await self.view.target.kick( await self.view.target.kick(
reason=self.reason.value or "Escalated via mod panel" reason=self.reason.value or "Escalated via mod panel"
@ -227,6 +243,12 @@ class AIModerationCog(commands.Cog):
"You lack permission to timeout members.", ephemeral=True "You lack permission to timeout members.", ephemeral=True
) )
return return
if self.view.parent.is_testing_mode(interaction.guild.id):
await interaction.response.send_message(
f"[TEST MODE] Would timeout {self.view.target.mention} for {self.duration.value}.",
ephemeral=True,
)
return
delta = self.parse_duration(self.duration.value) delta = self.parse_duration(self.duration.value)
if not delta or delta > datetime.timedelta(days=28): if not delta or delta > datetime.timedelta(days=28):
await interaction.response.send_message( await interaction.response.send_message(