Variáveis de Mensagem
Variáveis de Mensagem permitem que você ajuste dinamicamente o conteúdo de sua mensagem com base no contexto. Isso é especialmente útil em respostas a comandos personalizados e componentes interativos.
Para usar uma variável em sua mensagem basta colocar {{ .VariableName }} onde você deseja que o valor apareça. Por exemplo, coloque {{ .Interaction.User.Mention }} no conteúdo da sua mensagem para pingar o usuário que usou o comando.
Por favor, note o ponto (.) na frente de cada nome de variável!

Lista de Variáveis
| Variável | Tipo | Descrição |
|---|---|---|
| .Interaction.User | text | Mencione o usuário que usou o comando ou componente interativo. |
| .Interaction.User.ID | text | O ID do usuário que usou o comando ou componente interativo. |
| .Interaction.User.Name | text | O nome de exibição ou nome de usuário do usuário que usou o comando ou componente interativo. |
| .Interaction.User.Username | text | O nome de usuário do usuário que usou o comando ou componente interativo. |
| .Interaction.User.Discriminator | text | O discriminador do usuário que usou o comando ou componente interativo. |
| .Interaction.User.Avatar | text | O hash do avatar do usuário que usou o comando ou componente interativo. |
| .Interaction.User.AvatarURL | text | A URL do avatar do usuário que usou o comando ou componente interativo. |
| .Interaction.User.GlobalName | text | O nome de exibição do usuário que usou o comando ou componente interativo. |
| .Interaction.User.Mention | text | Mencione o usuário que usou o comando ou componente interativo. |
| .Server | text | O nome do servidor onde o comando ou componente interativo foi usado. |
| .Server.ID | text | O ID do servidor onde o comando ou componente interativo foi usado. |
| .Server.Name | text | O nome do servidor onde o comando ou componente interativo foi usado. |
| .Server.Description | text | A descrição do servidor onde o comando ou componente interativo foi usado. |
| .Server.Icon | text | O hash do ícone do servidor onde o comando ou componente interativo foi usado. |
| .Server.IconURL | text | A URL do ícone do servidor onde o comando ou componente interativo foi usado. |
| .Server.Banner | text | O hash do banner do servidor onde o comando ou componente interativo foi usado. |
| .Server.BannerURL | text | A URL do banner do servidor onde o comando ou componente interativo foi usado. |
| .Server.MemberCount | text | O número aproximado de membros do servidor onde o comando ou componente interativo foi usado. (pode ser impreciso) |
| .Server.BoostCount | text | O número de boosts do servidor onde o comando ou componente interativo foi usado. |
| .Server.BoostLevel | text | O nível de boosts do servidor onde o comando ou componente interativo foi usado. |
| .Channel | text | Mencione o canal onde o comando ou componente interativo foi usado. |
| .Channel.ID | text | O ID do canal onde o comando ou componente interativo foi usado. |
| .Channel.Name | text | O nome do canal onde o comando ou componente interativo foi usado. |
| .Channel.Mention | text | Mencione o canal onde o comando ou componente interativo foi usado. |
| .Channel.Topic | text | O tópico do canal onde o comando ou componente interativo foi usado. |
| .Interaction.Command | text | Mencione o comando que foi usado. |
| .Interaction.Command.ID | text | O ID do comando que foi usado. |
| .Interaction.Command.Name | text | O nome do comando que foi usado. |
| .Interaction.Command.Args.my_arg | text / user / channel / role / attachment | O valor de um dos argumentos do comando. Substitua my_arg pelo nome do argumento. Dependendo do tipo do argumento do comando, isso pode ter variáveis sub como .Interaction.Command.Args.my_arg.ID para o ID de um usuário. |
Uso Avançado
Subséculo as variáveis de mensagem são alimentadas por Go Templates que suportam mais do que apenas variáveis básicas. Você pode fazer if statements, loops, e muito mais!
Abaixo estão alguns exemplos de o que você pode fazer, mas para mais informações leia a documentação do Go Template.
Exemplo de Loop
List the roles of the user that has used the custom command or interactive component:
{{ range .Interaction.User.Roles -}}
{{- .Mention -}}
{{- end }}
Observe o ponto (., também conhecido como cursor) que abrange todos os dados ativos disponíveis para uso no sistema de template, ou seja, sempre se refere ao contexto atual. No loop ele se refere ao item atual, neste caso um dos cargos.
Observe também o traço (-) dentro de cada ação que é usado para eliminar todos os espaços em branco de ambos os lados.
Exemplo de If-Else
Verifique se o servidor tem mais de 5 boosts e responda com base nisso.
{{ if gt .Server.BoostCount 5 -}}
Seu servidor tem muitos boosts!
{{- else -}}
Seu servidor não tem muitos boosts ainda :(
{{- end }}
Observe o traço (-) dentro de cada ação que é usado para eliminar todos os espaços em branco de ambos os lados.