Wie kann ich das machen? | Thread Messages

import discord
from discord.ext import commands

class 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 discord
from discord.ext import commands

class 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))
3 Replies
Bl4cklist🔥System
:hack: - Danke für deine Frage! › Unsere Community freut sich schon, dir bei deinem Problem weiterzuhelfen! Sei so lieb und unterstütze die Personen welche dir weitergeholfen in dem du die Antwort welche das Problem lösen konnte akzeptierst. - :accept: = Akzeptiert die Antwort und markiert dein Problem als gelöst. Alternativ kannst du auch /solved verwenden, falls du es selbst herausgefunden hast. Pushe deinen Post für mehr Aufmerksamkeit mit /push. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
!Leon.dev
!Leon.devOP4mo ago
Schade hab gerade hier [https://github.com/discord/discord-api-docs/issues/6108] gelesen, dass das gar nicht geht
Bl4cklist🔥System
- Problem selbst gelöst: Der Ersteller dieser Frage hat das Problem selbst gelöst.

Did you find this page helpful?