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.

[interactions.py] Discord Botの作り方 #03 - Modal

Last updated at Posted at 2022-12-10

はじめに

この記事ではinteractions.pyというモジュールを使用してDiscord Botを作りたい人向けです。

#03ではModalについて解説していきたいと思います。

Modalの実装

では実際に作っていきましょう。
以下のプログラムを書き写して前回のbuttonがある位置に貼り付けてください。

modal = interactions.Modal(
  title="フォーム",
  custom_id="modal_form",
  components=[
      interactions.TextInput(
          style=interactions.TextStyleType.SHORT,
          label="質問",
          custom_id="text_form",
          min_length=1,
          max_length=3,
      )
  ],
)

await ctx.popup(modal)

では1個1個みていきましょう。
まず上の方にある title = ... のところでフォームのタイトルが設定できます。
components=[ ... のとこにある label = ... のところでフォームの質問が設定できます。
min_lengthmax_length は最小文字と最大文字です。現在は1文字以上3文字以下になっています。

実際にBotを実行してみる

F75A72F7-A783-449C-966E-8C97C0B06FD9.jpeg
/test と打った時にこのような物が出れば成功です。
ただ、このままだと何が書かれたか見れないので、今から書き込まれた結果が出力される様にしていきましょう。

Modalに書き込まれた物を出力する

@bot.modal("modal_form")
async def modal_response(ctx, response: str):
  #ここに処理を追加

modal_form のところに先ほどのフォームで指定した components 外の custom_id を書き込みます。
どのような処理をするかは3行目の async def... の下に書きましょう。

上手く出来るとこの様になります。お疲れ様でした。
今回は試しに書かれた内容をチャットに隠しメッセージで送信する様にしました。
FCB52303-D71F-468D-98B5-D6156651CA61.jpeg

最後に

今回はmodalについて解説しました。
次回はembedについて解説していきたいと思います。

もし分からないところがあれば Azusa#5812 に気軽にDMしてください。

Discordサーバー

この度、bot開発者が話し合えるようなDiscordサーバーを開設しました!
ぜひ見に来てください!

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?