実現したいこと
特定のロールを付けた人かつオンラインの代表者にランチを決めてもらう
###発生している問題
エラーコードはでず、起動はするのですが、
指定した時間に発言してくれません。
# coding:UTF-8 from datetime import datetime from discord.ext import tasks import random import asyncio import discord ROLE_ID = 123456789 CHANNEL_ID = 123456789 # 接続に必要なオブジェクトを生成 client = discord.Client() # 起動時に動作する処理 @client.event async def on_ready(): loops.start() print('ready') # 60秒に一回ループ @tasks.loop(seconds=60) async def loops(): # 現在の時刻 now = datetime.now().strftime('%H:%M') channel_sent = client.get_channel(CHANNEL_ID) # ROLE_ID のロールを取得 lunch_role = channel_sent.guild.get_role(ROLE_ID) tmp = list(set(channel_sent.members) & set(lunch_role.members)) # 特定のチャンネル内にいる、お昼ご飯を注文したい人のリスト。積集合を取っています online_members = [member for member in tmp if member.status == discord.Status.online] # 先のリストから、ステータスがオンラインのメンバーのみのリストを作成。 if now == '09:02': await channel_sent.send(f"今日のお昼ご飯当番は {random.choice(online_members).mention} さんです!!") # Botの起動とDiscordサーバーへの接続 client.run("Botのトークン")
###最後に
プログラミング初心者ですが、お手柔らかにご教授していただけると嬉しいです!!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/11 00:10 編集
2022/05/19 00:49