Команда, которую я пытался реализовать, почему-то не работает. Есть ли способ исправить это? (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, но пока не получил ответа. Но я надеюсь, что смогу узнать, что я могу изменить, чтобы ответ не был «пустым сообщением». Я также готов изменить распределение строк в моем основном сценарии, если это необходимо. Я хочу, чтобы команда силы работала. Большое спасибо!