Skip to content

Commit

Permalink
warnsystem: version 1.5.7
Browse files Browse the repository at this point in the history
- Fix error when a bot leaves a guild
- Rename "automod" to "wautomod" for compatibility with other cogs
- Check for permissions when interacting with warnings views
  • Loading branch information
laggron42 committed Nov 26, 2024
1 parent 4612870 commit 9d33235
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
2 changes: 1 addition & 1 deletion warnsystem/automod.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def _format_embed_for_autowarn(
)
return embed

@commands.group()
@commands.group(name="wautomod")
@checks.admin_or_permissions(administrator=True)
async def automod(self, ctx: commands.Context):
"""
Expand Down
18 changes: 16 additions & 2 deletions warnsystem/components.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,12 @@ def __init__(
self.edit_button.disabled = True
self.delete_button.disabled = True

async def interaction_check(self, interaction: Interaction[discord.Client]) -> bool:
return (
await mod.is_mod_or_superior(self.bot, interaction.user)
or interaction.user.guild_permissions.kick_members
)

@discord.ui.button(style=discord.ButtonStyle.secondary, label=_("Edit reason"), emoji="✏")
async def edit_button(self, interaction: discord.Interaction, button: Button):
modal = WarningEditionModal()
Expand Down Expand Up @@ -255,7 +261,9 @@ async def format_page(self, menu: WarningsSelector, balls: List[dict]):


class WarningsSelector(Pages[menus.ListPageSource]):
def __init__(self, ctx: Context, user: Union[discord.Member, UnavailableMember], warnings: List[dict]):
def __init__(
self, ctx: Context, user: Union[discord.Member, UnavailableMember], warnings: List[dict]
):
self.user = user
self.ws = cast("WarnSystem", ctx.bot.get_cog("WarnSystem"))
self.api: "API" = self.ws.api
Expand All @@ -264,6 +272,12 @@ def __init__(self, ctx: Context, user: Union[discord.Member, UnavailableMember],
self.deleted_cases: list[int] = [] # to prevent referencing deleted cases
self.add_item(self.select_warning_menu)

async def interaction_check(self, interaction: Interaction[discord.Client]) -> bool:
return (
await mod.is_mod_or_superior(self.bot, interaction.user)
or interaction.user.guild_permissions.kick_members
)

def _get_label(self, level: int) -> Tuple[str, str]:
if level == 1:
return (_("Warning"), "⚠")
Expand Down Expand Up @@ -295,7 +309,7 @@ def set_options(self, cases: List[dict]):
self.select_warning_menu.options = options

@discord.ui.select(placeholder="Select a warning to view it.")
async def select_warning_menu(self, interaction: discord.Interaction, item:discord.ui.Select):
async def select_warning_menu(self, interaction: discord.Interaction, item: discord.ui.Select):
warning_str = lambda level, plural: {
1: (_("Warning"), _("Warnings")),
2: (_("Mute"), _("Mutes")),
Expand Down
5 changes: 4 additions & 1 deletion warnsystem/warnsystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ def __init__(self, bot: "Red"):

self.task: asyncio.Task

__version__ = "1.5.6"
__version__ = "1.5.7"
__author__ = ["retke (El Laggron)"]

# helpers
Expand Down Expand Up @@ -1003,6 +1003,9 @@ async def on_member_ban(self, guild: discord.Guild, member: discord.Member):

@commands.Cog.listener()
async def on_member_remove(self, member: discord.Member):
if not member.guild:
# bot was kicked
return
await self.on_manual_action(member.guild, member, 3)

async def on_manual_action(self, guild: discord.Guild, member: discord.Member, level: int):
Expand Down

0 comments on commit 9d33235

Please sign in to comment.