Pular para o conteúdo principal

Visão geral

Os embeds do Petto são modelos salvos: crie um (no Discord ou no dashboard), dê um nome a ele e depois aponte comandos personalizados, respostas automáticas, mensagens de boas-vindas/saída/impulso, mensagens de sorteio ou painéis de ticket para ele pelo nome. Mude o modelo uma vez e tudo o que o usa é atualizado.
A página Embeds do dashboard tem um construtor visual completo: uma prévia ao vivo fiel ao Discord, até 10 embeds e 5 fileiras de botões de link por modelo, atalhos de formatação markdown e uma referência de variáveis com busca. Tudo abaixo também funciona direto pelo Discord.
A página Embeds com welcome_embed aberto: a prévia com um embed e três botões, as reações, o conteúdo da mensagem e os campos do embed

Dashboard → Design → Embeds: o editor visual, com a prévia ao vivo acima dos campos da mensagem.

Criando e gerenciando

liam usa !embed create announcement_embed e o Petto responde com o painel: botões para o título, a descrição, a cor, o autor, o rodapé, as imagens, o horário, os campos, e Salvar, Redefinir e Cancelar

No Discord: !embed create abre o painel de edição do embed novo.

liam usa !embed preview welcome_embed e o Petto mostra o embed com liam mencionado e 1840 membros

No Discord: !embed preview monta o embed salvo com você como membro.

kira pede a prévia de welcome e o Petto diz que não há embed com esse nome e como criá-lo

No Discord: um nome que não está salvo recebe uma dica para criá-lo.

liam envia welcome_embed para o canal de anúncios e o Petto confirma

No Discord: !embed send confirma para onde o embed foi.

O embed de boas-vindas publicado pelo Petto no canal de anúncios

No Discord: o embed como os membros o veem no canal.

liam apaga old_rules e o Petto confirma

No Discord: !embed delete apaga um embed salvo.

O Petto lista em ordem os cinco embeds salvos do servidor

No Discord: !embed list mostra os embeds salvos do servidor.

chu usa !embed vars e o Petto mostra as variáveis do usuário com o que cada uma dá, página 1 de 10

No Discord: !embed vars, a primeira página de variáveis, com botões para passar as páginas.

!embed create abre um painel de edição interativo com botões para cada campo (título, descrição, cor, campos e assim por diante), e não uma resposta de texto simples.
vars mostra a referência de variáveis direto no Discord, em páginas.

Criando a partir de um código

liam cria welcome com um código e o Petto confirma e mostra o embed com o título Boas-vindas, liam

No Discord: um embed feito com um código é salvo e mostrado na hora.

O embed inteiro pode ser escrito como um único código e é salvo e mostrado na hora, sem o painel do editor. Os blocos são unidos por &v ($v também é lido), && fica entre os valores de um bloco, e o texto antes de {embed} ou {message: ...} é o texto da mensagem. Um código pode ter até 10 embeds: {embed}&v{...}&v{embed}&v{...}. Um design de Components V2 também pode ser criado a partir de um código: cole o código que começa com p2. (o que o dashboard e o Embed Builder dão a você) no mesmo lugar, e o design é salvo e mostrado na hora.
liam cola um código p2. e o Petto salva o design rules_v2 e o mostra: as regras, uma imagem e os botões Aceito e petto.sbs

No Discord: um código p2. salva um design Components V2 e o mostra.

O gerador de código de embed do site monta uma mensagem com prévia e a copia como um código de uma linha. Tudo o que não é suportado é informado e deixado de fora, nada é salvo se o Discord fosse recusar o embed, e variáveis como {user} funcionam dentro dos valores. O Discord não permite quebras de linha reais em uma opção de comando, então escreva {newline}. !embed create sem código abre o painel do editor como antes. Com o comando slash, o código vai na opção code (/embed create name code:). Um código com texto de mensagem ou botões é salvo no formato do dashboard e é editado lá. Veja !embed vars para a página de códigos.
O gerador de códigos de embed com um título, uma descrição, uma cor e um botão verde Aceitar, a prévia e o código de uma linha

Gerador de códigos de embed (petto.sbs/embed-code): o formulário, a prévia e o código para copiar.

