Gleb_PC
@Gleb_PC

Как исправить ошибку AttributeError: 'Client' object has no attribute 'command'?

Мне понадобился бот который кикнет определённых участников с сервера. Вот мой простейший код:
import discord

from discord.ext import commands
from discord.utils import get
from discord.ext.commands import Bot

config = {

'token': 'Токен',
'prefix': '>',


}
client = discord.Client(intents=discord.Intents.default())
intents = discord.Intents.all()
bot = commands.Bot(command_prefix= ">", intents=intents)

@bot.command()
async def Проверка(ctx):
    
     await ctx.send("Бот работает" )

@client.command(pass_context = True)
async def kick(ctx, member: discord.Member, *, reason = None):
    await ctx.channel.purge()
    await member.kick(reason = reason)

    

bot.run(config['token'])


Выходит ошибка: AttributeError: 'Client' object has no attribute 'command'. Надо учитывать что я полный ноль в написании ботов для дискорда и самостоятельно поправить код не в силах.
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
@AlmazZzik
Приветствую!
Исправил ваш код(ниже будет)

Вместо client.command - bot.command

Также посоветую убрать:
await ctx.channel.purge()

Опасная штука : )

import discord

from discord.ext import commands
from discord.utils import get
from discord.ext.commands import Bot

config = {

'token': 'Токен',
'prefix': '>',


}

intents = discord.Intents.all()
client = discord.Client(intents=discord.Intents.default())
bot = commands.Bot(command_prefix= ">", intents=intents)

@bot.command()
async def Проверка(ctx):
    await ctx.send("Бот работает" )

@bot.command(pass_context = True)
async def kick(ctx, member: discord.Member, *, reason = None):
    await ctx.channel.purge()
    await member.kick(reason = reason)

bot.run(config['token'])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@veselchak0ff
Привет, насколько я знаю, это все делается не через client.command, а через bot.command, собстна, чтобы заблокировать пользователя, можно сделать так:
#перед этим, нужно задать id ролей которые могут делать эту команду
#@commands.has_any_role(1074104304757133322,2285555555929323)
#вместо этого id нужно вставить id роли, которая может это делать

@bot.slash_command(name='kick')
async def kick(ctx, member: discord.Member, *, reason = None):
await ctx.channel.purge()
await member.kick(reason = reason)

удачи с созданием бота)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы