misc(aurora): use redbot chat_formatting for errors and warnings

This commit is contained in:
Seaswimmer 2024-01-05 09:21:05 +00:00
parent 1f4254e9ca
commit 8129fee36a
Signed by untrusted user: cswimr
GPG key ID: D74DDDDF420E13DF
4 changed files with 48 additions and 47 deletions

View file

@ -18,7 +18,7 @@ from discord.ext import tasks
from pytimeparse2 import disable_dateutil, parse from pytimeparse2 import disable_dateutil, parse
from redbot.core import app_commands, checks, commands, data_manager from redbot.core import app_commands, checks, commands, data_manager
from redbot.core.app_commands import Choice from redbot.core.app_commands import Choice
from redbot.core.utils.chat_formatting import box from redbot.core.utils.chat_formatting import box, error, warning
from .importers.galacticbot import ImportGalacticBotView from .importers.galacticbot import ImportGalacticBotView
from .importers.aurora import ImportAuroraView from .importers.aurora import ImportAuroraView
@ -233,7 +233,7 @@ class Aurora(commands.Cog):
blacklist_roles = await config.guild(interaction.guild).blacklist_roles() blacklist_roles = await config.guild(interaction.guild).blacklist_roles()
if not blacklist_roles: if not blacklist_roles:
await interaction.response.send_message(content="There are no blacklist types set for this server!", ephemeral=True) await interaction.response.send_message(content=error("There are no blacklist types set for this server!"), ephemeral=True)
return return
matching_role = None matching_role = None
@ -244,14 +244,14 @@ class Aurora(commands.Cog):
break break
if not matching_role: if not matching_role:
await interaction.response.send_message(content="Please provide a valid blacklist type!", ephemeral=True) await interaction.response.send_message(content=error("Please provide a valid blacklist type!"), ephemeral=True)
return return
if not await check_moddable(target, interaction, ['moderate_members', 'manage_roles']): if not await check_moddable(target, interaction, ['moderate_members', 'manage_roles']):
return return
if role in [role.id for role in target.roles]: if role in [role.id for role in target.roles]:
await interaction.response.send_message(content=f"{target.mention} already has the blacklist role!", ephemeral=True) await interaction.response.send_message(content=error(f"{target.mention} already has the blacklist role!"), ephemeral=True)
return return
if silent is None: if silent is None:
@ -292,17 +292,17 @@ class Aurora(commands.Cog):
return return
if target.is_timed_out() is True: if target.is_timed_out() is True:
await interaction.response.send_message(f"{target.mention} is already muted!", allowed_mentions=discord.AllowedMentions(users=False), ephemeral=True) await interaction.response.send_message(error(f"{target.mention} is already muted!"), allowed_mentions=discord.AllowedMentions(users=False), ephemeral=True)
return return
try: try:
parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True) parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True)
except ValueError: except ValueError:
await interaction.response.send_message("Please provide a valid duration!", ephemeral=True) await interaction.response.send_message(error("Please provide a valid duration!"), ephemeral=True)
return return
if parsed_time.total_seconds() / 1000 > 2419200000: if parsed_time.total_seconds() / 1000 > 2419200000:
await interaction.response.send_message("Please provide a duration that is less than 28 days.") await interaction.response.send_message(error("Please provide a duration that is less than 28 days."))
return return
await target.timeout(parsed_time, reason=f"Muted by {interaction.user.id} for: {reason}") await target.timeout(parsed_time, reason=f"Muted by {interaction.user.id} for: {reason}")
@ -341,7 +341,7 @@ class Aurora(commands.Cog):
return return
if target.is_timed_out() is False: if target.is_timed_out() is False:
await interaction.response.send_message(f"{target.mention} is not muted!", allowed_mentions=discord.AllowedMentions(users=False), ephemeral=True) await interaction.response.send_message(error(f"{target.mention} is not muted!"), allowed_mentions=discord.AllowedMentions(users=False), ephemeral=True)
return return
if reason: if reason:
@ -437,7 +437,7 @@ class Aurora(commands.Cog):
try: try:
await interaction.guild.fetch_ban(target) await interaction.guild.fetch_ban(target)
await interaction.response.send_message(content=f"{target.mention} is already banned!", ephemeral=True) await interaction.response.send_message(content=error(f"{target.mention} is already banned!"), ephemeral=True)
return return
except discord.errors.NotFound: except discord.errors.NotFound:
pass pass
@ -446,7 +446,7 @@ class Aurora(commands.Cog):
try: try:
parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True) parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True)
except ValueError: except ValueError:
await interaction.response.send_message("Please provide a valid duration!", ephemeral=True) await interaction.response.send_message(error("Please provide a valid duration!"), ephemeral=True)
return return
await interaction.response.send_message(content=f"{target.mention} has been banned for {humanize.precisedelta(parsed_time)}!\n**Reason** - `{reason}`") await interaction.response.send_message(content=f"{target.mention} has been banned for {humanize.precisedelta(parsed_time)}!\n**Reason** - `{reason}`")
@ -504,7 +504,7 @@ class Aurora(commands.Cog):
try: try:
await interaction.guild.fetch_ban(target) await interaction.guild.fetch_ban(target)
except discord.errors.NotFound: except discord.errors.NotFound:
await interaction.response.send_message(content=f"{target.mention} is not banned!", ephemeral=True) await interaction.response.send_message(content=error(f"{target.mention} is not banned!"), ephemeral=True)
return return
if reason: if reason:
@ -576,7 +576,7 @@ class Aurora(commands.Cog):
permissions = check_permissions(interaction.client.user, ['embed_links'], interaction) permissions = check_permissions(interaction.client.user, ['embed_links'], interaction)
if permissions: if permissions:
await interaction.followup.send(f"I do not have the `{permissions}` permission, required for this action.", ephemeral=True) await interaction.followup.send(error(f"I do not have the `{permissions}` permission, required for this action."), ephemeral=True)
return return
database = connect() database = connect()
@ -602,7 +602,7 @@ class Aurora(commands.Cog):
os.remove(filename) os.remove(filename)
except json.JSONDecodeError as e: except json.JSONDecodeError as e:
await interaction.followup.send(content=f"An error occured while exporting the moderation history.\nError:\n" + box(e, 'py'), ephemeral=ephemeral) await interaction.followup.send(content=error(f"An error occured while exporting the moderation history.\nError:\n") + box(e, 'py'), ephemeral=ephemeral)
cursor.close() cursor.close()
database.close() database.close()
return return
@ -699,7 +699,7 @@ class Aurora(commands.Cog):
Reason for resolving case""" Reason for resolving case"""
permissions = check_permissions(interaction.client.user, ['embed_links', 'moderate_members', 'ban_members'], interaction) permissions = check_permissions(interaction.client.user, ['embed_links', 'moderate_members', 'ban_members'], interaction)
if permissions: if permissions:
await interaction.response.send_message(f"I do not have the `{permissions}` permission, required for this action.", ephemeral=True) await interaction.response.send_message(error(f"I do not have the `{permissions}` permission, required for this action."), ephemeral=True)
return return
database = connect() database = connect()
@ -709,14 +709,14 @@ class Aurora(commands.Cog):
cursor.execute(query_1, (case,)) cursor.execute(query_1, (case,))
result_1 = cursor.fetchone() result_1 = cursor.fetchone()
if result_1 is None or case == 0: if result_1 is None or case == 0:
await interaction.response.send_message(content=f"There is no moderation with a case number of {case}.", ephemeral=True) await interaction.response.send_message(content=error(f"There is no moderation with a case number of {case}."), ephemeral=True)
return return
query_2 = f"SELECT * FROM moderation_{interaction.guild.id} WHERE moderation_id = ? AND resolved = 0;" query_2 = f"SELECT * FROM moderation_{interaction.guild.id} WHERE moderation_id = ? AND resolved = 0;"
cursor.execute(query_2, (case,)) cursor.execute(query_2, (case,))
result_2 = cursor.fetchone() result_2 = cursor.fetchone()
if result_2 is None: if result_2 is None:
await interaction.response.send_message(content=f"This moderation has already been resolved!\nUse `/case {case}` for more information.", ephemeral=True) await interaction.response.send_message(content=error(f"This moderation has already been resolved!\nUse `/case {case}` for more information."), ephemeral=True)
return return
case_dict = generate_dict(result_2) case_dict = generate_dict(result_2)
@ -725,7 +725,7 @@ class Aurora(commands.Cog):
changes: list = case_dict['changes'] changes: list = case_dict['changes']
if len(changes) > 25: if len(changes) > 25:
await interaction.response.send_message(content="Due to limitations with Discord's embed system, you cannot edit a case more than 25 times.", ephemeral=True) await interaction.response.send_message(content=error("Due to limitations with Discord's embed system, you cannot edit a case more than 25 times."), ephemeral=True)
return return
if not changes: if not changes:
changes.append( changes.append(
@ -746,7 +746,7 @@ class Aurora(commands.Cog):
) )
if case_dict['moderation_type'] in ['UNMUTE', 'UNBAN']: if case_dict['moderation_type'] in ['UNMUTE', 'UNBAN']:
await interaction.response.send_message(content="You cannot resolve this type of moderation!", ephemeral=True) await interaction.response.send_message(content=error("You cannot resolve this type of moderation!"), ephemeral=True)
if case_dict['moderation_type'] in ['MUTE', 'TEMPBAN', 'BAN']: if case_dict['moderation_type'] in ['MUTE', 'TEMPBAN', 'BAN']:
if case_dict['moderation_type'] == 'MUTE': if case_dict['moderation_type'] == 'MUTE':
@ -799,7 +799,7 @@ class Aurora(commands.Cog):
Export the case to a JSON file or codeblock""" Export the case to a JSON file or codeblock"""
permissions = check_permissions(interaction.client.user, ['embed_links'], interaction) permissions = check_permissions(interaction.client.user, ['embed_links'], interaction)
if permissions: if permissions:
await interaction.response.send_message(f"I do not have the `{permissions}` permission, required for this action.", ephemeral=True) await interaction.response.send_message(error(f"I do not have the `{permissions}` permission, required for this action."), ephemeral=True)
return return
if ephemeral is None: if ephemeral is None:
@ -818,7 +818,7 @@ class Aurora(commands.Cog):
json.dump(case_dict, f, indent=2) json.dump(case_dict, f, indent=2)
if export.value == 'codeblock': if export.value == 'codeblock':
content = f"Case #{case:,} exported.\n*Case was too large to export as codeblock, so it has been uploaded as a `.json` file.*" content = f"Case #{case:,} exported.\n" + warning("Case was too large to export as codeblock, so it has been uploaded as a `.json` file.")
else: else:
content = f"Case #{case:,} exported." content = f"Case #{case:,} exported."
@ -854,7 +854,7 @@ class Aurora(commands.Cog):
What is the new duration? Does not reapply the moderation if it has already expired.""" What is the new duration? Does not reapply the moderation if it has already expired."""
permissions = check_permissions(interaction.client.user, ['embed_links'], interaction) permissions = check_permissions(interaction.client.user, ['embed_links'], interaction)
if permissions: if permissions:
await interaction.response.send_message(f"I do not have the `{permissions}` permission, required for this action.", ephemeral=True) await interaction.response.send_message(error(f"I do not have the `{permissions}` permission, required for this action."), ephemeral=True)
return return
if case != 0: if case != 0:
@ -865,14 +865,14 @@ class Aurora(commands.Cog):
try: try:
parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True) parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True)
except ValueError: except ValueError:
await interaction.response.send_message("Please provide a valid duration!", ephemeral=True) await interaction.response.send_message(error("Please provide a valid duration!"), ephemeral=True)
return return
end_timestamp = case_dict['timestamp'] + parsed_time.total_seconds() end_timestamp = case_dict['timestamp'] + parsed_time.total_seconds()
if case_dict['moderation_type'] == 'MUTE': if case_dict['moderation_type'] == 'MUTE':
if (time.time() - case_dict['timestamp']) + parsed_time.total_seconds() > 2419200: if (time.time() - case_dict['timestamp']) + parsed_time.total_seconds() > 2419200:
await interaction.response.send_message("Please provide a duration that is less than 28 days from the initial moderation.") await interaction.response.send_message(error("Please provide a duration that is less than 28 days from the initial moderation."))
return return
try: try:
@ -884,7 +884,7 @@ class Aurora(commands.Cog):
changes: list = case_dict['changes'] changes: list = case_dict['changes']
if len(changes) > 25: if len(changes) > 25:
await interaction.response.send_message(content="Due to limitations with Discord's embed system, you cannot edit a case more than 25 times.", ephemeral=True) await interaction.response.send_message(content=error("Due to limitations with Discord's embed system, you cannot edit a case more than 25 times."), ephemeral=True)
return return
if not changes: if not changes:
changes.append( changes.append(
@ -940,7 +940,7 @@ class Aurora(commands.Cog):
cursor.close() cursor.close()
database.close() database.close()
return return
await interaction.response.send_message(content=f"No case with case number `{case}` found.", ephemeral=True) await interaction.response.send_message(content=error(f"No case with case number `{case}` found."), ephemeral=True)
@tasks.loop(minutes=1) @tasks.loop(minutes=1)
async def handle_expiry(self): async def handle_expiry(self):
@ -1101,10 +1101,10 @@ class Aurora(commands.Cog):
async def auroraset_user_history_inline_pagesize(self, ctx: commands.Context, pagesize: int): async def auroraset_user_history_inline_pagesize(self, ctx: commands.Context, pagesize: int):
"""Set the amount of cases to display per page.""" """Set the amount of cases to display per page."""
if pagesize > 20: if pagesize > 20:
await ctx.send("Pagesize cannot be greater than 20!") await ctx.send(error("Pagesize cannot be greater than 20!"))
return return
if pagesize < 1: if pagesize < 1:
await ctx.send("Pagesize cannot be less than 1!") await ctx.send(error("Pagesize cannot be less than 1!"))
return return
await config.user(ctx.author).history_inline_pagesize.set(pagesize) await config.user(ctx.author).history_inline_pagesize.set(pagesize)
await ctx.send(f"Inline pagesize set to {await config.user(ctx.author).history_inline_pagesize()}") await ctx.send(f"Inline pagesize set to {await config.user(ctx.author).history_inline_pagesize()}")
@ -1181,7 +1181,7 @@ class Aurora(commands.Cog):
"""Add a role to the immune roles list.""" """Add a role to the immune roles list."""
immune_roles: list = await config.guild(ctx.guild).immune_roles() immune_roles: list = await config.guild(ctx.guild).immune_roles()
if role.id in immune_roles: if role.id in immune_roles:
await ctx.send("Role is already immune!") await ctx.send(error("Role is already immune!"))
return return
immune_roles.append(role.id) immune_roles.append(role.id)
await config.guild(ctx.guild).immune_roles.set(immune_roles) await config.guild(ctx.guild).immune_roles.set(immune_roles)
@ -1193,7 +1193,7 @@ class Aurora(commands.Cog):
"""Remove a role from the immune roles list.""" """Remove a role from the immune roles list."""
immune_roles: list = await config.guild(ctx.guild).immune_roles() immune_roles: list = await config.guild(ctx.guild).immune_roles()
if role.id not in immune_roles: if role.id not in immune_roles:
await ctx.send("Role is not immune!") await ctx.send(error("Role is not immune!"))
return return
immune_roles.remove(role.id) immune_roles.remove(role.id)
await config.guild(ctx.guild).immune_roles.set(immune_roles) await config.guild(ctx.guild).immune_roles.set(immune_roles)
@ -1228,13 +1228,13 @@ class Aurora(commands.Cog):
blacklist_roles: list = await config.guild(ctx.guild).blacklist_roles() blacklist_roles: list = await config.guild(ctx.guild).blacklist_roles()
for blacklist_role in blacklist_roles: for blacklist_role in blacklist_roles:
if role.id == blacklist_role['role']: if role.id == blacklist_role['role']:
await ctx.send("Role already has an associated blacklist type!") await ctx.send(error("Role already has an associated blacklist type!"))
return return
try: try:
parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True) parsed_time = parse(sval=duration, as_timedelta=True, raise_exception=True)
except ValueError: except ValueError:
await ctx.send("Please provide a valid duration!") await ctx.send(error("Please provide a valid duration!"))
return return
blacklist_roles.append( blacklist_roles.append(
@ -1257,7 +1257,7 @@ class Aurora(commands.Cog):
await config.guild(ctx.guild).blacklist_roles.set(blacklist_roles) await config.guild(ctx.guild).blacklist_roles.set(blacklist_roles)
await ctx.send(f"Role {role.mention} removed from blacklist types.", allowed_mentions=discord.AllowedMentions.none()) await ctx.send(f"Role {role.mention} removed from blacklist types.", allowed_mentions=discord.AllowedMentions.none())
return return
await ctx.send("Role does not have an associated blacklist type!") await ctx.send(error("Role does not have an associated blacklist type!"))
@auroraset_blacklist.command(name='list') @auroraset_blacklist.command(name='list')
@checks.admin() @checks.admin()
@ -1308,7 +1308,7 @@ class Aurora(commands.Cog):
await ctx.send(f"Logging channel set to {channel.mention}.") await ctx.send(f"Logging channel set to {channel.mention}.")
else: else:
await config.guild(ctx.guild).log_channel.set(" ") await config.guild(ctx.guild).log_channel.set(" ")
await ctx.send("Logging channel disabled.") await ctx.send(warning("Logging channel disabled."))
@auroraset.command(name="showmoderator") @auroraset.command(name="showmoderator")
@checks.admin() @checks.admin()
@ -1327,20 +1327,20 @@ class Aurora(commands.Cog):
async def auroraset_import_aurora(self, ctx: commands.Context): async def auroraset_import_aurora(self, ctx: commands.Context):
"""Import moderations from another bot using Aurora.""" """Import moderations from another bot using Aurora."""
if ctx.message.attachments and ctx.message.attachments[0].content_type == 'application/json; charset=utf-8': if ctx.message.attachments and ctx.message.attachments[0].content_type == 'application/json; charset=utf-8':
message = await ctx.send("Are you sure you want to import moderations from another bot?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*") message = await ctx.send(warning("Are you sure you want to import moderations from another bot?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*"))
await message.edit(view=ImportAuroraView(60, ctx, message)) await message.edit(view=ImportAuroraView(60, ctx, message))
else: else:
await ctx.send("Please provide a valid Aurora export file.") await ctx.send(error("Please provide a valid Aurora export file."))
@auroraset_import.command(name="galacticbot") @auroraset_import.command(name="galacticbot")
@checks.admin() @checks.admin()
async def auroraset_import_galacticbot(self, ctx: commands.Context): async def auroraset_import_galacticbot(self, ctx: commands.Context):
"""Import moderations from GalacticBot.""" """Import moderations from GalacticBot."""
if ctx.message.attachments and ctx.message.attachments[0].content_type == 'application/json; charset=utf-8': if ctx.message.attachments and ctx.message.attachments[0].content_type == 'application/json; charset=utf-8':
message = await ctx.send("Are you sure you want to import GalacticBot moderations?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*") message = await ctx.send(warning("Are you sure you want to import GalacticBot moderations?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*"))
await message.edit(view=ImportGalacticBotView(60, ctx, message)) await message.edit(view=ImportGalacticBotView(60, ctx, message))
else: else:
await ctx.send("Please provide a valid GalacticBot moderation export file.") await ctx.send(error("Please provide a valid GalacticBot moderation export file."))
@commands.command(aliases=["tdc"]) @commands.command(aliases=["tdc"])
async def timedeltaconvert(self, ctx: commands.Context, *, duration: str): async def timedeltaconvert(self, ctx: commands.Context, *, duration: str):
@ -1354,4 +1354,4 @@ class Aurora(commands.Cog):
parsed_time = parse(duration, as_timedelta=True, raise_exception=True) parsed_time = parse(duration, as_timedelta=True, raise_exception=True)
await ctx.send(f"`{str(parsed_time)}`") await ctx.send(f"`{str(parsed_time)}`")
except ValueError: except ValueError:
await ctx.send("Please provide a convertible value!") await ctx.send(error("Please provide a convertible value!"))

View file

@ -4,7 +4,7 @@ from typing import Dict
from discord import ButtonStyle, Interaction, Message, ui from discord import ButtonStyle, Interaction, Message, ui
from redbot.core import commands from redbot.core import commands
from redbot.core.utils.chat_formatting import box from redbot.core.utils.chat_formatting import box, warning
from ..utilities.database import connect, create_guild_table, mysql_log from ..utilities.database import connect, create_guild_table, mysql_log
@ -101,7 +101,7 @@ class ImportAuroraView(ui.View):
await interaction.edit_original_response(content="Import complete.") await interaction.edit_original_response(content="Import complete.")
if failed_cases: if failed_cases:
await interaction.edit_original_response( await interaction.edit_original_response(
content=f"Import complete.\n*Failed to import the following cases:*\n" + box(failed_cases) content=f"Import complete.\n" + warning("Failed to import the following cases:\n") + box(failed_cases)
) )
@ui.button(label="No", style=ButtonStyle.danger) @ui.button(label="No", style=ButtonStyle.danger)

View file

@ -3,7 +3,7 @@ from datetime import timedelta
from discord import ButtonStyle, Interaction, Message, ui from discord import ButtonStyle, Interaction, Message, ui
from redbot.core import commands from redbot.core import commands
from redbot.core.utils.chat_formatting import box from redbot.core.utils.chat_formatting import box, warning
from ..utilities.database import connect, create_guild_table, mysql_log from ..utilities.database import connect, create_guild_table, mysql_log
@ -137,7 +137,7 @@ class ImportGalacticBotView(ui.View):
await interaction.edit_original_response(content="Import complete.") await interaction.edit_original_response(content="Import complete.")
if failed_cases: if failed_cases:
await interaction.edit_original_response(content=f"Import complete.\n*Failed to import the following cases:*\n" + box(failed_cases)) await interaction.edit_original_response(content=f"Import complete.\n" + warning("Failed to import the following cases:\n") + box(failed_cases))
@ui.button(label="No", style=ButtonStyle.danger) @ui.button(label="No", style=ButtonStyle.danger)
async def import_button_n(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument async def import_button_n(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument

View file

@ -7,6 +7,7 @@ from typing import Union
from discord import Guild, Interaction, Member, User from discord import Guild, Interaction, Member, User
from discord.errors import Forbidden, NotFound from discord.errors import Forbidden, NotFound
from redbot.core import commands from redbot.core import commands
from redbot.core.utils.chat_formatting import error
from .config import config from .config import config
@ -45,7 +46,7 @@ async def check_moddable(
"""Checks if a moderator can moderate a target.""" """Checks if a moderator can moderate a target."""
if check_permissions(interaction.client.user, permissions, guild=interaction.guild): if check_permissions(interaction.client.user, permissions, guild=interaction.guild):
await interaction.response.send_message( await interaction.response.send_message(
f"I do not have the `{permissions}` permission, required for this action.", error(f"I do not have the `{permissions}` permission, required for this action."),
ephemeral=True, ephemeral=True,
) )
return False return False
@ -53,7 +54,7 @@ async def check_moddable(
if await config.guild(interaction.guild).use_discord_permissions() is True: if await config.guild(interaction.guild).use_discord_permissions() is True:
if check_permissions(interaction.user, permissions, guild=interaction.guild): if check_permissions(interaction.user, permissions, guild=interaction.guild):
await interaction.response.send_message( await interaction.response.send_message(
f"You do not have the `{permissions}` permission, required for this action.", error(f"You do not have the `{permissions}` permission, required for this action."),
ephemeral=True, ephemeral=True,
) )
return False return False
@ -73,7 +74,7 @@ async def check_moddable(
if isinstance(target, Member): if isinstance(target, Member):
if interaction.user.top_role <= target.top_role: if interaction.user.top_role <= target.top_role:
await interaction.response.send_message( await interaction.response.send_message(
content="You cannot moderate members with a higher role than you!", content=error("You cannot moderate members with a higher role than you!"),
ephemeral=True, ephemeral=True,
) )
return False return False
@ -83,7 +84,7 @@ async def check_moddable(
<= target.top_role <= target.top_role
): ):
await interaction.response.send_message( await interaction.response.send_message(
content="You cannot moderate members with a role higher than the bot!", content=error("You cannot moderate members with a role higher than the bot!"),
ephemeral=True, ephemeral=True,
) )
return False return False
@ -93,7 +94,7 @@ async def check_moddable(
for role in target.roles: for role in target.roles:
if role.id in immune_roles: if role.id in immune_roles:
await interaction.response.send_message( await interaction.response.send_message(
content="You cannot moderate members with an immune role!", content=error("You cannot moderate members with an immune role!"),
ephemeral=True, ephemeral=True,
) )
return False return False