Задать вопрос
@the_kjilpo

Не работают команды Discord.py?

смотрю в код и не понимаю в чём проблема, всё вроде верно, бот запускается но на команды не реагирует. суть бота в том что бы создавать и выдавать пользователям роль с любым цветом вот код

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix='/', intents=intents)

@client.event
async def on_ready():
    print('Бот успешно запущен')

@client.event
async def Moony(message):
# Проверка, чтобы бот не отвечал на свои собственные сообщения
if message.author == client.user:
    return 

# Отправка ответа на сообщение
if message.content.startswith('привет'):
    await message.channel.send(f'Приветик, {message.author.name}^w^')

if message.content.startswith('создай мне роль'):
    await message.channel.send('Хорошо,впиши мне hex-код цвета,в следующем сообщении')
    try:
        color_hex = message.content.split()[1]  # Получаем hex-код цвета из сообщения
        color = discord.Color(int(color_hex, 16))  # Конвертируем hex-код в Discord.Color объект
        role_name = f"Color {color_hex}"

        # Проверяем, есть ли уже такая роль на сервере
        existing_role = discord.utils.get(message.guild.roles, name=role_name)
        #если роль есть, просто выдаем её пользователю
        if existing_role:
            await message.channel.send("Такая роль уже существует!")
            await message.author.add_roles(role_name)
        #иначе создаёт роль и тут же выдаёт её пользователю
        else:
            new_role = await message.guild.create_role(name=role_name, color=color)
            await message.author.add_roles(new_role)
            await message.channel.send(f"Роль {new_role.name} создана и назначена вам!")

    except IndexError:
        await message.channel.send("Ошибка: Необходимо указать hex-код цвета после команды создай мне роль.")
#команда для очистки чата
@client.event
async def чистка(ctx, amount=5):
    await ctx.channel.purge(limit=amount)
# Запуск бота
client.run('токен')
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Глядя на этот код возникает слишком много вопросов. Начните с основ питона прежде чем браться за ботов, а после ознакомьтесь с официальной документацией и примерами, чтобы не изобретать такое количество костылей.
По теме вопроса вот документация почему не работают команды.
Вот официальный пример базового бота.

Если освоите поиск, найдете еще тем 5-10 за последние пол года с тем же вопросом.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы