Python Discord bot

Dostlar selamlar Python ile yeni bir moderasyon botu geliştiriyorum.
Şu anda !rolver !rolkaldir !mesajsil !haberler !help yeni gelen üyeler için hoşgeldin, güle güle komutları mevcut. Bot için küfür engelleme sistemi getirmeyi düşünüyorum lakin kodunu yazdığımda diğer rol komutlarını hiçe sayıyor, sadece küfür algılamaya odaklanıyor. Nerede hata yapmış olabilirim örnek olarak !help komutunu ve küfür algılama kodunu paylaşıyorum.

import discord
import socket
import asyncio
import re
import datetime
from discord.ext import commands
from discord.utils import get
import requests
from bs4 import BeautifulSoup

# Discord botunu oluştur
intents = discord.Intents().all() # Tüm izinleri açar
intents.message_content = True

client = commands.Bot(command_prefix="!", intents=intents)
client.remove_command('help')

# Yeşil renk
green = discord.Color.green()
# Kırmızı renk
red = discord.Color.red()

# !help komutunu işle
@client.command()
async def help(ctx):
    embed = discord.Embed(title="Bot komutları", description="Aşağıdaki komutları kullanarak botu kontrol edebilirsiniz.", color=0xeee657)

    # !haberler komutunun açıklamasını ekle
    embed.add_field(name="!haberler", value="En yeni teknoloji haberleri gösterir.", inline=False)

    # !rolver komutunun açıklamasını ekle
    embed.add_field(name="!rolver @rol @kullanıcı", value="Belirtilen rolü, belirtilen kullanıcıya verir. (Sadece yetkili kullanıcılar kullanabilir)", inline=False)

    # !rolkaldir komutunun açıklamasını ekle
    embed.add_field(name="!rolkaldir @rol_adı @kullanıcı_etiketi", value="Belirtilen rolü, belirtilen kullanıcıdan alır. (Sadece yetkili kullanıcılar kullanabilir)", inline=False)

    # !sil komutunun açıklamasını ekle
    embed.add_field(name="!sil miktar", value="Belirtilen miktarda mesajı siler (Sadece yetkili kullanıcılar kullanabilir)", inline=False)

    await ctx.send(embed=embed)

kufur_kelimeleri_dosyasi = "C:\kufur_kelimeleri\kufur_kelimeleri.txt"

# Küfür kelime listesini oku
with open(kufur_kelimeleri_dosyasi, "r") as dosya:
    kufur_kelimeleri = dosya.read().splitlines()

# Küfür filtreleme fonksiyonu
def kufur_filtrele(mesaj):
    for kelime in kufur_kelimeleri:
        if kelime in mesaj.content:
            return True
    return False

# Mesaj olayını işle
@client.event
async def on_message(mesaj):
    # Eğer mesaj kendi botumuzdan geliyorsa işlem yapmayalım
    if mesaj.author == client.user:
        return
    # Küfür filtresi uygula
    if kufur_filtrele(mesaj):
        # Küfür mesajını sil
        await mesaj.delete()
        # Küfür eden üyeyi mesaj gönderememesi için 10 dakika mute et
        mesaj_gonderme_izni = discord.PermissionOverwrite()
        mesaj_gonderme_izni.send_messages = False
        await mesaj.channel.set_permissions(mesaj.author, overwrite=mesaj_gonderme_izni)
        # Mutenin verildiğine dair mesaj gönder
        await mesaj.channel.send(f"{mesaj.author.mention} kullanıcısına argo kelime kullandığından dolayı mute verildi. 🔇")
        # Mute süresini belirle
        mute_zamani = 10 * 60  # 10 dakika, 60 saniye/dakika
        # Mute süresi dolunca üyenin mute iznini kaldır
        await asyncio.sleep(mute_zamani)
        await mesaj.channel.set_permissions(mesaj.author, overwrite=None)
        # Mutenin kaldırıldığına dair mesaj gönder
        await mesaj.channel.send(f"{mesaj.author.mention} üyenin cezası bitti. 🔊")


# Botu çalıştır
client.run("TOKEN")

Dostum bu sorunu bende yaşadım tek bot üzerinden 2 işlevi çalıştırmak imkansız çünkü bot küfür engel sisteminin çalışması için aktif olarak chati denetliyor bundan dolayı diğer komutlara cevap veremiyor tek çözüm 2 tane bot açmak olucak.

Tek çözüm iki bot falan açmak değil. Konuyu hortlatmışsın cevap vereyim. Filtreleme kısmından sonra eğer mesaj prefixle başlıyorsa diyip client.process_commands(mesaj) diyebilirsin. Örnek bırakayım:

async def on_message(bot, message):
  if message.author.bot:
    return

  if not message.content.startswith(bot.prefix):
    if any(
        any(salam_word in word and len(salam_word) * 1.5 > len(word)
            for salam_word in constants.SALAM_WORDLIST)
        for word in message.content.lower().split()):
      await message.reply(random.choice(constants.SALAM_GREETINGS_WORDLIST))

    return

  await bot.process_commands(message)