python Discord.py 重启命令

hgqdbh6s  于 2023-01-04  发布在  Python
关注(0)|答案(4)|浏览(200)

所以,我正在做一个机器人,我想知道是否有一种方法可以重新启动它使用这样的命令:p!restart我喜欢一个命令:p!shutdown,但无法弄清楚如何重新启动,对于那些来到这里寻找关机cmd的人:

async def shutdown(ctx):
    id = str(ctx.author.id)
    if id == 'your_id_here':
        await ctx.send('Shutting down the bot!')
        await ctx.bot.logout()
    else:
        await ctx.send("You dont have sufficient permmisions to perform this action!")```
1cklez4t

1cklez4t1#

ctx.bot.logout()仅注销您的bot。
如果你想完全重新启动你的程序,这是我如何实现它:

import sys
import os
from discord.ext import commands

bot = commands.Bot

def restart_bot(): 
  os.execv(sys.executable, ['python'] + sys.argv)

@bot.command(name= 'restart')
async def restart(ctx):
  await ctx.send("Restarting bot...")
  restart_bot()

bot.run(os.getenv('TOKEN'))

为了防止这个命令可能被滥用,只需在命令中添加一个“if”语句,检查ctx.author.id用户是否有权限执行这个命令。

t30tvxxf

t30tvxxf2#

第一个月
这将简单地注销您,然后您可以使用Client.login()重新登录
这就是它重新启动机器人所需要的

yyyllmsg

yyyllmsg3#

import discord
from discord.ext import commands
import os

client = commands.Bot(command_prefix='>')

@client.event
async def on_ready():
    print("Log : "+str(client.user))

@client.command()
async def rs(ctx):
    await ctx.send("Restarting...")
    os.startfile(__file__)
    os._exit(1)

client.run("token")
fcwjkofz

fcwjkofz4#

或者你可以只做ctx.bot.close(),根据你的主机重新启动机器人,idk

相关问题