teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード例の追記

2020/07/01 03:06

投稿

coolwind0202
coolwind0202

スコア708

answer CHANGED
@@ -1,7 +1,18 @@
1
- 具体的にどのような挙動を期待しているのかこの文面からは把握できないので、コード例を出すことはできないのですが、`is_connected()` と `is_playing()` は `discord.VoiceClient`のメソッドです。
1
+ ~~具体的にどのような挙動を期待しているのかこの文面からは把握できないので、コード例を出すことはできないのですが~~、`is_connected()` と `is_playing()` は `discord.VoiceClient`のメソッドです。
2
2
  従って `discord.Guild.voice_client` などで `discord.VoiceClient` を取得して、そこから `is_connected()` などを呼び出すことになります。
3
3
 
4
4
 
5
5
  ところで、APIリファレンスは読まれましたか?
6
6
  例えば、 [is_connected()](https://discordpy.readthedocs.io/ja/latest/api.html#discord.VoiceClient.is_connected) はリファレンス上でも `discord.VoiceClient` のメソッドとして表記されていますよ。
7
- 実装の際にはリファレンスを参照することを推奨します。
7
+ 実装の際にはリファレンスを参照することを推奨します。
8
+
9
+ (追記)
10
+ 各サーバーごとの再生中情報をIDで指定したチャンネルに送信する例です。
11
+
12
+ ```py
13
+ vc_name_list = []
14
+ for voice_client in client.voice_clients:
15
+ if voice_client.guild and voice_client.is_playing():
16
+ vc_name_list.append(voice_client.guild.name)
17
+ await client.get_channel(チャンネルID).send('以下のサーバーでボットが音楽を再生中です。\n' + '\n'.join(vc_name_list))
18
+ ```