Команда, которую я пытался реализовать, почему-то не работает. Есть ли способ исправить это? (discord.py)

Я попросил помощи в создании командного сценария, в котором бот раздора отвечал бы на команду предложением и рандомизированным процентилем. Это сценарий, данный мне в вопросе:

      import discord
from discord.ext import commands
import random
intents = discord.Intents.all()
bot = commands.Bot(command_prefix=".", intents=intents, help_command=None)
@bot.command()
async def strenght(ctx):
    await ctx.send(f"Your strength is at {random.choice(range(1, 100))} %")
bot.run("")

У меня уже были написаны разные части скрипта, поэтому я просто изо всех сил старался внедрить все строки в свой основной скрипт:

      import discord
from discord.ext import commands 
import responses
import random


async def send_message(message, user_message):
    try:
        response = responses.get_response(user_message)
        await message.channel.send(response)


    except Exception as e:
        print(e)



def run_discord_bot():
    TOKEN = 'i removed my token'
    intents =  discord.Intents.all()
    bot = commands.Bot(command_prefix=".", intents=intents, help_command=None)
    intents.message_content = True
    client = discord.Client(intents=intents)
    

    @client.event
    async def on_ready():
        print(f'{client.user} is now running!')


    @client.event
    async def on_message(message):
        if message.author == client.user:
            return
        
        username = str(message.author)
        user_message = str(message.content)
        channel = str(message.channel)


        print(f'{username} said: "{user_message}" ({channel})')

        if user_message[0] == '?':
            user_message = user_message[1:]
            await send_message(message, user_message)
        else:
            await send_message(message, user_message)
    
    @bot.command()
    async def strength(ctx):
        await ctx.send(f"Your strength is at {random.choice(range(1,100))} %")
        bot.run("")

    
    
    client.run(TOKEN)

Затем терминал выдаст мне успешные отпечатки, так как бот успешно входит в систему, подключается к шлюзу, выходит в сеть и даже сам получает команду. Проблема в том, что даже если он «получает» его, он выдает мне ошибку в строках «400 Bad Request (код ошибки: 50006): невозможно отправить пустое сообщение»

Полный терминал для перспективы:

      2023-02-24 23:11:13 INFO     discord.client logging in using static token
2023-02-24 23:11:15 INFO     discord.gateway Shard ID None has connected to Gateway (Session ID: 4ed57f0b5b4bf87f1a7a1535a6182a52).
hirojiro#3698 is now running!
hirojiro#1357 said: ".strength" (dank-memer)
400 Bad Request (error code: 50006): Cannot send an empty message

Я уже спрашивал на форумах, посвященных Python, но пока не получил ответа. Но я надеюсь, что смогу узнать, что я могу изменить, чтобы ответ не был «пустым сообщением». Я также готов изменить распределение строк в моем основном сценарии, если это необходимо. Я хочу, чтобы команда силы работала. Большое спасибо!

0 ответов

Другие вопросы по тегам