如何 运行 bot 中的 discordpy 终端

How to run discordpy terminal in bot

我想为我的机器人创建一个命令,让我可以直接通过机器人 运行 命令 如:

输入:/运行 await ctx.send("hi Whosebug")

bot:嗨 Whosebug

我一直在研究如何在 discordpy 中制作这样的命令,但我得到的最接近的是使用 exec,但它只是抛出了 discord.ext.commands.errors.CommandInvokeError: Command raised an exception: SyntaxError: 'await' outside function (<string>, line 1)

我不想在没有适当代码示例的情况下询问,但我们将不胜感激 <3

如果您正在寻找命令行界面,我建议您这样做:

import threading, time


def waitfor():
    cmd = input('command: ')
    print(cmd)
    ## do command processing here eg. eval(cmd)

def runthread():
    t = threading.Thread(target=waitfor)
    t.start()
    return t

async def commandInterface():
    t = runthread()
    while 1:
        if not t.is_alive():
            t = runthread()
        time.sleep(1)
        ## loop stuff

client.loop.create_task(commandInterface)
client.run(TOKEN)

这使用线程模块等待输入和 运行 命令,而不会阻塞程序的其余部分。显然需要对其进行调整以满足您的需求,但这可能是一个好的开始。