2016-11-18 4 views
-1

Discord Botのコマンドを「リロードする」コマンドを作成する方法を理解しようとしています。新しいコマンドを追加している間にボットを実行し続けることができます。Pythonでdiscordボットの再ロードコマンドを作成するにはどうすればよいですか?

これはちょっと人生が楽になるので、私はボットを再起動する必要はありません。

私はdiscord.py APIを使用しています。

どうすればこの問題を解決できますか?

答えて

1

はおそらく後半にこの質問に、私はそれを掲載する予定とにかく

あなたはDiscord.pyにどのように、いわゆる「コグ」の仕事をチェックアウトする必要があります。 The bot from Rapptz(主にDiscord.pyを管理している人)には、あなたのボットをCogsに編成する方法と、それらをロード/アンロード/リロードする方法の良い例があります(cogs/admin.pyを参照)。

@commands.command(hidden=True) 
@checks.is_owner() 
async def load(self, *, module : str): 
    """Loads a module.""" 
    try: 
     self.bot.load_extension(module) 
    except Exception as e: 
     await self.bot.say('\N{PISTOL}') 
     await self.bot.say('{}: {}'.format(type(e).__name__, e)) 
    else: 
     await self.bot.say('\N{OK HAND SIGN}') 

@commands.command(hidden=True) 
@checks.is_owner() 
async def unload(self, *, module : str): 
    """Unloads a module.""" 
    try: 
     self.bot.unload_extension(module) 
    except Exception as e: 
     await self.bot.say('\N{PISTOL}') 
     await self.bot.say('{}: {}'.format(type(e).__name__, e)) 
    else: 
     await self.bot.say('\N{OK HAND SIGN}') 

@commands.command(name='reload', hidden=True) 
@checks.is_owner() 
async def _reload(self, *, module : str): 
    """Reloads a module.""" 
    try: 
     self.bot.unload_extension(module) 
     self.bot.load_extension(module) 
    except Exception as e: 
     await self.bot.say('\N{PISTOL}') 
     await self.bot.say('{}: {}'.format(type(e).__name__, e)) 
    else: 
     await self.bot.say('\N{OK HAND SIGN}') 

(​​)

関連する問題