代码之家  ›  专栏  ›  技术社区  ›  Myronaz

discord bot不响应命令

  •  1
  • Myronaz  · 技术社区  · 5 年前

    在过去的一个月里,我一直在开发一个discord bot,我一直在使用on-message listeners来执行命令,据很多在线用户所说,这并不理想,所以我决定采取下一步并正确地执行它,我查看了文档并提出了以下基本代码:

    import discord #import all the necessary modules
    from discord import Game
    from discord.ext import commands
    
    client = discord.Client() #define discord client
    bot = commands.Bot(command_prefix='!') #define command decorator
    
    @bot.command(pass_context=True) #define the first command and set prefix to '!'
    async def testt(ctx):
        await ctx.send('Hello!!')
    
    @client.event #print that the bot is ready to make sure that it actually logged on
    async def on_ready():
        print('Logged in as:')
        print(client.user.name)
        await client.change_presence(game=Game(name="in rain ¬ !jhelp"))
    
    client.run(TOKEN) #run the client using using my bot's token
    

    在用这种新的方式执行我所有的命令之前,我想测试一下它,这样我就知道它确实有效,但很遗憾,它没有,我又浏览了大量的文章和文档,但我无法发现我做错了什么,机器人很好地登录到了正确的用户,我只是似乎不知道和取消。不管问题是什么,我可能又错过了一些明显的东西

    有人能帮忙吗?太好了,谢谢!

    1 回复  |  直到 5 年前
        1
  •  1
  •   The dark side of Gaming    5 年前

    client = discord.Client() 你制作了一个Discord客户端,当然它是在线的(如果它甚至不是在线的,告诉我),你制作了一个Discord bot bot = commands.Bot(command_prefix='!') . discord bot不会运行,只有discord客户端会运行,因为您只使用 client.run(TOKEN) . 因此,快速预览一下您的代码应该是什么,并希望能够工作:

    import discord #import all the necessary modules
    from discord import Game
    from discord.ext import commands
    
    bot = commands.Bot(command_prefix='!') #define command decorator
    
    @bot.command(pass_context=True) #define the first command and set prefix to '!'
    async def testt(ctx):
        await ctx.send('Hello!!')
    
    @bot.event #print that the bot is ready to make sure that it actually logged on
    async def on_ready():
        print('Logged in as:')
        print(bot.user.name)
        await bot.change_presence(game=Game(name="in rain ¬ !jhelp"))
    
    bot.run(TOKEN) #run the client using using my bot's token