fix(moderation): made dm_users and ignore_other_bots guild-dependent
All checks were successful
Pylint / Pylint (push) Successful in 1m13s

This commit is contained in:
Seaswimmer 2023-10-05 20:09:42 -04:00
parent 25ac0a3c0c
commit 90e0a4b153
No known key found for this signature in database
GPG key ID: 5019678FD9CF50D8

View file

@ -21,7 +21,9 @@ class Moderation(commands.Cog):
mysql_address= " ",
mysql_database = " ",
mysql_username = " ",
mysql_password = " ",
mysql_password = " "
)
self.config.register_guild(
ignore_other_bots = True,
dm_users = True
)
@ -69,7 +71,7 @@ class Moderation(commands.Cog):
@commands.Cog.listener('on_audit_log_entry_create')
async def autologger(self, entry: discord.AuditLogEntry):
"""This method automatically logs moderations done by users manually ("right clicks")."""
if await self.config.ignore_other_bots() is True:
if await self.config.guild(entry.guild.id).ignore_other_bots() is True:
if entry.user.bot or entry.target.bot:
return
else:
@ -223,7 +225,7 @@ class Moderation(commands.Cog):
"""Add a note to a user."""
await interaction.response.send_message(content=f"{target.mention} has recieved a note!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'note', await interaction.original_response())
@ -237,7 +239,7 @@ class Moderation(commands.Cog):
"""Warn a user."""
await interaction.response.send_message(content=f"{target.mention} has been warned!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'warned', await interaction.original_response())
@ -263,7 +265,7 @@ class Moderation(commands.Cog):
await target.timeout(parsed_time, reason=f"Muted by {interaction.user.id} for: {reason}")
await interaction.response.send_message(content=f"{target.mention} has been muted for {humanize.precisedelta(parsed_time)}!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'muted', await interaction.original_response(), parsed_time)
@ -285,7 +287,7 @@ class Moderation(commands.Cog):
reason = "No reason given."
await interaction.response.send_message(content=f"{target.mention} has been unmuted!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'unmuted', await interaction.original_response())
@ -299,7 +301,7 @@ class Moderation(commands.Cog):
"""Kick a user."""
await interaction.response.send_message(content=f"{target.mention} has been kicked!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'kicked', await interaction.original_response())
@ -343,7 +345,7 @@ class Moderation(commands.Cog):
else:
await interaction.response.send_message(content=f"{target.mention} has been banned!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'banned', await interaction.original_response())
@ -368,7 +370,7 @@ class Moderation(commands.Cog):
reason = "No reason given."
await interaction.response.send_message(content=f"{target.mention} has been unbanned!\n**Reason** - `{reason}`")
if silent is None:
silent = not await self.config.dm_users()
silent = not await self.config.guild(interaction.guild.id).dm_users()
if silent is False:
try:
embed = await self.embed_factory('message', interaction.guild, reason, 'unbanned', await interaction.original_response())
@ -505,8 +507,8 @@ class Moderation(commands.Cog):
@checks.admin()
async def moderationset_ignorebots(self, ctx: commands.Context):
"""Toggle if the cog should ignore other bots' moderations."""
await self.config.ignore_other_bots.set(not await self.config.ignore_other_bots())
await ctx.send(f"Ignore bots setting set to {await self.config.ignore_other_bots()}")
await self.config.guild(ctx.guild.id).ignore_other_bots.set(not await self.config.guild(ctx.guild.id).ignore_other_bots())
await ctx.send(f"Ignore bots setting set to {await self.config.guild(ctx.guild.id).ignore_other_bots()}")
@moderationset.command(name="dm")
@checks.admin()
@ -514,8 +516,8 @@ class Moderation(commands.Cog):
"""Toggle automatically messaging moderated users.
This option can be overridden by specifying the `silent` argument in any moderation command."""
await self.config.dm_users.set(not await self.config.dm_users())
await ctx.send(f"DM users setting set to {await self.config.dm_users()}")
await self.config.guild(ctx.guild.id).dm_users.set(not await self.config.guild(ctx.guild.id).dm_users())
await ctx.send(f"DM users setting set to {await self.config.guild(ctx.guild.id).dm_users()}")
@moderationset.command(name="mysql")
@checks.is_owner()