Você convidou um bot para o seu servidor do Discord, mas os comandos de barra não aparecem ao digitar uma barra. Isso acontece quando o cache do cliente Discord ainda contém dados de permissão desatualizados ou quando o bot não recebeu os escopos corretos de comandos de aplicação. Os comandos de barra existem nos servidores do Discord, mas seu cliente ou as configurações de permissão do servidor os impedem de aparecer.
A causa raiz geralmente é uma de três coisas: o cliente Discord armazenou em cache uma lista de permissões desatualizada, o bot não tem o escopo applications.commands habilitado para o servidor, ou uma permissão específica de canal ou cargo está ausente. Este artigo orienta você a limpar o cache do cliente, ressincronizar os comandos do bot e verificar as configurações corretas do servidor para que os comandos de barra apareçam imediatamente.
Principais Conclusões: Correção de Cache e Sincronização de Comandos Slash do Bot do Discord
- Ctrl+R ou Cmd+R no Discord: Força uma recarga completa do cliente que atualiza o cache de comandos instantaneamente.
- Discord Developer Portal > Applications > Bot > OAuth2 URL Generator: Garante que o bot tenha o escopo applications.commands habilitado ao ser reconvidado.
- Server Settings > Roles > Manage Permissions: Concede a permissão Usar Comandos de Barra ao bot e aos usuários.
Por que os Comandos Slash do Bot do Discord Não Aparecem
O Discord armazena as definições dos comandos de barra em seus servidores, não no seu computador. Quando você digita uma barra em um canal de texto, o cliente solicita a lista de comandos disponíveis da API do Discord. Se o cache local do cliente contiver uma captura de permissão desatualizada, a resposta da API pode ser filtrada incorretamente. Os comandos do bot existem, mas o cliente acha que você não tem permissão para vê-los.
A segunda causa comum é que o bot foi convidado sem o escopo applications.commands. Esse escopo é necessário para que o bot registre comandos de barra no seu servidor. Sem ele, o bot pode entrar no servidor, mas não pode criar ou expor nenhum comando de barra. Você deve reconvidar o bot com o escopo correto.
A terceira causa são as substituições de permissão de cargo ou canal. Mesmo que o bot tenha o escopo correto, um cargo ou canal específico pode ter a permissão Usar Comandos de Barra desativada. Isso bloqueia todos os comandos de barra para aquele cargo ou canal, incluindo os comandos do bot.
Passos para Limpar o Cache do Cliente e Ressincronizar Comandos
Siga estes passos em ordem. Após cada passo, teste digitando uma barra em qualquer canal de texto onde o bot tenha acesso.
- Forçar Recarga do Cliente Discord
Pressione Ctrl+R no Windows ou Cmd+R no macOS enquanto a janela do Discord estiver ativa. Isso recarrega todo o cliente e limpa o cache na memória. Após a recarga, digite uma barra em um canal de texto para ver se os comandos aparecem. - Limpar os Arquivos de Cache do Discord
Se a recarga não funcionou, feche o Discord completamente. Abra o Explorador de Arquivos e navegue até%appdata%\discord\Cache. Exclua todos os arquivos dentro da pasta Cache. Exclua também os arquivos dentro de%appdata%\discord\Code Cachee%appdata%\discord\Local Storage. Reinicie o Discord. Isso força o cliente a baixar dados de permissão e comando atualizados dos servidores do Discord. - Reconvidar o Bot com o Escopo Correto
Vá para o Discord Developer Portal e selecione a aplicação do seu bot. Clique em OAuth2 na barra lateral esquerda, depois em URL Generator. Em Scopes, marque bot e applications.commands. Em Bot Permissions, escolha as permissões que o bot precisa (por exemplo, Enviar Mensagens, Ler Histórico de Mensagens, Usar Comandos de Barra). Copie a URL gerada, abra-a em uma nova guia e convide o bot novamente para o seu servidor. Isso garante que o bot tenha o escopo para registrar comandos de barra. - Verificar se o Bot Tem a Permissão Usar Comandos de Barra
No seu servidor, vá em Server Settings > Roles. Encontre o cargo atribuído ao bot (geralmente o próprio cargo do bot ou @everyone). Clique no cargo, role até General Permissions e certifique-se de que Usar Comandos de Barra está habilitado (marca verde). Se estiver desabilitado, habilite e salve. Repita para quaisquer substituições específicas de canal: clique com o botão direito no canal, vá em Edit Channel > Permissions, encontre o cargo do bot e verifique se Usar Comandos de Barra está habilitado. - Ressincronizar os Comandos do Bot Manualmente
Alguns bots exigem uma sincronização manual de comandos. Verifique a documentação do bot para um comando de sincronização, geralmente escrito como/syncou/deploy. Se o bot usar Discord.js ou Pycord, o dono do bot pode executar um comando no console do bot para registrar os comandos globais novamente. Por exemplo, um bot Discord.js pode chamarclient.application.commands.set([])e depois registrar os comandos novamente. Após a ressincronização, aguarde até uma hora para que os comandos globais se propaguem, ou use comandos de guild para atualizações instantâneas.
Se os Comandos Slash do Bot do Discord Ainda Não Aparecerem
Comandos do Bot Aparecem para Mim, mas Não para Outros Usuários
Isso geralmente significa que os comandos de barra do bot são definidos como comandos globais, que podem levar até uma hora para se propagar para todos os usuários. Alternativamente, os outros usuários podem ter um cargo que bloqueia Usar Comandos de Barra. Verifique as permissões de cargo para cada usuário afetado. Peça também para eles pressionarem Ctrl+R ou Cmd+R para recarregar o cliente.
Comandos de Barra Funcionam em um Canal, mas Não em Outro
Substituições de permissão específicas de canal são a causa. Clique com o botão direito no canal onde os comandos não funcionam, vá em Edit Channel > Permissions, encontre o cargo do bot ou @everyone e habilite Usar Comandos de Barra. Se o canal for um tópico privado, certifique-se de que o bot tenha acesso ao canal pai e ao próprio tópico.
Bot Não Responde Após Digitar o Comando de Barra
O comando aparece no menu, mas nada acontece quando você pressiona Enter. Isso indica que o código do bot tem um erro ou o bot está offline. Verifique se o bot está online na lista de membros. Se estiver offline, o host do bot precisa reiniciar o processo do bot. Se o bot estiver online, mas não responder, o desenvolvedor do bot deve verificar o console em busca de erros, geralmente relacionados a intents ausentes ou a um manipulador de comandos com falha.
| Item | Comandos Globais | Comandos de Guild |
|---|---|---|
| Velocidade de atualização | Até 1 hora | Instantânea |
| Escopo | Todos os servidores onde o bot está | Apenas um servidor |
| Melhor para | Bots públicos usados em muitos servidores | Testes ou bots privados |
| Dependência de cache | O cache do cliente pode atrasar a visibilidade | O cache do cliente tem menos chance de bloquear |
Agora você tem um conjunto claro de passos para corrigir comandos de barra que não aparecem: limpe o cache do cliente com Ctrl+R ou excluindo arquivos de cache, reconvide o bot com o escopo applications.commands e verifique a permissão Usar Comandos de Barra em cargos e canais. Se o problema persistir, verifique se o bot usa comandos globais ou de guild e ressincronize-os manualmente. Para desenvolvedores de bots, usar comandos de guild durante o desenvolvimento elimina o atraso de propagação de uma hora e torna os testes mais rápidos.