MENU

【discord.py bot 制作 】会話するBOT Part3 ~ランダムに言葉を返すBOTを作ってみる~

この記事はdiscord.pyを使用したdiscordのbotの備忘録です。

実際に使用しているコードもサンプルコードとして掲載しています。

BOT作りの参考の一つになればいいなと思います。

目次

動機

個人製作botっていうだけですごく強そうでかっこいい。単純だけどとっても大事な理由。

コンセプトは常に楽しく、bot開発・改良する上で激励してくれる相棒。

よく使う言葉は同じ反応ばかり返ってくるので新鮮味が不足してきたため、返信をランダムに選んでくれるようにしようかなと改良していきます。

\ 前回の記事 /

動作環境

windows11

discord.py Version: 2.1.0

python 3.10

Visual Studio Code

動作コードの例

import discord
import random


intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

@client.event
async def on_message(message):
    if message.author.bot:
        return
    if message.content == "おやすみ":
        oyasumi = ["おやすみなさい!","ゆっくり休んでね!","おやすみ!"]
        choice = random.choice(oyasumi)
        await message.channel.send(choice)

@client.event
async def on_ready():
    print(f'{client.user} が起動しました。')
TOKEN = "botのTOKENを入力する"
client.run(TOKEN)

実際に動かしてみると下記のように。

返答は完全にランダムのため、同じ言葉が続くこともあるし毎回変わることもある。かわいい。

コードの解説

import random

今回追加した拡張機能。これでランダムに言葉や数字を選択可能になります。

    if message.content == "おやすみ":
        oyasumi = ["おやすみなさい!","ゆっくり休んでね!","おやすみ!"]
        choice = random.choice(oyasumi)
        await message.channel.send(choice)

2段目のoyasumiというリストの中に“おやすみなさい!”、“ゆっくり休んでね!”、“おやすみ!”という言葉を投入。

3段目でoyasumiリストからランダムで1つ取り出した言葉choiceを作成します。

4段目でメッセージが送られたチャンネルにchoiceを送ることで“おやすみ”という言葉をトリガーにランダムに返答することが可能になりました。

補足

    if message.content == "おやすみ":
        oyasumi = ["おやすみなさい!","ゆっくり休んでね!","おやすみ!"]
        await message.channel.send(random.choice(oyasumi))

3段目のchoiceの定義をそのまま動作の中に代入することも可能です!

サンプルコード

#取得
import discord
import random

#定義
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)

#-----------------------
#on_message(message)
#-----------------------
@client.event
async def on_message(message):
    if message.author.bot:
        return
#返答 完全一致
    if message.content == "あ":
        await message.channel.send("正常に動いてるよ!")
#返答 部分一致
    if "おはよ" in message.content.lower():
        await message.channel.send("おはよう!")
    if "こんにち" in message.content.lower():
        await message.channel.send("こんにちは!")
    if "emoji_1" in message.content.lower():
        await message.channel.send("じゃあああん!!")
#選択式 
    if message.content == "おやすみ":
        oyasumi = ["おやすみなさい!","ゆっくり休んでね!","おやすみ!"]
        choice = random.choice(oyasumi)
        await message.channel.send(choice)

#基本動作 
@client.event
async def on_ready():
    print(f'3. 2. 1. ぽかん !!{client.user} が 起動 した !!')
TOKEN = "botのTOKENを入力する" #コピペを行う際はここを変更する
client.run(TOKEN)

今回はBOTがランダムに返答するためのコードでした。参考になれば幸いです。

自分もまだまだ発展途上ですのでぼっとくんと共に成長していければなと思います。

ご意見やアドバイス等ありましたらお待ちしております。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次