chu usa !embed vars 10 e o Petto lista cada bloco de um código de embed com um exemplo e o link para o gerador

No Discord: a página do código de !embed vars (página 10).

Enviando e mudando um código

Um código de embed funciona em mais lugares além do !embed create:
  • Respostas automáticas: escreva o código como a resposta, !autoresponder add test, {embed}$v{description: Oi, {user.mention}} --reply. Veja Resposta automática para as flags.
  • Mudar uma mensagem que o Petto já enviou: !editembed a substitui por um novo código.
liam usa !editembed com o link de uma mensagem e um código com dois embeds, e o Petto confirma que mudou a mensagem em anúncios

No Discord: !editembed confirma a mudança com um link para a mensagem.

A mensagem do Petto em anúncios agora tem dois embeds, Texto novo e Um segundo embed

No Discord: a mensagem depois de !editembed: exatamente o que o código novo diz.

Ele precisa de Gerenciar mensagens nesse canal e só funciona em mensagens que o Petto enviou. O que o novo código não define é limpo, então a mensagem fica exatamente como o código diz. Uma mensagem feita com Components V2 não pode virar uma mensagem de embed normal; envie uma nova com !embed send.
liam aponta !editembed para uma mensagem de kira e o Petto responde em vermelho que só pode mudar as próprias mensagens

No Discord: !editembed recusa uma mensagem que o Petto não enviou.

