Pular para o conteúdo principal

InputTracker

Execute ações a partir de F, Q, Shift, Ctrl, slots da hotbar e botões de inventário clicáveis.

Gratuitasv0.5Utilitários
RequerTypeWriter0.9Paper1.21+

Visão geral​

O InputTracker transforma o teclado e o inventário em triggers para o TypeWriter. Ele escuta algumas entradas do jogador (trocar de mão, soltar item, agachar, correr, chat, comandos e seleção da hotbar) e executa as ações que você escolher. Ele também pode fixar botões no inventário do jogador ou na grade de criação 2x2: itens que não podem ser movidos, soltos nem colocados, e que executam ações quando clicados.

Tudo é configurado em uma única entry manifest, Input Trigger Config. É útil para atalhos no estilo RPG, por exemplo abrir um menu com a tecla F ou dar a todo jogador um relógio "Menu" no último slot da hotbar.

Recursos​

  • Sete entradas — trocar de mão (F), soltar (Q), agachar (Shift), correr (Ctrl), mensagem de chat, comando e seleção de slot da hotbar.
  • Cancelar a ação original — interrompa opcionalmente o comportamento vanilla, por exemplo impedir que a tecla F troque os itens de mão.
  • Criteria, delay e cooldown — execute apenas quando as condições forem atendidas, após um atraso em ticks, com um cooldown entre dois triggers.
  • Botões de inventário — itens fixados em slots escolhidos que não podem ser movidos, soltos, colocados nem consumidos.
  • Tipos de clique — um conjunto diferente de ações para clique esquerdo, direito, shift+esquerdo, shift+direito, soltar, clique duplo ou qualquer clique como alternativa.
  • Botões da hotbar no mundo — cliques esquerdo e direito com um botão na mão executam as ações dele.
  • Botões na grade de criação — botões na grade de criação 2x2, com a criação desativada enquanto houver um botão nela.
  • Criteria por botão — cada botão, e cada vínculo de clique, pode ter suas próprias condições.

Instalação​

  1. Use o Paper 1.21 ou posterior. Nenhuma biblioteca de pacotes é necessária.
  2. Coloque o JAR do InputTracker em plugins/Typewriter/extensions/ e reinicie o servidor.

A extensão agenda os atrasos com o scheduler do Bukkit, portanto é feita para o Paper e não para o Folia.

Primeiros passos​

Abra um menu quando o jogador pressionar F e dê um botão de menu a todo jogador:

  1. No painel web do TypeWriter, abra uma page manifest e adicione uma entry Input Trigger Config. Crie apenas uma: a primeira encontrada é a usada.
  2. Em keybinds, adicione um item. Defina type como SWAP_HAND, marque enabled (vem desativado por padrão) e marque cancelAction para que as mãos não sejam trocadas.
  3. Em suas actions, selecione a entry de ação que abre o seu menu. Defina cooldown como 10 ticks para evitar disparos duplos.
  4. Em inventoryButtons, adicione um item. Defina slot como 8 (o último slot da hotbar) e escolha o item a exibir, por exemplo um relógio chamado <gold>Menu.
  5. Em seus clickActions, adicione um vínculo com clickType LEFT e a mesma ação em actions.
  6. Publique. Os jogadores recebem o botão quando entram ou renascem.
aviso

Um botão substitui qualquer item que esteja em seu slot. Escolha slots que seus jogadores não usem para os próprios itens.

aviso

Um jogador que carrega pelo menos um botão não pode morrer: o dano que seria letal é cancelado. Planeje o design do seu jogo levando isso em conta, ou remova os botões nas situações em que os jogadores precisem poder morrer.

Como funciona​

Keybinds. Para cada type, a primeira definição em keybinds é a utilizada, portanto você não pode ter duas definições para a mesma entrada. Isso inclui HOTBAR_SLOT: ele reage a um único slot, escolhido por hotbarSlot.

O que cada entrada significa exatamente:

