#Botとは
一般的なBotはいい印象はないそうです。
(総務省HPより。)
しかし、ゲームでよく使われるBotとは、ユーザーの特定のアクションに対して決まったリアクションを返すロボット(ro BOT)です。今ではSiriやAlexaなどもユーザーの声に反応して検索してくれるという立派なBOTです。
#botを作るためのセットアップ
まずは自分のPCにdiscordパッケージをインストールする必要があります。
自分はVSCodeで書いたプログラムをLinux環境で動かしていますが、一応VSCodeでも動かせます。
Linux(自分はUbuntu20.04 LTS)でのインストール方法(4つ必要です。)
sudo apt install libffi-dev libnacl-dev python3-dev
sudo apt update
sudo apt upgrade
sudo python3 -m pip install -U discord.py
# 音声も必要な場合(なくても構いません)
sudo python3 -m pip install -U discord.py[voice]
Windowsでのインストール方法(管理者権限でコマンドプロンプト。Python3がインストールされていること前提)
python3 -m pip install -U discord.py
# 音声も必要な場合(なくても構いません)
python3 -m pip install -U discord.py[voice]
次に、BotのTOKENを所得する必要がありますが、webサイトにたくさん転がっているので特に詳しい説明はしません。
参考
最後に、エディタ(コードを書くためのメモ帳みたいなもの)をセットします。
普通のメモ帳でもできなくはないですが、エラーなどを発見してくれる専用の機能を持った方がわかりやすいので、そちらを使います。
VSCode
自分の環境に合ったものをインストールしてください。
#早速作ってみる
ログインした時のアクション
1行目に、
import discord
と書きます。これは、discordというモジュールをここで使う、という表記です。
client = discord.Client()
@client.event
async def on_ready():
print(f'Logged in as: {client.user.name}')
print(f'With ID: {client.user.id}')
解説
説明していきます。
client = discord.Client()
は実行するクライアントを変数に代入しています。
@client.event
は、上で指定したclientが起こす行動について以下に書かれています。というものを示す目印です。
async def
についてですが、async
はコルーチン関数を理解しないといけないので、パスします。discotdbotを作るときには基本的にこれを使う、と理解してしまってもいいかもしれません。 (個人的には基本これ以外は使わないと思います。)
@client.event
async def on_ready():
print(f'Logged in as: {client.user.name}')
print(f'With ID: {client.user.id}')
client.run('TOKEN')
on_ready()
はdiscord.pyで定められている関数で、botを動かせる状態になったら、以下のプログラムを実行します。という意味です。この関数をon_start
とかに変えたら動きません。
print()
文は、コンソール (VSCodeでいうターミナルです。標準だと下の方に存在しています。) に出力されます。
client.run('TOKEN')
: TOKEN は Discord Developer Portalからコピーします。
動かしたBotの名前(Discord Developer Portalで決めたBotの名前です。)
次回は、書かれたメッセージに対しての反応を書いていきます