💬

オウム返しdiscordボットを作る方法【python】

2024/08/05に公開

はじめに

こんにちは。

まず最初にdiscordボットを作るときテストとして、オウム返しdiscordボットなどを作りますよね。
この記事では、pythonでそのオウム返しdiscordボットを作る方法を解説します。

「あなたは日本語を喋れますか」に「私は日本語を喋れません」と返すボット

まず、「あなたは日本語を喋れますか」というメッセージに対して「私は日本語を喋れません」と返すdiscordボットを作りましょう。

コード↓

#インポート
import discord

TOKEN = "YOUR_TOKEN"

intents = discord.Intents.default()
intents.message_content = True #メッセージの内容を取得する権限を追加

client = discord.Client(intents=intents)

#botが起動したときの処理
@client.event
async def on_ready():
    print("discordボットが起動しました")

#サーバーにメッセージが送信されたときの処理
@client.event
async def on_message(message: discord.Message):
    if message.content == "あなたは日本語を喋れますか":
        await message.channel.send("私は日本語を喋れません")

#実行
if __name__ == "__main__":
    client.run(TOKEN)

このコードを解説すると、まず、intents = discord.Intents.default()ボットの権限をまとめたものを定義して、client = discord.Client(intents=intents)clientを定義します。
次に、on_ready関数でbotが起動したときに「discordボットが起動しました」とコンソールに表示します。
またその次に、on_message関数でサーバーにメッセージが送信されたときに、そのメッセージが「あなたは日本語を喋れますか」の場合、そのサーバーに「私は日本語を喋れません」というメッセージを送信します。
最後に、client.run(TOKEN)で実行します。

これで以下のようなボットができると思います。

オウム返しボット

最後に、オウム返しボットを作ります。

コード↓

#インポート
import discord

TOKEN = "YOUR_TOKEN"

intents = discord.Intents.default()
intents.message_content = True #メッセージの内容を取得する権限を追加

client = discord.Client(intents=intents)

#botが起動したときの処理
@client.event
async def on_ready():
    print("discordボットが起動しました")

#サーバーにメッセージが送信されたときの処理
@client.event
async def on_message(message: discord.Message):
    if message.author == client.user: #メッセージの投稿者がbot自身だったら場合何もしない
        return
    elif message.content.startswith("hi!"):
        await message.channel.send(message.content)

#実行
if __name__ == "__main__":
    client.run(TOKEN)

このコードの変更点を解説すると、on_message関数が、もしメッセージの投稿者がbot自身だったら何もせず、メッセージがhi!から始まっていたら、message.content(メッセージの内容)をサーバーにメッセージとして送信して、オウム返しボットを実装しています。

これで以下のようなボットができると思います。

終わりに

これで、オウム返しdiscordボットが作れます。

さようなら。

Discussion