Хорошо, вы должны понимать, что переопределение значения по умолчанию on_message запрещает запуск любых дополнительных команд.
Простое решение этой проблемы - добавить client.process_commands(message)
в конец события on_message. Итак, в вашем случае:
import discord
from discord.ext import commands
from dotenv import load_dotenv
load_dotenv('.env.txt')
TOKEN = os.getenv('DISCORD_TOKEN')
client = commands.Bot(command_prefix = '.')
@client.event
async def on_ready():
print(f'{client.user} has connected to Discord!')
@client.event
async def on_message(message):
print(f'{client.user} has sent a message')
client.process_commands(message)
@client.command()
async def ping(ctx):
print('test')
await ctx.send('test')
client.run(TOKEN)```