Приветствую!
Перво-наперво, если вы делаете команды, всегда нужен intent под название message_content, если вы используете discord.py версии 2.0 и выше.
Вот ваш исправленный код:
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print('Бот готов')
@bot.command()
@commands.has_permissions(ban_members=True)
async def ban(ctx, member: discord.Member, time: int, *, reason=None):
guild = ctx.guild
if not guild.me.guild_permissions.ban_members:
return await ctx.send('У меня нет прав на бан пользователей!')
await member.ban(reason=reason)
await ctx.send(f'Пользователь {member.mention} успешно забанен на {time} час(ов) по причине: {reason or "Не указана"}')
await discord.utils.sleep_until(ctx.message.created_at + discord.timedelta(hours=time))
await member.unban(reason='Истекло время бана')
bot.run('ВАШ_ТОКЕН')