Refactor SilentMode Cog to improve message sending functionality. Replace direct method assignment with functools.partialmethod for better compatibility. Update _silent_send method to accept the messageable parameter, ensuring correct message context when sending silent messages.
Some checks are pending
Run pre-commit / Run pre-commit (push) Waiting to run

This commit is contained in:
Valerie 2025-05-24 03:16:59 -04:00
parent 32401f31d8
commit e549698124

View file

@ -2,6 +2,7 @@ from redbot.core import commands
from discord.ext.commands import Cog
from redbot.core.bot import Red
import discord
import functools
class SilentMode(commands.Cog):
@ -10,13 +11,13 @@ class SilentMode(commands.Cog):
def __init__(self, bot: Red):
self.bot = bot
self.original_send = discord.abc.Messageable.send
discord.abc.Messageable.send = self._silent_send
discord.abc.Messageable.send = functools.partialmethod(self._silent_send)
def cog_unload(self):
"""Restore the original send method when the cog is unloaded."""
discord.abc.Messageable.send = self.original_send
async def _silent_send(self, *args, **kwargs):
async def _silent_send(self, messageable, *args, **kwargs):
"""Override the send method to add @silent to every message."""
if args and isinstance(args[0], str):
args = ("@silent " + args[0],) + args[1:]
@ -25,7 +26,7 @@ class SilentMode(commands.Cog):
elif not kwargs.get("content") and (kwargs.get("embed") or kwargs.get("file")):
kwargs["content"] = "@silent"
return await self.original_send(self, *args, **kwargs)
return await self.original_send(messageable, *args, **kwargs)
async def setup(bot: Red):