「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【Python】DiscordBotの作成方法(3)

前回の記事で作成したDiscordBotを改良したい人向けの記事を書きました。

[ 作成方法 ]

「token」と「channelID」は前回の記事のものに書き換えてください。

ボットがオンラインになったらメッセージを送る

下記のコードを「main.py」にコピペして保存します。

import discord
import server

token = 'hogehogehogehogehoge'
channelID = piyopiyopiyopiyopiyo

intents = discord.Intents.all()
client = discord.Client(intents=intents)


@client.event
async def on_ready():
  channel = client.get_channel(channelID)
  await channel.send(f"Bot is ready.")


server.reboot()
client.run(token)

メンションされたら返信する

下記のコードを「main.py」にコピペして保存します。

import discord
import server

token = 'hogehogehogehogehoge'

intents = discord.Intents.all()
client = discord.Client(intents=intents)


@client.event
async def on_message(message):

  if message.author == client.user:
    return

  if client.user in message.mentions:

    await message.channel.send(f"Hello.")


server.reboot()
client.run(token)

特定のメッセージにリアクションする

下記のコードを「main.py」にコピペして保存します。

import discord
import server

token = 'hogehogehogehogehoge'

intents = discord.Intents.all()
client = discord.Client(intents=intents)


@client.event
async def on_message(message):

  if message.author == client.user:
    return

  if message.content == "焼肉":

    await message.add_reaction("🥓")
    await message.add_reaction("🍖")
    await message.add_reaction("🍗")


server.reboot()
client.run(token)

特定のメッセージの後に画像を送信する

下記のコードを「main.py」にコピペして保存します。

import discord
import server

token = 'hogehogehogehogehoge'

intents = discord.Intents.all()
client = discord.Client(intents=intents)


@client.event
async def on_message(message):

  if message.author == client.user:
    return

  if message.content == "焼肉":

    await message.channel.send(file=discord.File("Yakiniku.jpg"))


server.reboot()
client.run(token)

英語を日本語に、日本語を英語に翻訳する

下記のコードを「main.py」にコピペして保存します。

import discord
import server
from deep_translator import GoogleTranslator

token = 'hogehogehogehogehoge'

intents = discord.Intents.all()
client = discord.Client(intents=intents)


@client.event
async def on_message(message):

  if message.author == client.user:
    return

  if message.content.startswith("/entojp "):

    sentence = str(message.content)[8:]

    translated = GoogleTranslator(source="en", target="ja").translate(sentence)

    await message.channel.send(translated)

  if message.content.startswith("/jptoen "):

    sentence = str(message.content)[8:]

    translated = GoogleTranslator(source="ja", target="en").translate(sentence)

    await message.channel.send(translated)


server.reboot()
client.run(token)