Discord Bot на основе Python, работающий локально, но не один раз размещенный на heroku - PullRequest
0 голосов
/ 01 марта 2019

Я создал бот-диск, который отлично работает при локальном запуске, но не отвечает ни на какую команду, кроме! Help, после того, как он был размещен и запущен.Я получил журналы ошибок, вот они:

Попытка! Kick @user:

discord.ext.commands.errors.MissingRequiredArgument: user_kick is a required argument that is missing

Команда отлично работает в автономном режиме.Команда

kick написана так:

@bot.command()
async def kick(ctx, user_kick : discord.Member):
  role = discord.utils.get(user_kick.guild.roles, name=config['perm_role'])
  if role in ctx.message.author.roles:
    await user_kick.kick(reason=None)
  else:
    await ctx.send(content="Permission denied!")

У меня есть (я думаю?) Правильные файлы require.txt, runtime.txt и Procfile.

Редактировать:

Мой файл needs.txt выглядит следующим образом:

-e git+git://github.com/Rapptz/discord.py.git@async#egg=discord

Есть ли что-то, что можно изменить?Спасибо, что читаете меня, и извините, если это неправильный способ задавать вопросы здесь.

РЕДАКТИРОВАТЬ 2:

Все еще не знаю, почему это происходит.

1 Ответ

0 голосов
/ 01 марта 2019

У меня была такая же проблема с некоторыми из моих ботов.Если ваш бот использует on_message, он будет мешать другим командам.

Чтобы это исправить, добавьте await client.process_commands(message) где-нибудь в on_message.Если вы не используете on_message, я предлагаю вам еще раз проверить файл require.txt.

Пример:

@client.event
async def on_message(message):
    if message.content.startswith("!thecommand"):
                    #whatever you had in the command


    await client.process_commands(message)
...