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

Как отладить ошибки в коде?

Написал код, как бы рабочий, но он не работает по неизвестной причине. В логи ничего не пишет.
import discord
from discord.ext import commands

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

bot = commands.Bot(command_prefix="/", intents=intents)
TOKEN = "Токин"
reaction_channels = {}

@bot.event
async def on_ready():
    print(f'We have logged in as {bot.user}')

@bot.command()
async def setchan(ctx):
        reaction_channels[ctx.guild.id] = ctx.channel
        await ctx.reply(f'**Канал для реакций успешно установлен: {ctx.channel.mention}!**')

@bot.command()
async def reaction(ctx, reaction1, reaction2):

    channel = ctx.channel

    emoji1 = reaction1.strip()
    emoji2 = reaction2.strip()

    async for message in channel.history (limit=10):
        if message.author == bot.user:
            await message.clear_reactions ( )

    reaction_channels[channel.guild.id] = (emoji1, emoji2)


@bot.event
async def on_message(message):

    if message.author != bot.user and message.channel.id in reaction_channels:
        await message.channel.reply ('**Реакции на сообщения в этом канале включены!**')
        emoji1, emoji2 = reaction_channels[message.guild.id]
        await message.add_reaction(emoji1)
        await message.add_reaction(emoji2)

    await bot.process_commands(message)

bot.run(TOKEN)
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
FlegYy, собственный вопрос перечитайте, вы ctrl-v нажали дважды и не затерли токен.
В официальной документации дана инструкция по созданию токена и выдаче интентов, читать инструкции надо там. Судя по отсутствию реакции у вас не выдан MESSAGE CONTENT INTENT, а вы сделали префиксную команду вместо слеша. Остальные инструкции тоже прочтите, в том числе как логировать.

Вы правильно описали, что код как бы рабочий. В реальности в нем в половине мест бот сломается при определенных обстоятельствах. Сколько там других людей писали такой же код, не делает его более качественным. Рассмотрите вариант фриланса, маловероятно что можете корректно реализовать задуманное.
Ответ написан
Ваш ответ на вопрос

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

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