前提・実現したいこと
DiscordのBotをPython3.7で作っています。
機能としては、
・Botの起動時に指定したチャンネルに対して「起動完了」と送る
・「!!test」と入力されると、「Test OK」と返す
・「!!info」で、Botに関する情報を表示
・(DM限定)チャット欄から2つの値を取得し、足し算した値をチャットに送信する
というような感じです。
発生している問題・エラーメッセージ
一応ちゃんと動きはするのですが、複数のユーザーが同時にBotを利用した場合、うまく動作しません
詳細として例を挙げますと
「ユーザーAがDMで足し算のコマンドを使っていて、32行目の処理が終わり、ユーザーAの値の入力を待機しているとき、
ユーザーBがチャンネルで『!!help』と入力したとき、チャンネルに『!!help』のメッセージが流れるが、ユーザーAとBotのDMにて、ユーザーAが値の入力が終わっていないのにも関わらず、34行目の処理に進んでしまう」
というように、複数人で同時に利用ができません。
該当のソースコード
Python
1import discord 2from discord.ext import commands 3 4TOKEN = '***' 5information = '開発版 ver.1.0' 6developperinfo = 'Developper: *** \nBlog: ***' 7#プレフィック 8client = commands.Bot(command_prefix = '!!') 9 10#起動時のイベント 11@client.event 12async def on_ready(): 13 print('ready') 14 CHANNEL_ID = *** 15 channel = client.get_channel(CHANNEL_ID) 16 await channel.send('起動完了') 17 18#testコマンド 19@client.command() 20async def test(ctx): 21 await ctx.send('Test OK') 22#botの情報を表示するコマンド 23@client.command() 24async def info(ctx): 25 await ctx.send(information) 26 await ctx.send(developperinfo) 27 28#足し算コマンド 29@client.command() 30@commands.dm_only() 31async def hs(message): 32 await message.author.send('1つ目の値を入力(半角)') 33 kadai = await client.wait_for('message') 34 await message.author.send('2つ目の値を入力(半角)') 35 test = await client.wait_for('message') 36 print(type(kadai),type(test)) 37 38 answer = int(kadai.content)+int(test.content) 39 40 await message.author.send(answer) 41 42#トークン 43client.run(TOKEN) 44
試したこと
対処法がわからず、何もできていないため
アドバイスをお願いします
補足情報(FW/ツールのバージョンなど)
Python3.7
Windows10
discord.py
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。