前提・実現したいこと
discord.pyでselect-menuを使って、選択された項目別に、さらに新しい別のselect-menuを表示するプログラムを作っています。
この時、関数を呼び出しているのですが、呼び出した後の処理が実行されません。
wait_forが関係していそうです。
これを解決するために、何かいい方法はないでしょうか。
下記のコードでは、dashbord関数でoption2が押された時に、role_setting関数を呼び出すのですが、その後dashbord関数を呼び出せません。
該当のソースコード
discord.py
1async def role_setting(ctx): 2 guild = bot.get_guild(874981078228676669) 3 everyone_role = discord.utils.get(guild.roles, name="@everyone") 4 overwrites = {ctx.author: discord.PermissionOverwrite(read_messages=True), 5 everyone_role: discord.PermissionOverwrite(read_messages=False), 6 guild.me: discord.PermissionOverwrite(send_messages=True) 7 } 8 ch_role = await guild.create_text_channel(name="ロールの再設定", overwrites=overwrites) 9 await msg1.delete() 10 await dashbord(ctx) 11 msg = await ch_role.send(embed = e_role, 12 components= 13 [Select(placeholder="再設定したい項目を選んでください", 14 custom_id="role", 15 max_values=2, 16 options=[ 17 SelectOption( 18 label="利用チャンネルの再設定", 19 value="option1", 20 ), 21 SelectOption( 22 label="通知設定", 23 value="option2", 24 ), 25 ])] 26 ) 27 28 29 interaction = await bot.wait_for( 30 "select_option", check=lambda inter: inter.custom_id == "role" 31 ) 32 selected_value = interaction.values 33 if selected_value == "option1": 34 await choose_art(ctx, ch_role, role_setting_list) 35 if selected_value == "option2": 36 await nontification(ctx, ch_role) 37 38@bot.command() 39async def dashbord(ctx): 40 rule = bot.get_emoji(876075814540685312) 41 setting = bot.get_emoji(876077004032716810) 42 msg = await ctx.send(embed = e_dashbord, 43 components= 44 [Select(placeholder="操作したい項目を選んでください", 45 custom_id="dashbord", 46 options=[ 47 SelectOption( 48 label="利用規約", 49 value="option1", 50 emoji=rule, 51 ), 52 SelectOption( 53 label="ロール設定", 54 value="option2", 55 emoji=setting, 56 ), 57 ])] 58 ) 59 interaction = await bot.wait_for( 60 "select_option", check=lambda inter: inter.custom_id == "dashbord" 61 ) 62 selected_value = interaction.values[0] 63 if selected_value == "option1": 64 await interaction.send(content=f"DMに利用規約を送信しました。") 65 if selected_value == "option2": 66 await interaction.send(content=f"#ロールの再設定 へ移動してください。") 67 await role_setting(ctx) 68 await msg.delete() 69 await dashbord(ctx)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。