4
3

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 3 years have passed since last update.

ゲームサーバーに欲しいDiscordBot

Posted at

作りたいもの

・Discordを使ってチーム分けをしたい(みんなでゲームをしてて欲しい時がある)
・誰かがボイスチャットに入室したときに、入室したチャンネルとユーザーをメンションで知らせてくれる

開発環境

OS:Ubuntu20.10
Python:3.9.5
Discord.py:1.7.3

やること

  1. メッセージからメンション情報を取得

  2. コマンドの入力を受ける

  3. メッセージに返信する

  4. リアクションを集計

  5. チーム分け

  6. 結果を送信

  7. メッセージからメンション情報を取得


メッセージが送信されたときに、Bot に対してメンションが行われたかを確認する

  • メンションに続くコマンドを取得する

メッセージを取得 -> メンション情報を取得

メンション情報は message.mentions で取得することができる

# message.mentions の構造
[<Member id=******** name='*****' discriminator='****' bot=True nick=None guild=<Guild id=******** name='*****' shard_id=None chunked=False member_count=*>>]

リストの要素として <Member ~ >> が入っている
メンションの数が増えると [<Member ~ >>, <Member ~ >>] と要素が増えていく

取得したい情報は name#discriminator の形式の文字列

async def on_message(message):
  # ここの name と discriminator は Bot のものを入れる
 my_name = 'name#discriminator'

  mentions = message.mentions
  
  for mention in mentions:
    mention_name = mention.name + '#' + mention.discriminator

    if mention_name == my_name:
      message_in_cmd = message.content
      break

message.content でメッセージの本文を取得することができる

2021/09/19 09:00 JST 時点ではここまでが完成しています。

今後進捗が出たら、更新します。

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?