コマンド風のやつを再現してみましょう!②
復習
startswith
Pythonだけじゃなくて色んな言語に含まれています。
文字列.startswith(検索文字)
という感じに使い、True/False
が返ってきます。
これだったら、いちいち文字数とかを入れてスライスしたりする必要性がなくなります。
試しにやってみましょう。
import nextcord
from nextcord.ext import commands
intents = nextcord.Intents.all()
intents.typing = False
bot = commands.Bot(intents=intents)
PREFIX = "c!"
@bot.event
async def on_message(message: nextcord.Message):
- if message.content[:len(PREFIX)] == PREFIX:
+ if message.content.startswith(PREFIX):
# コマンド処理
await message.reply("コマンドだね!")
bot.run("TOKEN")
基本的に処理の一部分を変えただけなので、普通に動きます。
(代り映えしねぇなぁ...時間が変わっただけじゃん...)
さぁ、結構コマンドっぽくなってきましたね。
しかしこのまんまやってると実はすごくめんどくさいんですよね。
何のコマンドを使ったのか...どんな引数が入ったのか...
これらを自分で処理していくと、大変地獄です。
寝る暇もなくなってしまいます。(???)
実はー...
ここまで頑張ってコマンド風のものを作っていただいたのは、「コマンド」という親しみやすいものを使ってPythonの文字列操作を覚えてもらっただけです。(?)
しかし、皆様が頑張らなくても、多くのDiscordAPIラッパーにはコマンド(風文字列)を処理するための機能が備わっています。
その名もBot commands framework。
では予習です。
コマンドフレームワークのAPIリファレンスを少し読んでおきましょう。
意味は分からなくてもいいです。
なんとなく雰囲気でもつかんでみてください。
あ、もちろん翻訳してもいいのよ?
Next is Commands Framrwork
...
むしろDiscordのBOT作成はここからが本番みたいなところあります。
残り記事数も少なくなってきましたので、いい感じに文言をまとめて頑張っていきます!
というわけで、今日の記事はここまでです。
もしよろしければ記事へのいいねをして、次回記事をお楽しみに!