質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

629閲覧

特定の役職を付けた人オンラインの人に

poketatsu

総合スコア19

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/01/06 07:34

編集2022/01/11 00:12

実現したいこと

特定のロールを付けた人かつオンラインの代表者にランチを決めてもらう

###発生している問題
エラーコードはでず、起動はするのですが、
指定した時間に発言してくれません。

# 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のトークン")

###最後に
プログラミング初心者ですが、お手柔らかにご教授していただけると嬉しいです!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ループを定義していますが、それをスタートしていません。

py

1@client.event 2async def on_ready(): 3 loops.start() 4 print('ready')

投稿2022/01/09 02:26

Awayume

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poketatsu

2022/01/11 00:10 編集

初めまして! コード修正致しました! 回答ありがとうございます! このようなエラーがでてしまい、起動はするのですが発言をしてくれないです。 C:\Users\hopef\PycharmProjects\discordbot\venv\Scripts\python.exe C:/Users/hopef/PycharmProjects/discordbot/bot.py ready Unhandled exception in internal background task 'loops'. Traceback (most recent call last): File "C:\Users\hopef\PycharmProjects\discordbot\venv\lib\site-packages\discord\ext\tasks\__init__.py", line 101, in _loop await self.coro(*args, **kwargs) File "C:/Users/hopef/PycharmProjects/discordbot/bot.py", line 36, in loops await channel_sent.send(f"今日のお昼ご飯当番は {random.choice(online_members).mention} さんです!!") File "C:\Users\hopef\AppData\Local\Programs\Python\Python38-32\lib\random.py", line 290, in choice raise IndexError('Cannot choose from an empty sequence') from None IndexError: Cannot choose from an empty sequence
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問