discord.py v2.0.0を使ってみる
6855 ワード
概要
discord.py v2.0.0 でcommandsフレームワークを使ってみるという記事です。まだv2.0.0は正式リリースされていないため、今後この記事も役に立たなくなる可能性があることを予めご了承ください。また、この記事は執筆中です。スラッシュコマンドなども今後書いていきますのでしばらくお待ちください。
完成品
main.py
import asyncio
import discord
from discord.ext import commands
COGS = [
'cogs.basic'
]
class MyBot(commands.Bot):
def __init__(self, prefix: str, intents: discord.Intents):
super().__init__(command_prefix=prefix, intents=intents)
async def on_ready(self):
print(f'Logged in as {self.user}#{self.user.id}')
async def main():
bot = MyBot(intents=discord.Intents.all(), prefix='!')
for cog in COGS:
await bot.load_extension(cog)
await bot.start(token='TOKEN')
if __name__ == '__main__':
asyncio.run(main())
cogs/basic.py
from discord.ext import commands
class BasicCog(commands.Cog):
def __init__(self, bot: commands.Bot):
self.bot: commands.Bot = bot
async def setup(bot: commands.Bot):
await bot.add_cog(BasicCog(bot))
何が変わったのか
- load_extension, add_cogが非同期になっています
-
add_cog
の非同期化に伴いcog側のsetup
関数が非同期になっています - intentsが
__init__
で必須になりました。今回は全て許可しています
スラッシュコマンドについて
執筆中です
感想
今までload_extension
は__init__
の中でやっていたためasync def main()
を作らなくてよかったので、少しだけ手間が増えたかな?って私は感じました。ただ、非同期に対応したのは良い事だと思います。
Author And Source
この問題について(discord.py v2.0.0を使ってみる), 我々は、より多くの情報をここで見つけました https://zenn.dev/yupix/articles/c78ac016dd538b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol