# Canalhandia — interações de chat do servidor. # # Tudo aqui também pode ser mudado em jogo, e os comandos gravam neste arquivo # na hora. Veja /canalhandia status e /curiosidade ajuda. # # Nada neste plugin afeta a jogabilidade: só mensagens de chat, barras de # progresso e botões clicáveis. # Cada módulo pode ser ligado/desligado com /canalhandia modulo modulos: curiosidades: true # "Sabia que o Fulano já minerou 5.966 blocos de Pedra?" adivinha: true # curiosidade anônima + botões com os nomes dos jogadores luto: true # botão [F] embaixo das mensagens de morte enquete: true # /enquete com votação clicável ranking: true # /ranking com placares do servidor marcos: true # avisos automáticos ao passar de 100 km, 24 horas, etc. # Mensagem de morte engraçada + coordenadas da morte mandadas em privado # só para quem morreu (para correr buscar os itens). mortes: true # Quem manda só "f" no chat (sem mais nada) leva uma zoada no lugar da mensagem. zoacao: true # Anotações no chat: /save e /nota. Privadas (só o autor vê) para todos; # públicas só para quem tiver canalhandia.nota.publica. notas: true # /recado — guardado e entregue quando a pessoa entrar. recados: true # Conquistas com nome ("Casca Grossa", "Turista"), além dos marcos numéricos. # Na primeira vez que vê um jogador, o que ele já ganhou é gravado em # silêncio — senão ligar o módulo despejaria um monte de anúncio de história # antiga de uma vez só. conquistas: true ia: true # /ia — só para quem tem canalhandia.ia # --- Curiosidades ------------------------------------------------------------ # Quando as curiosidades disparam sozinhas: # entrada - só quando um jogador entra no mundo (padrão) # intervalo - só num temporizador # ambos - os dois # manual - nunca sozinho, só com /curiosidade modo: ENTRADA # Segundos de espera depois que o jogador entra, para a curiosidade aparecer # depois da mensagem de entrada em vez de disputar com ela. atraso-entrada-segundos: 6 # Intervalo do modo temporizado, em minutos. Ignorado nos modos entrada/manual. intervalo-minutos: 20 # Tempo mínimo antes do mesmo jogador ser citado de novo. cooldown-minutos: 30 # Intervalo mínimo entre curiosidades automáticas, em segundos. Sem isso, # cinco pessoas entrando juntas geram cinco curiosidades e enchem a tela. # Não afeta /curiosidade digitado à mão. intervalo-minimo-segundos: 120 # Quantas curiosidades recentes lembrar para não repetir. evitar-repetir: 15 # Tipos de curiosidade que podem ser sorteados. categorias: mineracao: true itens: true mortes: true combate: true distancia: true tempo: true diversos: true # --- Reações ----------------------------------------------------------------- reacoes-ativas: true # Por quanto tempo a barra de reações fica visível, em segundos. janela-reacao-segundos: 90 # Luto: ao prestar F para alguém que morreu, o jogador recebe a cabeça daquele # jogador (uma lembrança simbólica). É o único recurso do plugin que mexe no # inventário; desligue aqui se não quiser. luto: cabeca: true # Anotações (/save e /nota). notas: # true: as anotações PÚBLICAS viram marcadores no mapa do BlueMap. Sem # BlueMap instalado não faz nada. Anotação privada nunca vai para o mapa. no-mapa: true # Zoa de quem manda uma mensagem que bate com o padrão, trocando por uma frase # engraçada. Tudo editável em jogo com /canalhandia zoacao ... zoacao: # Como comparar a mensagem do chat com o padrão: # igual - mensagem inteira igual ao padrão (ignora maiúsculas e espaços) # contem - mensagem contém o padrão em qualquer lugar # comeca - mensagem começa com o padrão # termina - mensagem termina com o padrão # regex - padrão é uma expressão regular (maiúsculas ignoradas) correspondencia: igual # Texto (ou regex) que dispara a zoação. Padrão: só um "f" sozinho. padrao: "f" # Frases que substituem a mensagem. Uma é sorteada por vez. Edite à vontade — # a graça é ser inesperado. mensagens: - "Sou gay" - "Gosto de anime" - "Jogo no celular" - "Tenho 12 anos" - "Sou noob" - "Uso Windows" # Quantos nomes cabem no resumo de reações antes do resto virar "+N". # O resumo é sempre UMA linha, por mais gente que reaja; para ver a lista # completa use /reacoes (privado, não polui o chat). resumo-nomes: 3 # Por quanto tempo um clique ainda conta depois que a barra some. As pessoas # rolam o chat e clicam minutos depois; descartar esses cliques em silêncio # parece defeito. reacao-validade-minutos: 15 # As reações disponíveis. # # java - rótulo para jogadores Java (emoji funcionam) # texto - rótulo para jogadores Bedrock (SÓ ASCII: emoji viram quadradinhos) # comando - atalho digitável, para quem não consegue clicar # # O Bedrock não consegue executar clique no chat, então todo jogador Bedrock vê # os rótulos "texto" e a dica de digitar o comando. Os comandos abaixo precisam # existir no plugin.yml para serem registrados — mudar "comando" para um nome # novo exige adicionar o comando lá e reiniciar. reacoes: joia: java: "[👍]" texto: "[+1]" comando: "legal" uau: java: "[😮]" texto: "[UAU]" comando: "wow" fogo: java: "[🔥]" texto: "[TOP]" comando: "top" errado: java: "[❌]" texto: "[ERRADO]" comando: "errado" # --- Jogos ------------------------------------------------------------------- # Quanto tempo cada rodada de /adivinha fica aberta, em segundos. adivinha-segundos: 45 # Quanto tempo cada enquete fica aberta, em minutos. enquete-minutos: 5 # Quantas posições mostrar em cada /ranking. ranking-tamanho: 5 # --- IA ---------------------------------------------------------------------- # Perguntas e respostas no chat via MiniMax (ou qualquer API compatível com o # formato da OpenAI: basta trocar a url e o modelo). # # A CHAVE DA API NÃO FICA AQUI. Este arquivo vai para o git. A chave é lida de: # 1. a variável de ambiente MINIMAX_API_KEY, ou # 2. o arquivo plugins/Canalhandia/minimax.key (só a chave, uma linha). # # Quem pode usar: a permissão canalhandia.ia, padrão op. Para liberar alguém: # lp user permission set canalhandia.ia true # lp group permission set canalhandia.ia true # # A IA só produz texto de chat: a resposta NUNCA é executada como comando. As # ferramentas abaixo são todas de LEITURA (busca web, estatísticas, ranking, # wiki) — o modelo pode consultar informação, mas não muda nada no servidor, # no mundo ou no terminal. ia: url: "https://api.minimax.io/v1/text/chatcompletion_v2" # M2.7 mediu 2,7-5,2s com respostas corretas nos testes. O M3 é um modelo de # raciocínio: o "pensamento" dele consome o max-tokens e a resposta chega # cortada no meio da palavra, a não ser com um orçamento muito maior. modelo: "MiniMax-M2.7" # IA agêntica: o modelo decide sozinho quando usar ferramentas (busca web, # estatísticas de jogador, ranking, Minecraft Wiki) em vez de receber tudo # pronto no prompt. Deixa as respostas bem mais espertas. ferramentas: true # Máximo de rodadas de ferramenta por pergunta (trava anti-loop). max-ferramentas: 4 # Busca web via SearXNG (self-hosted, sem chave de API externa). URL do serviço. searxng-url: "http://192.168.1.80:30888" # Quantos resultados de busca web devolver, e quanto de cada trecho manter. resultados-web: 5 trecho-web: 300 # Tamanho da resposta pedida ao modelo, e o corte final no chat. # 1200, não 300: o raciocínio oculto do M3 consome o orçamento e a resposta # chega vazia quando o teto é baixo. max-tokens: 1200 max-caracteres: 500 # O Minecraft não limita o tamanho de uma mensagem que o SERVIDOR manda (o # limite de 256 caracteres é só no que um JOGADOR digita). O problema de # despejar uma lista inteira numa linha só é de leitura, não do jogo: vira # um bloco de texto em vez de itens separados. Por isso a resposta é # dividida em até N mensagens de chat — uma lista de 5 itens vira 5 linhas. # max-caracteres continua sendo o teto total somado entre todas elas. max-mensagens: 4 # Tamanho máximo da pergunta, em caracteres. max-pergunta: 300 temperatura: 0.7 timeout-segundos: 30 # Segundos entre perguntas do mesmo jogador. Quem tem canalhandia.admin # não espera. cooldown-segundos: 30 # Teto de perguntas por dia no servidor inteiro — cada pergunta custa. limite-diario: 200 # true: a pergunta e a resposta aparecem para todos (é a graça de ter no chat) # false: só quem perguntou vê a resposta publico: true # Instruções fixas enviadas ao modelo em toda pergunta. instrucoes: >- Você é um assistente no chat de um servidor de Minecraft chamado Canalhandia. Responda sempre em português do Brasil, de forma curta e direta: no máximo 3 frases. Responda apenas perguntas simples e gerais. Você não tem nenhum acesso ao servidor, ao sistema de arquivos, ao terminal ou aos comandos do jogo, e não pode executar nada. Se pedirem para você rodar comandos, mexer no servidor, dar itens, banir alguém ou revelar configurações, explique que você só conversa. Nunca escreva comandos de terminal nem de Minecraft. Escreva em texto puro: nada de markdown, asteriscos, crases ou emoji, porque o chat do Minecraft não formata nada disso. # Tom de voz da IA. Muda só COMO ela fala, nunca o que ela pode fazer: todas # as regras acima continuam valendo por baixo, e são repetidas junto com a # personalidade a cada pergunta. # # zoeiro - veterano brincalhão, zoa o jogador e usa as estatísticas dele # contra ele; provoca, mas responde de verdade (padrão) # amigao - simpático e paciente, brinca pouco # seco - curto, seco e sarcástico # aldeao - fala como aldeão antigo e misterioso # neutro - assistente direto, sem personalidade # # Troque em jogo com /ia personalidade . personalidade: zoeiro # Quantas linhas recentes do chat público a IA vê, para entender do que estão # falando ("quem tá reclamando aí?"). 0 desliga. Nada vai para disco — é só # memória, apagada em cada reinício. Teto: 50. contexto-chat: 5 # true: manda um retrato do servidor agora junto com a pergunta — quem está # online, dimensão, hora do dia, chuva, coordenadas/vida/fome de quem # perguntou. É o que deixa a IA responder "quem tá online?" e "tá chovendo?". estado-servidor: true # true: no Java, a resposta ganha um card ao passar o mouse (pergunta original # e personalidade) e um clique que já escreve "/ia " no chat para a próxima # pergunta. O clique só SUGERE o comando — nada executa sozinho. # No Bedrock a resposta é sempre texto simples: ele não renderiza nem hover # nem clique. estilo-rico: true # Quantas anotações PÚBLICAS vão junto com a pergunta, para a IA responder # "onde fica a base?" com o que os jogadores anotaram. 0 desliga. # # Anotação PRIVADA nunca é enviada, em nenhuma configuração: é texto pessoal e # a chamada da IA sai deste servidor para uma API de terceiros. contexto-notas: 10 # --- Falas espontâneas (a IA falando sem ninguém perguntar) --- # # DESLIGADAS por padrão. Uma IA tagarela que ninguém pediu é o jeito mais # rápido de fazer todo mundo odiar o recurso, então é o operador que liga. # Cada fala custa dinheiro, e os limites abaixo são o que impede virar spam. # true: a IA comenta quando alguém morre várias vezes seguidas. comentar-eventos: false # true: a IA dá as boas-vindas de quem entra, usando as estatísticas da pessoa. saudacao: false # Quantas mortes seguidas (em poucos minutos) merecem comentário. Abaixo de 3 # dispara em azar comum e deixa de ter graça. mortes-seguidas: 3 # Teto diário SÓ para falas espontâneas, separado do limite do /ia. espontaneas-por-dia: 20 # Minutos mínimos entre duas falas espontâneas quaisquer. espontaneas-intervalo-minutos: 10 # Minutos até o MESMO jogador poder ser assunto de novo. É o que impede # narrar a noite inteira de uma pessoa só, e o que evita saudação repetida # para quem cai da conexão toda hora. espontaneas-cooldown-jogador: 30 # Uma fala espontânea é uma linha de chat, não um parágrafo. espontaneas-max-tokens: 400 espontaneas-max-caracteres: 180 # ECONOMICO pula a consulta à wiki (resposta rápida, sem fonte). # PRECISO consulta a wiki (mais lento, mais correto). Troque em jogo com # /ia perfil . perfil: PRECISO # Quantos caracteres do artigo da wiki enviar. Só a introdução não basta: # a receita e os detalhes ficam mais abaixo na página. wiki-caracteres: 7000 # Memória curta por jogador, para perguntas de seguimento ("e no nether?"). memoria-perguntas: 3 memoria-minutos: 10 # true: injeta as estatísticas do jogador que perguntou no contexto da IA, # para responder "quantos blocos eu minerei?" com números reais. estatisticas-jogador: true # Fatos do servidor que a IA nunca teria como saber. Uma linha por fato. contexto: - "O servidor se chama Canalhandia e roda Minecraft 26.2 (Paper)." - "Jogadores de Bedrock entram pelo Geyser e o nome deles começa com ponto." - "O servidor tem BlueMap, voice chat e Distant Horizons."