Se um bloco perder a chave de fechamento, por exemplo {message: {user.mention}$v{description: ...}, o bloco termina onde o próximo começa e o Petto avisa você, em vez de ler o resto do código como texto.
liam usa um código cujo bloco message perdeu a chave; o Petto muda a mensagem e adiciona uma linha dizendo que um bloco foi fechado antes do próximo

No Discord: um bloco sem a chave de fechamento: a mensagem é mudada e o Petto diz onde o bloco foi fechado.

Botões com ação

Além dos botões de link, um código pode ter botões que fazem algo quando são clicados:
Um embed Regras do Petto com um botão verde Aceitar, um azul Ver as regras e um cinza No privado

No Discord: o código de exemplo enviado no canal de regras: três botões com ações.

Abaixo da mensagem de regras o Petto responde para Mia, só para ela, que o cargo Membros foi adicionado

No Discord: um clique em Aceitar dá o cargo, e só quem clicou vê a resposta.

O Petto mostra para Mia o embed salvo de regras com as quatro regras, como uma mensagem que só ela vê

No Discord: Ver as regras responde com o embed salvo, só para quem clicou.

O Petto diz para Mia, só para ela, que enviou o embed na DM dela

No Discord: No privado envia o embed por mensagem direta e avisa.

O embed de regras em uma mensagem direta do Petto

No Discord: o embed salvo nas mensagens diretas de quem clicou.

<cargo> é uma menção, um ID ou o nome do cargo. Um botão pode ter até 4 ações (por exemplo dar um cargo e mostrar um embed ao mesmo tempo) e um código até 5 botões, em uma linha. O Petto só muda cargos que estejam abaixo do seu cargo mais alto, que não sejam de uma integração, e precisa da permissão Gerenciar cargos. O que cada botão faz fica dentro do próprio botão, então continua funcionando depois que o Petto reinicia.
Os botões com ação também se fazem sem escrever código: no gerador de códigos e no criador de embeds do dashboard, cada botão pode ser Link ou Ação (com cor, cargo ou embed salvo).
A seção Botões do editor: Aceitar as regras dá um cargo, Ver as regras mostra um embed salvo e petto.sbs é um link

Dashboard → Design → Embeds: cada botão é um Link ou uma Ação, com sua cor, emoji e ações.

Enviar mensagens com !send

Só membros com Gerenciar mensagens no servidor podem usar !send (e petto send, !message send e /message send). A permissão é verificada primeiro, em todas as formas de enviar, e sem ela o Petto recusa em particular. O Petto também precisa ver e escrever no canal.
liam envia um texto que menciona o cargo Membros para anúncios e o Petto confirma

No Discord: !send confirma com um link para a mensagem.

A mensagem do Petto em anúncios com a menção de Membros e o link

No Discord: a mensagem como o Petto a enviou.

liam envia um embed Regras com um botão Aceitar para regras e o Petto confirma

No Discord: um código de embed com um botão enviado ao canal de regras.

O embed Regras com o botão verde Aceitar

No Discord: o embed e o botão no canal.

Envia uma mensagem como o Petto. Pode ser texto com quebras de linha, links, menções de cargos, um código de embed, e as imagens, vídeos ou arquivos que você anexar ao comando (até 10). Sem canal, é enviada no atual; se você responder a uma mensagem desse canal, a mensagem enviada também responde a ela.
  • Você precisa de Gerenciar mensagens nesse canal, e o Petto precisa poder escrever lá (e Anexar arquivos ou Inserir links quando necessário).
  • Os pings seguem as suas permissões: pessoas sempre, um cargo só se puder ser mencionado, e @everyone ou cargos bloqueados só se você tiver Mencionar todos.
  • As variáveis como {user.mention} e {server_name} são preenchidas com você como membro.
  • Um código com botões que dão ou tiram cargos exige que você tenha Gerenciar cargos e que esses cargos estejam abaixo do seu cargo mais alto; um botão que mostra um embed exige que esse embed exista.
kira tenta enviar um botão que dá o cargo Admin e o Petto diz que esse cargo não está abaixo do cargo mais alto dela

No Discord: um botão com um cargo acima do seu cargo mais alto é recusado.

Editando campos

liam usa !embed edit title em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit title, e depois !embed preview mostra o título novo, com o link, na prévia.

liam usa !embed edit description em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit description, e depois !embed preview mostra a descrição nova, com a quebra de linha.

liam usa !embed edit color em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit color, e depois !embed preview mostra a cor nova da barra lateral.

liam usa !embed edit author em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit author, e depois !embed preview mostra a linha do autor com o ícone.

liam usa !embed edit thumbnail em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit thumbnail, e depois !embed preview mostra a imagem pequena no canto superior direito, de {user_avatar}.

liam usa !embed edit image em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit image, e depois !embed preview mostra a imagem grande embaixo do embed.

liam usa !embed edit timestamp em welcome_embed, o Petto diz que foi atualizado e a prévia mostra a mudança

No Discord: !embed edit timestamp, e depois !embed preview mostra o horário da mensagem no rodapé.

Campos (os pares de nome/valor)

liam adiciona o campo Regras a welcome_embed, o Petto conta 2 de 25 e a prévia mostra os dois campos

No Discord: !embed field add: o segundo campo, Regras, na prévia.

liam remove o campo 1 de welcome_embed e a prévia não tem mais o campo Membros

No Discord: !embed field remove 1: o primeiro campo sumiu.

Até 25 campos por embed. position começa em 1, na ordem mostrada pelo !embed preview.

Usando um embed salvo

Aponte o !customcommand para um embed salvo em vez de um texto de resposta simples; embed_template tem prioridade sobre response.
Uma resposta automática pode enviar um embed salvo (--embed_template), um código de embed escrito como resposta, ou o modo de embed embutido mais leve (cor, título, rodapé).
Todo subcomando setup (!welcome setup, !leave setup, !boost setup, !dmonjoin setup) tem uma opção embed que tem prioridade sobre a message simples. O message também pode ser um código de embed escrito ali mesmo, assim você configura o canal e o embed (com seus botões) em um só comando.
Tanto !ticket panel create quanto !ticket category add aceitam um embed salvo para a mensagem do painel ou para a mensagem de boas-vindas do ticket.
Vários embeds salvos (ou códigos de embed) podem ser as páginas de uma mesma mensagem, com botões para passá-las: !pagination create #regras regras_gerais e depois !pagination add. Veja Paginação.

Reações

Um embed salvo pode levar até 5 reações: emojis que o Petto adiciona à mensagem quando a envia. No editor do dashboard, elas vão no campo Reações, separadas por espaços (um emoji personalizado é escrito <:name:id>). É o mesmo que escrever {reactreply:emoji} no texto para cada uma, e os dois podem ser usados juntos. Elas são colocadas na mensagem quando ela é enviada com !embed send, por respostas automáticas e comandos personalizados, em mensagens fixas, painéis, respostas de parceria, nas boas-vindas de uploads e em uma mensagem de honeypot.
O embed da noite de jogos do Petto em anúncios com as reações ✅, 🤔 e ❌ já colocadas

No Discord: um embed salvo com três reações, enviado com !embed send.

Dashboard e o Embed Builder

Uma mensagem feita no dashboard pode ser enviada ao Embed Builder com um código de compartilhamento, e uma mensagem enviada pelo Embed Builder pode ser aberta no dashboard para continuar a edição. O dashboard também pode enviar uma mensagem de teste a um canal antes de você salvar.
A caixa Testar e compartilhar com o seletor de canal, Enviar teste, Copiar código para compartilhar, Copiar JSON e Abrir no Embed Generator

Dashboard → Design → Embeds: Testar e compartilhar: envie um teste para um canal ou sua DM, copie o código para compartilhar ou o JSON, ou abra no Embed Generator.

Embeds V2

A página Embeds do dashboard também tem um editor V2 para as mensagens de Components V2 do Discord: contêineres, texto, imagens, seções, divisórias e fileiras de botões. Um design V2 é salvo como qualquer outro embed e pode ser usado em alertas de missões, punições, no starboard, em mensagens de verificação e de bump, e com !embed send e !embed preview. Os textos e links dele usam as variáveis de sempre. Tudo o que o Discord recusaria é limpo antes do envio.
O design rules_v2 aberto no editor V2, com a prévia e os primeiros componentes do contêiner

Dashboard → Design → Embeds: o editor V2: a prévia, depois o contêiner com texto, divisor, imagem e fileira de botões.

Um design V2 é compartilhado com o Embed Builder por um código que começa com p2.. Um botão de um design V2 (em uma linha de botões, ou ao lado de uma seção) é um link ou uma ação. Um botão de ação tem uma cor (azul, verde, cinza ou vermelho), um emoji opcional e até quatro ações: dar, tirar ou alternar um cargo, ou mostrar um embed salvo (só para quem clicou, no canal ou na mensagem direta), igual aos botões com ação dos códigos de embed. Um botão cujos cargos não existem mais é deixado de fora.
liam usa !embed preview rules_v2 e o Petto mostra o contêiner com as regras do Petto Land, a imagem e dois botões

No Discord: um design V2 mostrado com !embed preview.

Os blocos de texto de um design V2 também aceitam menções silenciosas: !@Cargo mostra a menção sem notificar ninguém.

Variáveis dentro de embeds

Todo texto de um embed (texto da mensagem, título, descrição, campos, autor, rodapé, rótulos de botões) e todo link (URL, miniatura, imagem, ícones) aceita as variáveis. Quais delas têm dados depende do que envia o embed: umas boas-vindas preenchem o novo membro, um sorteio as {gw.*}, uma punição as {case.*}.
Exemplo
Resultado (para !embed preview profile)
chu cria profile com o código e pede a prévia: o nome e a foto de chu, Membro do Petto Land desde uma data, o cargo mais alto Moderadores e o ID de chu

No Discord: o código de profile, e depois !embed preview profile com chu como membro.

Algumas coisas para ter em mente:
  • !embed preview preenche as variáveis com você como membro e com o canal atual, para você ver um resultado real. As variáveis de um evento (um nível, um caso, um sorteio) ficam vazias ali.
  • A prévia ao vivo do dashboard as preenche com dados de exemplo (um membro chamado Liam), e uma mensagem de teste enviada pelo dashboard usa a sua conta real.
  • Os timestamps do Discord ({timestamp}, {gw.ends}, {case.expires}, <t:…>) aparecem formatados no texto da mensagem, nas descrições e nos valores dos campos. Em títulos, rodapés e nomes de autor o Discord mostra o código cru, então use {date} ou palavras normais ali.
  • Um campo cujo nome ou valor fica vazio é omitido, então um campo feito só de uma variável desaparece quando essa variável não tem dados.
  • Um link de imagem que fica vazio ou não é um link válido é simplesmente omitido.
No texto da mensagem de um código de embed e no texto de um design V2, um ! antes de uma menção (!@everyone, !@Cargo, !<@&id>, !{user.mention}) a mostra sem notificar ninguém, e \!@everyone mostra o texto. No título, na descrição, nos campos e no rodapé de um embed uma menção nunca notifica, então o ! só é removido. Veja Menções silenciosas.