web-dev-qa-db-ja.com

discord.py絵文字ボット内のすべてのサーバー

埋め込みごとに固有の絵文字を含む埋め込みを送信するボットがあり、絵文字をアップロードしたテストサーバーではうまく機能しますが、他のサーバーにはカスタム絵文字がないため、これらのサーバーには表示されません。

使用:

emoji = get(ctx.message.guild.emojis, name='emojinamehere')

もちろん、それが存在するサーバーで動作しますが、ボットが存在するサーバーからすべての絵文字を取得して使用する方法はありますか?

2
darkone

_ctx.message.guild.emojis_ akaを具体的に使用しているため、コンテキストギルド(絵文字がない可能性があります)から絵文字を取得しようとしています。

名前でgetの結果を取り除き、 bot.get_emoji() を使用することができます。ここで、botはあなたの bot/client オブジェクトです。

ボットはすべてのギルドのすべての絵文字を内部キャッシュに保存し、get_emoji()はそこから取得してすべてのギルドで機能するようにします。

これを行うには、現在取得しているような名前ではなく、絵文字ID(整数)が必要です。名前で取得し、そのIDを取得することもできますが、これは不要な手順です。

絵文字IDは一意で変更できないため、使用するだけです(名前は重複している可能性があり、名前が変更される可能性があるため、名前で問題が発生する可能性があります)。

Discordクライアントアプリを使用して、絵文字IDをすばやく取得できます。

  • テキストボックスの入力にカスタム絵文字を入力する
  • 絵文字の前に_\_を入力してください
  • チャットにメッセージを送信
  • メッセージは_<:emoji_name:emoji_id>_のようなものに変換されます
0
BrainDead