App-eigene Emojis
Emojis, die du unter deiner Anwendung hochlädst, sind in jedem Server nutzbar, in dem dein Bot postet, ohne dort einen Emoji-Platz zu belegen. Discord-Parität: gleiches Wire-Format, gleiche <:name:id>-Syntax im Nachrichteninhalt.
Grenzwerte
- 2.000 Emojis pro Anwendung (weiche Obergrenze, beim Erstellen geprüft).
- 256 KB maximale Dateigröße.
- Content-Types:
image/png,image/jpeg,image/gif,image/webp. - Name: 2–32 Zeichen, Zeichensatz
[a-zA-Z0-9_]. Pro App eindeutig, ohne Beachtung der Groß-/Kleinschreibung:BotIconundboticonkollidieren.
Erkennung von Animationen
Das animated-Flag wird serverseitig aus dem Content-Type des Uploads gesetzt. Alles, was als image/gif hochgeladen wird, gilt als animiert. Der Client kann das nicht überschreiben. Wenn du ein animiertes Emoji im Nachrichteninhalt referenzierst, nutze das Präfix <a:name:id> (identisch zu Discord).
REST-Endpunkte (bot-seitig)
Die Bot-API bietet lesenden Zugriff auf die Emojis deiner Anwendung. Authentifiziere dich mit Authorization: Bot {token}.
GET /applications/{application.id}/emojis
GET /applications/{application.id}/emojis/{emoji.id} Antwortform (Listeneinträge und Einzel-GET nutzen dieselbe Discord-Form):
{
"id": "1199283740192847360",
"name": "thinking_orange",
"animated": false,
"user": { "id": "...", "username": "you" },
"managed": false,
"available": true
} Erstellen / Ändern / Löschen sind über die Bot-API nicht verfügbar. Discords Routen POST /applications/{id}/emojis, PATCH und DELETE geben auf GameVox 404 zurück. Die gesamte Emoji-Verwaltung läuft über das Entwicklerportal (siehe unten); wir planen, die Schreib-Endpunkte in Discord-Form anzubieten, sobald die portalseitige Moderationspipeline stabil genug ohne menschliche Prüfung läuft.
Emojis in Nachrichten verwenden
Referenziere App-Emojis in content genauso wie servereigene Emojis:
// Statisch
"hello <:thinking_orange:1199283740192847360>"
// Animiert (beachte das vorangestellte `a:`)
"thanks <a:wave_orange:1199283740192847361>" Für Reaktionen übergibst du name:id im URL-kodierten Emoji-Pfad von PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me, genau wie bei Discord.
Upload-Ablauf im Portal
Das Entwicklerportal lädt Emojis über dieselbe Presigned-URL-Pipeline hoch wie Avatare und App-Symbole:
POST /api/uploads/presignmitpurpose=bot_app_emojiundapplication_id.- Die Datei per
PUTan die zurückgegebene S3-URL senden. POST /api/uploads/completemit der zurückgegebenenfile_id.POST /developer-portal/applications/{id}/emojismit{name, file_id}.
Der Server prüft, ob das Präfix des s3_key der Datei zu bot-emojis/{application_id}/ passt, sodass eine geleakte file_id aus einer anderen App die Bindung nicht besteht.
Speicherung
Gespeichert unter bot-emojis/{application_id}/{file_id}.{ext} im öffentlichen Bucket gamevox-files-prod. Soft-gelöschte Zeilen lassen das S3-Objekt bestehen; verwaiste Objekte räumt ein Hintergrundprozess ab.