最近はDiscordで戯れています。
今日は基本といってもいい、
・Botに発言させる
・Botにファイルを添付させる
のしかたを紹介したいと思います。
import discord
import asyncio
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_message(message):
if message.content.startswith("はろー"):
m = "こんにちは、" + message.author.name + "さん"
await message.channel.send(m)
client.run('token')
discordのBotを作り始めたかたのコードはだいたいこうなっていると思います。
上記は誰かが「はろー」と発言したらそれに対応するコードっぽいです。
今日はこれをベースに説明していきます。
Botに発言させるメソッド message.channel.send
Botに発言させるためにはmessage.channel.sendというメソッドを使います。
使い方は、上のコード見て分かる通り、
await message.channel.send(発言したい内容)
となります。発言したい内容の部分以外のところはおまじないと思って良いです。
続いてファイルを添付させる方法です。
ファイルを添付する message.channel.send(file=discord.File(パス))
今度はmessage.channel.sendに、fileを引数として指定します。
使い方は、
await message.channel.send(file=discord.File(添付したいファイルのパス))
と言った形です。
基本的にはこれで使えます。
使い所としては誰が「ありがとう」って発言したら、予めサーバに保存してある、
といった画像を添付するとか。
注意点としてはファイルのパスはフルパスじゃないと場合によってはNGかもです。
その他補足までに、
await message.channel.send(file=discord.File(添付したいファイルのパス, filename='aaa'))
こんな感じになります。
また、
await message.channel.send('bbb', file=discord.File(添付したいファイルのパス))
とするとコメントも添えて添付してくれます。
上記を踏まえて出来上がるコードは、
import discord
import asyncio
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_message(message):
if message.content.startswith("はろー"):
m = "こんにちは、" + message.author.name + "さん"
await message.channel.send(m)
if message.content.startswith("ありがとう"):
filepath = '/path/to/dir/attouteki.png'
await message.channel.send(file=discord.File(filepath))
client.run('token')
こんな感じになると思います。
以上です
まとめると
発言させる
await message.channel.send(発言したい内容)
ファイルを添付する
await message.channel.send(file=discord.File(添付したいファイルのパス))
です。
次回はリアクションの付け方とかについて書いたりしたいです。