@1AAAhelpmeAAA1

Нужна помощь с использованием datetime в дискорд боте на базе discord.py.?

недавно я решил сделать бота в дискорд, добавить в него простенький калькулятор а также функцию вывода даты(пока-что только текущего числа)
Я включил бота, после чего решил проверить его функции на своем сервере, калькулятор работал отлично, но когда я хотел вывести дату(текущее число) у меня в консоли появилось следующее:

spoiler
C:\Users\User\Desktop\для проекта\main.py:10: RuntimeWarning: coroutine 'Command
.__call__' was never awaited
print('We have logged in as {0.user}'.format(client))
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Ignoring exception in command print:
Traceback (most recent call last):
File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\discord\ext
\commands\bot.py", line 939, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\discord\ext
\commands\core.py", line 855, in invoke
await self.prepare(ctx)
File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\discord\ext
\commands\core.py", line 789, in prepare
await self._parse_arguments(ctx)
File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\discord\ext
\commands\core.py", line 706, in _parse_arguments
kwargs[name] = await self.transform(ctx, param)
File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\discord\ext
\commands\core.py", line 542, in transform
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: text is a required argument
that is missing.

я не могу понять в чем я ошибся
вот мой код:
import discord
from discord.ext import commands
from datetime import datetime

client = discord.ext.commands.Bot(command_prefix = "D.")

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.command()
async def print(ctx, *, text):
    now = datetime.now()
    dt_string = now.strftime("%d")
    await ctx.send(f'{dt_string}')

@client.command()
async def prindt(ctx,arg1,arg2,arg3):
    a = arg1
    b = arg2
    c = arg3
    if (b) == "*" :
        a = int(a) * int(c)
    else:
        if (b) == "+":
            a = int(a) + int(c)
        else:
            if (b) == "-":
                a = int(a) + int(c)
            else:
                if (b) == "/":
                    a = int(a) / int(c)    
    await ctx.send(f'{int(a)}')

client.run('my_token')
  • Вопрос задан
  • 357 просмотров
Решения вопроса 1
@andro1
?
У тебя бот ожидает текст, ты сам его добавил в аргумент
async def print(ctx, *, text):
На кой черт в функции text, не знаю.
Вот так все ок:
async def print(ctx):
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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