mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-12-07 09:52:30 -05:00
Move modlogset/bankset commands to core (#4486)
* Move bankset and modlogset to core commands * Move prune over too * Finish moving prune * Move [p]economyset registeramount to [p]bankset registeramount * style fix * Fix circular import issue with another breaking change * Apparently I missed a conflict and git still let me commit... * Really git? * Rename RawUserIds -> RawUserIdConverter, improve documentation * Improve documentation of `is_owner_if_bank_global()` * MENTION_REGEX -> USER_MENTION_REGEX * Add 'bank.' prefix * Fix command examples in docstrings * Missing docstring change from `bankset prune` * Missing changes for commands in modlogset * Update docs * Remove duplicated info in `economyset showsettings` * Fix toctree in index.rst * Add command group prefixes to names of functions for bankset/modlogset * Remaining string updates due to command name changes * Ensure that the bank folder is actually gone Co-authored-by: palmtree5 <palmtree5+3577255@users.noreply.github.com> Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
This commit is contained in:
@@ -17,7 +17,7 @@ _ = Translator("ModLog", __file__)
|
||||
|
||||
@cog_i18n(_)
|
||||
class ModLog(commands.Cog):
|
||||
"""Manage log channels for moderation actions."""
|
||||
"""Browse and manage modlog cases."""
|
||||
|
||||
def __init__(self, bot: Red):
|
||||
super().__init__()
|
||||
@@ -27,98 +27,6 @@ class ModLog(commands.Cog):
|
||||
""" Nothing to delete """
|
||||
return
|
||||
|
||||
@commands.group()
|
||||
@checks.guildowner_or_permissions(administrator=True)
|
||||
async def modlogset(self, ctx: commands.Context):
|
||||
"""Manage modlog settings."""
|
||||
pass
|
||||
|
||||
@checks.is_owner()
|
||||
@modlogset.command(hidden=True, name="fixcasetypes")
|
||||
async def reapply_audittype_migration(self, ctx: commands.Context):
|
||||
"""Command to fix misbehaving casetypes."""
|
||||
await modlog.handle_auditype_key()
|
||||
await ctx.tick()
|
||||
|
||||
@modlogset.command(aliases=["channel"])
|
||||
@commands.guild_only()
|
||||
async def modlog(self, ctx: commands.Context, channel: discord.TextChannel = None):
|
||||
"""Set a channel as the modlog.
|
||||
|
||||
Omit `[channel]` to disable the modlog.
|
||||
"""
|
||||
guild = ctx.guild
|
||||
if channel:
|
||||
if channel.permissions_for(guild.me).send_messages:
|
||||
await modlog.set_modlog_channel(guild, channel)
|
||||
await ctx.send(
|
||||
_("Mod events will be sent to {channel}.").format(channel=channel.mention)
|
||||
)
|
||||
else:
|
||||
await ctx.send(
|
||||
_("I do not have permissions to send messages in {channel}!").format(
|
||||
channel=channel.mention
|
||||
)
|
||||
)
|
||||
else:
|
||||
try:
|
||||
await modlog.get_modlog_channel(guild)
|
||||
except RuntimeError:
|
||||
await ctx.send(_("Mod log is already disabled."))
|
||||
else:
|
||||
await modlog.set_modlog_channel(guild, None)
|
||||
await ctx.send(_("Mod log deactivated."))
|
||||
|
||||
@modlogset.command(name="cases")
|
||||
@commands.guild_only()
|
||||
async def set_cases(self, ctx: commands.Context, action: str = None):
|
||||
"""Enable or disable case creation for a mod action."""
|
||||
guild = ctx.guild
|
||||
|
||||
if action is None: # No args given
|
||||
casetypes = await modlog.get_all_casetypes(guild)
|
||||
await ctx.send_help()
|
||||
lines = []
|
||||
for ct in casetypes:
|
||||
enabled = _("enabled") if await ct.is_enabled() else _("disabled")
|
||||
lines.append(f"{ct.name} : {enabled}")
|
||||
|
||||
await ctx.send(_("Current settings:\n") + box("\n".join(lines)))
|
||||
return
|
||||
|
||||
casetype = await modlog.get_casetype(action, guild)
|
||||
if not casetype:
|
||||
await ctx.send(_("That action is not registered."))
|
||||
else:
|
||||
enabled = await casetype.is_enabled()
|
||||
await casetype.set_enabled(not enabled)
|
||||
await ctx.send(
|
||||
_("Case creation for {action_name} actions is now {enabled}.").format(
|
||||
action_name=action, enabled=_("enabled") if not enabled else _("disabled")
|
||||
)
|
||||
)
|
||||
|
||||
@modlogset.command()
|
||||
@commands.guild_only()
|
||||
async def resetcases(self, ctx: commands.Context):
|
||||
"""Reset all modlog cases in this server."""
|
||||
guild = ctx.guild
|
||||
await ctx.send(
|
||||
_("Are you sure you would like to reset all modlog cases in this server?")
|
||||
+ " (yes/no)"
|
||||
)
|
||||
try:
|
||||
pred = MessagePredicate.yes_or_no(ctx, user=ctx.author)
|
||||
msg = await ctx.bot.wait_for("message", check=pred, timeout=30)
|
||||
except asyncio.TimeoutError:
|
||||
await ctx.send(_("You took too long to respond."))
|
||||
return
|
||||
if pred.result:
|
||||
await modlog.reset_cases(guild)
|
||||
await ctx.send(_("Cases have been reset."))
|
||||
else:
|
||||
await ctx.send(_("No changes have been made."))
|
||||
|
||||
@commands.command()
|
||||
@commands.guild_only()
|
||||
async def case(self, ctx: commands.Context, number: int):
|
||||
|
||||
Reference in New Issue
Block a user