4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Discord.pyで起動時に特定の名前のチャンネルでメッセージを出す。

Last updated at Posted at 2019-10-11

前回はDiscord.js向けに書きましたが、今回はDiscord.py向けです。

前提条件

既にPython3でDiscord.pyが動く前提で書きますので、環境を揃えてからお願いします。
実行方法等も特に説明しません。

コードの内容

同じ名前のチャンネルが複数のサーバーにある事を想定して書いてます。
なので、BOTがいる全てのチャンネルを読み込むような動作をします。
そうで無い場合はもっと無駄の少ないコードになると思います。

on-ready.py
import discord

client = discord.Client()
TOKEN = "<Token>"

@client.event
async def on_ready():

	ch_name = "チャンネル名"

	for channel in client.get_all_channels():
		if channel.name == ch_name:
			await channel.send("起動しました")

client.run(TOKEN)

これだけです。

コードの説明

Discord.pyを読み込んで、変数「Discord」に代入します。
import discord

Discordにクライアント接続をします。
client = discord.Client()

トークン変数に代入しておきます。
の箇所にはあなたのBOTのトークンを入れてください。
TOKEN = "<Token>"

BOTのクライアントが起動したときに実行します。
@client.event async def on_ready():

BOTが接続している全チャンネルの情報を順番にchannelに代入して、チャンネルの数だけ繰り返します。
for channel in client.get_all_channels():

チャンネルの名前がch_nameと一致したら実行します。
if channel.name == ch_name:

指定したチャンネルに「起動しました」と送信します。
await channel.send("起動しました")

トークンを読み込んでクライアントを実行します。@client.eventより前に書くと読み込まなくなってしまうので、必ず最後に書いてください。
client.run(TOKEN)

以上です。
間違い等があれば、Discordまでご連絡ください。

このソースコードはGitHubに掲載しています。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?