1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クリスマスまでにPythonを使ってDiscordのBOTを作るAdvent Calendar 2022

Day 18

【18日目】コマンド風のやつを再現しよう②【PythonでDiscordBOTを作ろう!】

Last updated at Posted at 2022-12-17

コマンド風のやつを再現してみましょう!②

復習

なんかコマンドっぽいやつを再現します。
image
参考画像です。

startswith

Pythonだけじゃなくて色んな言語に含まれています。
文字列.startswith(検索文字)という感じに使い、True/Falseが返ってきます。
これだったら、いちいち文字数とかを入れてスライスしたりする必要性がなくなります。
試しにやってみましょう。

main.py
  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")

基本的に処理の一部分を変えただけなので、普通に動きます。
image.png
(代り映えしねぇなぁ...時間が変わっただけじゃん...)

さぁ、結構コマンドっぽくなってきましたね。
しかしこのまんまやってると実はすごくめんどくさいんですよね。

何のコマンドを使ったのか...どんな引数が入ったのか...
これらを自分で処理していくと、大変地獄です。
寝る暇もなくなってしまいます。(???)

実はー...

ここまで頑張ってコマンド風のものを作っていただいたのは、「コマンド」という親しみやすいものを使ってPythonの文字列操作を覚えてもらっただけです。(?)

しかし、皆様が頑張らなくても、多くのDiscordAPIラッパーにはコマンド(風文字列)を処理するための機能が備わっています。
その名もBot commands framework

では予習です。
コマンドフレームワークのAPIリファレンスを少し読んでおきましょう。
意味は分からなくてもいいです。
なんとなく雰囲気でもつかんでみてください。

あ、もちろん翻訳してもいいのよ?

Next is Commands Framrwork...

むしろDiscordのBOT作成はここからが本番みたいなところあります。
残り記事数も少なくなってきましたので、いい感じに文言をまとめて頑張っていきます!

というわけで、今日の記事はここまでです。

もしよろしければ記事へのいいねをして、次回記事をお楽しみに!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?