Discordのボイスチャンネルの入退室を通知させる

Discordのボイスチャンネルの入退室を通知させる:


ボイスチャンネルの入退室の通知bot

on_voice_state_update(before, after)を使うとボイスチャンネルで変化があった時のデータを取れるので、これを使って通話部屋の入退室記録を取ります。

これで誰かが通話が開始した時に見逃すこともなくなると思います


ソース

bot.py
import discord 
import datetime 
 
client = discord.Client() 
 
@client.event 
async def on_voice_state_update(before, after): 
    if after.server.id == '監視するサーバーid': 
        nowtime = datetime.datetime.utcnow() 
        nowtime = nowtime + datetime.timedelta(hours=9) 
        nowtime = nowtime.strftime("%m/%d-%H:%M") 
        vcchannel = client.get_channel('通知させたいテキストチャンネルid') 
 
        if(before.voice_channel is None): 
            jointext=nowtime + "に "+ after.name + " が "+ after.voice_channel.name + " に参加しました。" 
            await client.send_message(vcchannel, jointext) 
        elif(after.voice_channel is None): 
            outtext=nowtime + "に "+ before.name + " が "+ before.voice_channel.name + " から退出しました。" 
            await client.send_message(vcchannel, outtext) 
 
client.run("あなたのトークン") 
サーバーidは指定しなくてもいいけど、複数サーバーに入ってるbotだとすべてのサーバーのボイスチャンネルの出入りを通知してしまうので注意。

では、また次の記事で

いいねを頂けると次の記事への励みになります(なくても書くけど)

コメント

  1. 試してみたのですが、仕様変更によりできませんでした。プログラミングの知識が無く、長時間にわたって格闘して、調べてもできませんでした。出来れば仕様変更後にも適応できるようなコードを教えて頂けないでしょうか?お願いします。

    返信削除
    返信
    1. こちらの記事を最新版の discord.py で使おうとして動かず困っている方が他にもいたので、v1.1.1 の discord.py 向けに同じ動作をするコードを書きました。

      https://qiita.com/aiotter/items/69f8d5a4c5a75313e77a

      削除

コメントを投稿

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)