基于Python的Discord Bot在本地工作,但从未在Heroku上托管

时间:2019-02-28 21:29:43

标签: python heroku bots discord discord.py

我创建了一个discord bot,它在本地启动时可以完美运行,但是一旦托管并启动,除了!help之外,将不响应任何命令。 我得到了错误日志,这里是:

试图!踢@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!")

我有(我认为?)正确的requirements.txt,runtime.txt和Procfile文件。

编辑:

我的requirements.txt文件如下所示:

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

有什么可以改变的吗? 感谢您阅读我的信息,如果这不是在此处提出问题的正确方法,我们深表歉意。

编辑2:

仍然不知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

我的一些机器人遇到了类似的常见问题。如果您的漫游器使用on_message,它将干扰其他命令。

要解决此问题,请在await client.process_commands(message)中的某个地方添加on_message。如果您不使用on_message,则建议您再检查一次requirements.txt。

示例:

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


    await client.process_commands(message)