TipoDispara quando
SWAP_HANDO jogador pressiona F.
DROPO jogador pressiona Q para soltar um item (não enquanto segura um item no cursor).
SNEAKO jogador começa a agachar.
SPRINTO jogador começa a correr.
CHATO jogador envia uma mensagem de chat. Pressionar apenas T não faz nada.
COMMANDO jogador executa um comando.
HOTBAR_SLOTO jogador seleciona o slot da hotbar hotbarSlot (0 a 8).

Com cancelAction, o evento original é cancelado: as mãos não são trocadas, a mensagem ou o comando não é enviado. Para DROP, dropCount (-1 para a pilha inteira, um número acima de 1 para uma quantidade personalizada) só é usado quando cancelAction está ativado.

Botões. Os botões são itens marcados. Eles são colocados no inventário do jogador quando ele entra, renasce ou abre o inventário de criação. Não podem ser movidos, arrastados, soltos, trocados para a mão secundária, colocados nem consumidos.

Quando um botão é clicado, a extensão escolhe o primeiro vínculo de clickActions cujo clickType corresponde ao clique e cujos criteria passam. Se nenhum servir, usa o primeiro vínculo ALL cujos criteria passam. Um clique com o botão do meio ou uma tecla numérica conta como clique esquerdo. No mundo, cliques esquerdo e direito com um botão na mão contam como LEFT e RIGHT.

Configuração​

Todas as configurações são campos da entry Input Trigger Config.

Campos de keybinds

CampoDescrição
typeA entrada a escutar.
enabledDeve estar ativado para a definição funcionar. Desativado por padrão.
cancelActionCancela o comportamento vanilla.
actionsEntries de ação a executar.
delayTicks de espera antes de executar as ações (0 as executa imediatamente).
cooldownTicks entre dois triggers para o mesmo jogador e a mesma entrada (0 para nenhum).
dropCountPara DROP. 1 é um único item, -1 a pilha inteira.
hotbarSlotPara HOTBAR_SLOT: o slot, de 0 a 8.
criteriaCondições para o trigger ser executado.

Campos de inventoryButtons

CampoDescrição
slotSlot do inventário, de 0 a 40 (0 a 8 hotbar, 36 a 39 armadura, 40 mão secundária). Na grade de criação, de 0 a 4.
itemO item exibido como botão.
clickActionsLista de vínculos com um clickType, actions e criteria.
delayTicks antes de as ações serem executadas.
isCraftingGridColoca o botão na grade de criação 2x2 em vez de no inventário.
criteriaCondições para que um clique no botão faça alguma coisa.

Na grade de criação, o slot 0 é o slot de resultado, que funciona como um botão "enviar", e os slots 1 a 4 são os quatro slots da grade. O resultado de uma criação fica bloqueado enquanto houver um botão em um dos slots da grade, para que ninguém possa duplicar itens.

Entries​

1 entradas, geradas a partir do código-fonte da extensão.

Manifestos1

Solução de problemas​

Um keybind não faz nada. enabled vem desativado por padrão. Verifique também se a definição tem actions, se os criteria correspondem e se você tem apenas uma definição para esse type: só a primeira é lida. A entry deve estar publicada, e deve haver apenas um Input Trigger Config.

A ação só é executada de vez em quando. O cooldown é compartilhado para o mesmo jogador e a mesma entrada, em ticks (20 ticks equivalem a um segundo). cancelAction continua valendo enquanto o cooldown bloqueia as ações. DROP não usa o cooldown.

A tecla F ou Q ainda faz sua ação normal. Marque cancelAction. Para as entradas de chat e de comando, cancelAction impede que a mensagem ou o comando seja enviado.

Um botão não é clicável ou não faz nada. Um clique não faz nada quando os criteria do botão falham, ou quando nenhum vínculo de clickActions corresponde ao tipo de clique e não há vínculo ALL. As actions devem ser entries de ação.

Um item sumiu do inventário. Um botão substitui o item em seu slot toda vez que os botões são colocados. Escolha um slot livre.

Um botão removido continua no inventário. Os botões são itens marcados pela extensão. Quando você exclui ou move um botão na configuração, os itens antigos são removidos e os botões atuais são colocados novamente na próxima vez que o jogador fechar o inventário, entrar ou renascer.

O jogador não morre. É o comportamento esperado: um jogador que carrega um botão não pode sofrer dano letal.