1. ホーム
  2. python

[解決済み] なぜdiscord.pyで地域指示記号の文字絵文字が使えないのですか?

2022-02-27 06:04:20

質問

絵文字を "????" のように使おうとすると、このようなエラーが発生します。

Command raised an exception: HTTPException: 400 Bad Request (error code: 10014): Unknown Emoji

以下は私のコードです。

    @commands.command(name="warcaby", aliases=["checkers"])
    async def warcabycmd(self, ctx):
      gracz1 = ctx.author
      gracz2 = ctx.message.mentions[0]
      plansza_start = """(board)"""
      embed=discord.Embed(title=f'Grasz z {gracz2}. Ruch gracza {gracz1}!', description=plansza_start, color=ctx.author.color)
      embed.add_field(name='Instrukcje', value='Wybierz pole, a wybrać pionek, a następnie wybierz, w którą stronę idziesz!')
      msg = await ctx.send(content=None, embed=embed)
      await msg.add_reaction(":regional_indicator_f:")
      await msg.add_reaction(":regional_indicator_g:")
      await msg.add_reaction(":regional_indicator_h:")
      await msg.add_reaction("two")
      await msg.add_reaction("three")
      await msg.add_reaction("four")
      await msg.add_reaction("five")
      await msg.add_reaction("six")
      await msg.add_reaction("seven")
      await msg.add_reaction("eight")

手伝ってくれる?

どのように解決するのですか?

ボットは不和の絵文字をunicodeのシンボルとして見ています。ボットに必要なのはシンボルであり、名前ではありません。その絵文字が以下のようなものである場合、メッセージに反応することができません。 :smile: . 絵文字は "???" または "???" などの文字で伝える必要があります。

pcでは絵文字の前に"㊧"をつけると出てきます。添付のスクリーンショットをご覧ください。

ただし、数字には使えません。使用する記号は、「1️⃣」、「2️⃣」などです。

絵文字を取得する一つのアイデアとして、ターミナルから絵文字の印刷とコピーを使用する方法があります。 このような簡単なコマンドを実行し、ターミナルに表示される絵文字の出力を見てください。ターミナルが表示するものが、あなたがコードで使用する必要があるものです。

@commands.command()
async def emojiprint(ctx, *, emojis):
    print(emojis)

以下は、あなたのコードに私が行った小さな変更を加えたものです。テストしてみましたが、うまくいっているようです

    @commands.command(name="warcaby", aliases=["checkers"])
    async def warcabycmd(self, ctx):
        gracz1 = ctx.author
        gracz2 = ctx.message.mentions[0]
        plansza_start = """(board)"""
        embed=discord.Embed(title=f'Grasz z {gracz2}. Ruch gracza {gracz1}!', description=plansza_start, color=ctx.author.color)
        embed.add_field(name='Instrukcje', value='Wybierz pole, a wybrać pionek, a następnie wybierz, w którą stronę idziesz!')
        msg = await ctx.send(content=None, embed=embed)
        emoji_list = ['????', '????', '????', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣']
        for i in emoji_list:
            await msg.add_reaction(i)