import discordfrom discord.ext import commandsclass ThreadMessageCleaner(commands.Cog): def __init__(self, bot): self.bot = bot @commands.Cog.listener() async def on_message(self, message): # Check if we're in a thread if not isinstance(message.channel, discord.Thread): return # List of system message types to delete system_message_types = [ discord.MessageType.channel_name_change, # Thread edit messages discord.MessageType.thread_created, # Thread creation messages discord.MessageType.recipient_add, # Member add messages discord.MessageType.recipient_remove # Member remove messages ] # For discord.py 2.0+, if thread_member_join and thread_member_leave exist, use them try: # Try to access these attributes (will work in newer versions) system_message_types.append(discord.MessageType.thread_member_join) system_message_types.append(discord.MessageType.thread_member_leave) except AttributeError: # Handle older discord.py versions pass # Check if the message is a system message we want to delete if message.type in system_message_types: try: await message.delete() print(f"Deleted system message in thread {message.channel.name}") except discord.Forbidden: print("Missing permissions to delete message") except discord.NotFound: print("Message was already deleted") except Exception as e: print(f"Error deleting message: {e}")async def setup(bot): await bot.add_cog(ThreadMessageCleaner(bot))
import discordfrom discord.ext import commandsclass ThreadMessageCleaner(commands.Cog): def __init__(self, bot): self.bot = bot @commands.Cog.listener() async def on_message(self, message): # Check if we're in a thread if not isinstance(message.channel, discord.Thread): return # List of system message types to delete system_message_types = [ discord.MessageType.channel_name_change, # Thread edit messages discord.MessageType.thread_created, # Thread creation messages discord.MessageType.recipient_add, # Member add messages discord.MessageType.recipient_remove # Member remove messages ] # For discord.py 2.0+, if thread_member_join and thread_member_leave exist, use them try: # Try to access these attributes (will work in newer versions) system_message_types.append(discord.MessageType.thread_member_join) system_message_types.append(discord.MessageType.thread_member_leave) except AttributeError: # Handle older discord.py versions pass # Check if the message is a system message we want to delete if message.type in system_message_types: try: await message.delete() print(f"Deleted system message in thread {message.channel.name}") except discord.Forbidden: print("Missing permissions to delete message") except discord.NotFound: print("Message was already deleted") except Exception as e: print(f"Error deleting message: {e}")async def setup(bot): await bot.add_cog(ThreadMessageCleaner(bot))
Similar Threads
Recent Announcements
Continue the conversation
Join the Discord to ask follow-up questions and connect with the community
B
BL4CKLIST・CODING
🔥 ~ LERNE PROGRAMMIEREN! Egal ob Anfänger oder Fortgeschritten: Wir bieten Coding-Hilfe, verständliche Tutorials & eine nette Community 💖