pythonでdiscord Botを作ってみた

普段友人とオンラインゲームをしている時に無料通話アプリ「discord」を使っています。5人で1チームになって戦うゲームをよくやっているのですが、最近は情報系の勉強や仕事が忙しくて、すでに4人揃っている時だけ参加したいと思ってBOTを作成しようと思いました。今回はPythonを使ってサーバ内でボイスチャットに接続しているメンバーを30分に1回のペースで通知してくれるdiscordのBOTを作ってみました。あまり使う人が多いシステムでないですが、discordのBOTに関する日本語の記事がないので一応ソースコード貼っておきます。

 

開発環境やチュートリアルはこのURLに行って確認してください。

qiita.com

 

プロパティはdiscord.pyの中にあるclient.pyのソースコードを参考にしてください

import discord
import asyncio

my_bot = discord.Client()

channel = discord.Object(id='自分のデフォルトチャンネルIDを入れる')
server = discord.Object(id='自分のサーバIDを入れる')

async def login_status_message():
    while True:
        server_members = [member.name for member in my_bot.get_all_members()]
        logined_member = [member.name for member in my_bot.get_all_members() if member.voice.voice_channel is not None]

        if len(logined_member) == 4:
            m = "現在、"+logined_member[0]+"さんと"+logined_member[1]+"さんと"+logined_member[2]+"さんと"+logined_member[3]+"さんがSATで活動しています!"
            await my_bot.send_message(channel,m)
            n = "4パが出来ています!!"
            await my_bot.send_message(channnel,n)

        await asyncio.sleep(1800)

@my_bot.event
async def on_ready():
    print('Logged in as')
    print(my_bot.user.name)
    print(my_bot.user.id)
    print('------')
    my_bot.loop.create_task(login_status_message())

my_bot.run("自分のTokenを入れる")