chatGPTに教えてもらいながら作りました
動機はゲーム関係です
FF14というゲームで、レアモンスターが出現したことを通知してくれるdisco鯖があるのですが、あまりに通知が多いので、botを使って特定のモンスターの時だけアナウンスできるようにしたいと思い立った次第です
※結局サーバーにbotを追加する権限がないので使うことができませんでした泣
何かに役立つかもしれないので書き記しておこうと思います
import discord
# Discordボットのトークンをここに入力します
TOKEN = 'hoge'
# 監視したい特定のワードをここに入力します
TARGET_WORD = 'hogehoge'
# 必要なIntentsを指定してClientを初期化
intents = discord.Intents.default()
intents.messages = True # メッセージイベントを監視
intents.guilds = True # サーバー参加・退出イベントを監視
# Discord Clientを作成
client = discord.Client(intents=discord.Intents.all())
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
@client.event
async def on_message(message):
# bot自身のメッセージは無視
if message.author == client.user:
return
content = message.content.strip()
if TARGET_WORD.lower() in content.lower():
# DMを送信したいユーザーのID(DiscordユーザーID)を指定
target_user_id = hogehogehoge # ここにユーザーIDを入力
# 特定のユーザーにDMを送信
target_user = await client.fetch_user(target_user_id)
if target_user:
dm_channel = await target_user.create_dm()
await dm_channel.send('特定のキーワードが検出されました!')
# ボットをDiscordに接続
client.run(TOKEN)
bot作成やユーザーIDの取得など面倒でしたが、ちゃんと動く用になったので嬉しかったです
私の環境ではprompt上で実行しないとエラーが出て動きませんでした