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

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

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

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

Python

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

解決済

discord.pyの埋め込みメッセージ

Rea
banana

総合スコア2

Discord

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

Python

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

2回答

1グッド

0クリップ

233閲覧

投稿2022/11/17 03:57

編集2022/11/17 04:04

前提

discord.pyでhelpコマンドを作ってます。

実現したいこと

リアクションしたら埋め込みメッセージを移動する

発生している問題・エラーメッセージ

補足情報 発生している問題 1ページから始まって2ページが飛ばされて3ページになり5ページまで行って全部戻すと2ページになります エラーメッセージはないです。

@bot.command() async def help(ctx): pages = 5 cur_page = 1 embed1 embed2 embed3 embed4 embed5 contents = [embed1, embed2, embed3, embed4, embed5] message = await ctx.send(embed=embed1) await message.add_reaction("◀️") await message.add_reaction("▶️") def check(reaction, user): return user == ctx.author and str(reaction.emoji) in ["◀️", "▶️"] while True: try: reaction, user = await bot.wait_for("reaction_add", timeout=500, check=check) if str(reaction.emoji) == "▶️" and cur_page != pages: cur_page += 1 await message.edit(embed=contents[cur_page + 0]) await message.remove_reaction(reaction, user) elif str(reaction.emoji) == "◀️" and cur_page > 1: cur_page -= 1 await message.edit(embed=contents[cur_page - 0]) await message.remove_reaction(reaction, user) else: await message.remove_reaction(reaction, user) except asyncio.TimeoutError: await message.delete() break ### 試したこと ### 補足情報(FW/ツールのバージョンなど) discord.py : 2.01 discord : 2.00
banana👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

0

リストは前から0番目、1番目...と続きます。
なので、参照番号である cur_page の初期値を0にしてください。

投稿2022/11/21 01:39

pecop

総合スコア270

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

自己解決

python

1@bot.command() 2async def help(Interaction: discord.Interaction): 3 buttons=["⏮️","⏪","⬅️","➡️","⏩","⏭"] 4 counts=0 5 page1= 6 page2= 7 page3= 8 page4= 9 page5= 10 page6= 11 embed_list=[page1,page2,page3,page4,page5,page6] 12 embed=await Interaction.send(embed=embed_list[counts]) 13 for button in buttons: 14 await embed.add_reaction(button) 15 while True: 16 try: 17 reaction, user=await bot.wait_for("reaction_add",timeout=500,check=lambda reaction, user: user == Interaction.author and reaction.emoji in buttons) 18 except asyncio.TimeoutError: 19 await embed.delete() 20 break 21 else: 22 preview_pages=counts 23 if reaction.emoji == "⬅️": 24 counts -= 1 25 elif reaction.emoji == "➡️": 26 counts += 1 27 elif reaction.emoji == "⏪": 28 counts -= 2 29 elif reaction.emoji == "⏩": 30 counts += 2 31 elif reaction.emoji == "⏮️": 32 counts -= 3 33 elif reaction.emoji == "⏭": 34 counts += 3 35 await embed.remove_reaction(reaction, user) 36 if counts != preview_pages: 37 await embed.edit(embed=embed_list[counts])```

投稿2022/11/17 05:53

編集2022/12/19 03:12
Rea

総合スコア2

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Discord

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

Python

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