Emojis do próprio app
Emojis enviados na sua aplicação podem ser usados em qualquer servidor onde o seu bot publique, sem ocupar uma vaga de emoji daquele servidor. Paridade com o Discord: mesmo formato de transporte, mesma sintaxe <:nome:id> no conteúdo da mensagem.
Limites
- 2.000 emojis por aplicação (limite flexível, verificado na criação).
- 256 KB de tamanho máximo de arquivo.
- Tipos de conteúdo:
image/png,image/jpeg,image/gif,image/webp. - Nome: 2 a 32 caracteres, conjunto
[a-zA-Z0-9_]. Único por app, sem diferenciar maiúsculas:BotIconeboticonconflitam.
Detecção de animação
A flag animated é definida no servidor a partir do tipo de conteúdo do envio. Tudo enviado como image/gif é considerado animado. O cliente não pode sobrepor isso. Ao referenciar um emoji animado no conteúdo da mensagem, use o prefixo <a:nome:id> (idêntico ao Discord).
Endpoints REST (lado do bot)
A API de bots oferece acesso somente leitura aos emojis da sua aplicação. Autentique-se com Authorization: Bot {token}.
GET /applications/{application.id}/emojis
GET /applications/{application.id}/emojis/{emoji.id} Formato da resposta (itens da lista e GET individual usam o mesmo formato do Discord):
{
"id": "1199283740192847360",
"name": "thinking_orange",
"animated": false,
"user": { "id": "...", "username": "you" },
"managed": false,
"available": true
} Criar, alterar e excluir não estão expostos na API de bots. As rotas do Discord POST /applications/{id}/emojis, PATCH e DELETE devolvem 404 no GameVox. Toda a gestão de emojis passa pelo portal (abaixo); pretendemos expor os endpoints de escrita no formato do Discord assim que o pipeline de moderação do portal estiver estável o bastante para rodar sem intervenção humana.
Usando emojis em mensagens
Referencie os emojis do app em content do mesmo jeito que os do servidor:
// Estático
"hello <:thinking_orange:1199283740192847360>"
// Animado (repare no `a:` inicial)
"thanks <a:wave_orange:1199283740192847361>" Para reações, passe nome:id no caminho de emoji codificado em URL de PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me, igual ao Discord.
Fluxo de envio no portal
O portal envia emojis pelo mesmo pipeline de URL pré-assinada usado para avatares e ícones de app:
POST /api/uploads/presigncompurpose=bot_app_emojieapplication_id.- Envie o arquivo com
PUTpara a URL do S3 devolvida. POST /api/uploads/completecom ofile_iddevolvido.POST /developer-portal/applications/{id}/emojiscom{name, file_id}.
O servidor verifica se o prefixo da s3_key do arquivo corresponde a bot-emojis/{application_id}/, então um file_id vazado de outro app não passa na vinculação.
Armazenamento
Armazenado em bot-emojis/{application_id}/{file_id}.{ext} no bucket público gamevox-files-prod. Linhas com exclusão lógica deixam o objeto no S3; objetos órfãos são recolhidos por um processo em segundo plano.