はじめに
いなたつアドカレの二十日目の記事です。
Discordのbotを作るならBot Commands Frameworkを使うと楽だよってお話。
なにそれ
discordのbotをpythonで作るときにめっちゃ楽にできるフレームワーク(KONAMI)
じっそー
いんぽーとなど
from discord.ext import commands
import traceback
INITIAL_EXTENSION = 'こぐのぱす'
INITIAL_EXTENSION = 'cogs.hoge'
- cogs
- hoge.py
- main.py
ってなってたらこれで登録できます。
main
if __name__ == '__main__':
bot = MyBot(command_prefix='!')
bot.run('とーくんをにゅうりょくしてね')
command_prefix
でコマンドを認識するための識別子を決めます。ここでは「!」を識別子に設定しています。
MyBotのクラス
class MyBot(commands.Bot):
# MyBotのコンストラクタ。
def __init__(self, command_prefix):
super().__init__(command_prefix)
try:
self.load_extension(INITIAL_EXTENSION)
except Exception:
traceback.print_exc()
# Botの準備完了時に呼び出されるイベント
async def on_ready(self):
print('--------じゅんびちゅ-------')
print(self.user.name)
print(self.user.id)
print('-------------------------')
コグを読み出してエラーが出たらエラーを表示する
hoge.py
from discord.ext import commands # Bot Commands Frameworkのインポート
import discord # discord.pyをインポート
class Hoge(commands.Cog):
def __init__(self,bot):
self.bot = bot
self.players = None
@commands.command(aliases=['h'])
async def hello(self, ctx):
await ctx.send(f'Hello! {ctx.author.name}さん!')
def setup(bot):
bot.add_cog(Hoge(bot))
これで、!hoge
をすると、Hello!いなたつさん!
みたいな感じで返してくれます
そして @commands.command()
の引数にaliases=['h']
を与えています。これで、!h
でもHello!いなたつさん!
ができます。
さらにサブコマンドなどをつくることもできるので、pythonでdiscordbotを作る時はこれをつかいましょーね。