Моя команда say продолжает работать с ошибками, и я не могу понять, как это сделать, помощь будет добавлена - PullRequest
0 голосов
/ 26 мая 2020

, поэтому я пытаюсь выполнить команду say, которая делает это так, что если член моей команды разработчиков Discord использует ее, он отправит сообщение на канал объявлений. он не будет отправлять или удалять сообщение вообще, используя переписывание discord.py и python, это мой код

@bot.command(pass_context=True) @commands.has_role('Manager') async def say(ctx, content): channel = ctx.guild.get_channel("714229744798925012") await channel.send(channel,content) await Message_delete(content) idk, почему это происходит, также он говорит, что менеджер cos im тестирует его на тестовый сервер перед запуском

1 Ответ

0 голосов
/ 26 мая 2020

Вы не можете передать текст для отправки в качестве параметра функции @ bot.command. Обычно вы используете это:

async def say(ctx, *args):

args - это кортеж из разделенных пробелами подстрок вашего сообщения (также известного как слова ;-)). Например,

!say Hello world

представит вам

args = ("Hello", "world")

, чтобы преобразовать кортеж в строку, просто используйте:

message = ""
message = ' '.join(args)

всего:

@bot.command(pass_context=True)
@commands.has_role('Manager')
async def say(ctx, *args):
    message = ""
    message = ' '.join(args)
    channel = ctx.guild.get_channel("714229744798925012")
    await channel.send(channel, message)

Если вы хотите sh добавить команду для удаления сообщения позже, я предлагаю сохранить его идентификатор для дальнейшего использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...