💬
オウム返しdiscordボットを作る方法【python】
はじめに
こんにちは。
まず最初に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