Pular para o conteúdo principal

TinyEssentials

29 comandos essenciais, homes, TPA, formato de chat, tablist, calendário, viagem rápida e wiki.

Privadasv0.0.2Utilitários
RequerTypeWriter0.9.0-beta-177 (BTC build)PacketEventsMySQLGUITranslateopcional

Criada para a rede BornToCraft. Esta extensão é documentada como referência e não é distribuída.

Visão geral​

O TinyEssentials é a camada "essentials" de um servidor BTC, inspirada no EssentialsX e construída sobre o TypeWriter. Ele traz 29 comandos de jogador e de staff (homes, pedidos de teleporte, mensagens, voo, vanish, cura...), um formatador de chat, itens de entrada, uma penalidade de morte ("scavenger"), um gerenciador de tablist, scoreboard e bossbar, uma duração de dia personalizada com um calendário, um menu de viagem rápida e uma wiki no jogo.

Tudo é configurado no painel web. Cada comando é sua própria entry, então você escolhe o nome e a permissão dele e adiciona apenas os comandos que quer. As mensagens são compartilhadas em uma única entry de configuração Tiny Essentials, e os recursos maiores (homes, chat, tab, calendário) têm cada um sua própria entry.

Os menus (homes, calendário, viagem rápida, wiki) são renderizados com a extensão GUI e o layout que você desenha em uma página.

Recursos​

  • 29 entries de comando — voo, god, alimentar, curar, vanish, velocidade, modo de jogo, reparar, voltar, TPA, mensagens, homes e mais, cada um com nome e permissão configuráveis.
  • Homes — homes por jogador com limites baseados em permissão, cooldowns, um menu paginado com um editor (renomear, ícone, excluir) e armazenamento salvo.
  • Pedidos de teleporte — /tpa e /tpahere com timeout, alternância e um histórico de /back.
  • Mensagens privadas — /msg, /reply e /msgtoggle com códigos de cor neutralizados.
  • Formato de chat — formatos MiniMessage escolhidos por permissão e prioridade, compartilhados entre servidores pelo Redis quando o MySQL roda em modo compartilhado.
  • Tablist, scoreboard, bossbar — cabeçalho/rodapé, formatação de nomes, ordenação, layout de 80 slots, condições e animações.
  • Itens de entrada — itens entregues ao entrar ou renascer, com comandos de clique e flags de proteção.
  • Scavenger — perda percentual de itens e experiência na morte, itens protegidos e penalidades baseadas em placeholders.
  • Hora personalizada e calendário — duração do dia, calendário com meses, dias da semana e eventos, menu de calendário, facts, um filtro de audience e placeholders.
  • Viagem rápida e wiki — menu de viagem por regiões com criteria de bloqueio e um guia no jogo composto de seções e artigos.

Instalação​

  1. Instale o PacketEvents, exigido pelos recursos de tablist.
  2. Instale a extensão MySQL, que o TinyEssentials declara como dependência (o Redis é usado para o chat entre servidores e a lista da tab), e a extensão GUI para os menus.
  3. Opcionalmente, instale o Translate para traduzir o chat da rede para jogadores de outros servidores.
  4. Coloque o JAR do TinyEssentials em plugins/Typewriter/extensions/ e reinicie o servidor.
  5. Conceda as permissões dos comandos (veja a tabela de Permissões) com o seu plugin de permissões. Os recursos de tab baseados em grupos leem permissões chamadas group.<name>.

Primeiros passos​

  1. No painel web do TypeWriter, abra uma página static e adicione uma entry Tiny Essentials. Sem ela, todo comando responde que o TinyEssentials não está configurado. Ajuste defaultTeleportCooldown, tpaTimeoutSeconds, backBufferSize e as mensagens.
  2. Adicione as entries de comando que quiser, por exemplo /fly, /tpa e /back. Mantenha ou altere commandName e permission.
  3. Para homes, adicione um Artifact Home e um Home Manager que o referencie em artifact, e depois adicione /home e os outros comandos de home.
  4. Para um formato de chat, adicione um Chat Format com groups como owner (permissão group.owner, priority 10, format <gold>[Owner] <player><white>: <message>) e um fallbackFormat.
  5. Publique, conceda as permissões e teste com um jogador.
As mensagens usam códigos de cor legados

As mensagens do Tiny Essentials e do Home Manager usam códigos de cor com & e tokens no estilo {player}. Os formatos de chat, a tablist e os menus usam MiniMessage.

Como funciona​

Cada entry de recurso é lida quando necessário. Use uma única entry de cada tipo (um Tiny Essentials, um Home Manager, um Chat Format, um Join Item, um Scavenger): a extensão usa a primeira que encontrar.

Configuração​

Além das entries, o TinyEssentials depende destas regras de execução.

  • Cooldown de teleporte — /back e /tpa esperam defaultTeleportCooldown segundos, ou o maior cooldownSeconds entre as cooldownRules cuja permissão o jogador possui. A menos que allowMovement esteja ativado, mover-se cancela o teleporte. Os teleportes causados por uma pérola do fim ou por uma fruta do coro não são mantidos no histórico de /back.
  • Vanish e alternâncias — os estados de vanish, /msgtoggle e /tpatoggle são armazenados no jogador, então sobrevivem a reinicializações e reconexões.
  • Recursos de rede — o chat e a lista da tab usam o Redis quando a extensão MySQL roda com escopo compartilhado; caso contrário, permanecem locais.
  • Campos obsoletos no Tiny Essentials — os campos de nome ...Command (msgCommand, flyCommand...) e basePermission não são aplicados: os nomes e permissões dos comandos ficam nas entries de comando. Esses campos de nome só aparecem nas mensagens de uso. Os campos de tab bossbarToggleCommand e scoreboardToggleCommand também não são registrados como comandos.

O TinyEssentials fornece tipos de botão para páginas construídas com a extensão GUI.

MenuEntryTipos de botão
HomesHome Manager (menus configurados na própria entry)Nenhum: o layout é definido em homesMenu e homeEditorMenu.
CalendárioCalendar Menucalendar_button:DAY, WEEKDAY, EVENT, CALENDAR_SUMMARY, MONTH_NAV
Viagem rápidaFast Travel Menutravel_button:REGION_TAB, DESTINATION, REGION_SUMMARY
WikiWiki Menuwiki_button:SECTION_TAB, ARTICLE, PAGE_NAV

Os menus de calendário, viagem rápida e wiki usam a mesma abordagem: uma base open_gui compartilhada (baseMenuId), um pool de layouts e views. Os botões indexados, como DAY ou DESTINATION, são preenchidos em ordem a partir dos dados (a grade é um teto de exibição, os slots extras ficam vazios).

O menu de homes é paginado, com botões de anterior, próximo e fechar, um item de preenchimento, um item para slots de home vazios e um editor aberto ao clicar em uma home: teleportar, renomear pelo chat (digite cancel para abortar), definir o ícone a partir do item na mão, redefinir o ícone e excluir.

Comandos​

Todos os comandos são comandos brigadier registrados por entries, então os clientes recebem preenchimento automático. Nenhum comando tem alias. Sem a permissão correta, o comando fica oculto. Os comandos que têm jogadores como alvo aceitam um seletor de jogador; agir sobre outra pessoa exige a permissão .others correspondente, verificada quando o comando é executado.

Comandos pessoais e de staff

ComandoDescriçãoPermissão
/fly [player]Alterna o voo.tinyessentials.fly (outros: tinyessentials.fly.others)
/god [player]Alterna a invulnerabilidade.tinyessentials.god (outros: .god.others)
/feed [player]Restaura a fome e a saturação.tinyessentials.feed (outros: .feed.others)
/heal [player]Restaura vida, fome, ar e apaga o fogo e o congelamento.tinyessentials.heal (outros: .heal.others)
/vanish [player]Alterna a invisibilidade para outros jogadores; mantida após a reconexão.tinyessentials.vanish (outros: .vanish.others)
/gamemode <survival|creative|adventure|spectator> [player]Altera o modo de jogo.tinyessentials.gamemode (outros: .gamemode.others)
/speed <value> [walk|fly|sneak] [player] e /speed reset [walk|fly|sneak]Define a velocidade de -20 a 20. Só funciona no modo criativo. Sem um tipo, jogadores voando recebem velocidade de voo e os demais velocidade de caminhada. Alterar a velocidade de outro jogador exige .speed.others.tinyessentials.speed (outros: .speed.others)
/suicideMata você.tinyessentials.suicide
/repairRepara a ferramenta, arma ou armadura na mão (não blocos, nem itens inquebráveis).tinyessentials.repair
/invsee <player>Abre o inventário de outro jogador. Editá-lo exige tinyessentials.inventory.edit.tinyessentials.inventory (alvo: .inventory.others)
/pocketmenu <type> [--consume]Abre um menu vanilla: workbench, enchanting, anvil, smithing, grindstone, cartography, stonecutter, loom ou brewing. --consume faz a mesa de encantamento consumir níveis.tinyessentials.pocketmenu

Comandos de teleporte

ComandoDescriçãoPermissão
/backVolta ao seu local anterior, com cooldown.tinyessentials.back
/tpa <player>Pede para se teletransportar até um jogador.tinyessentials.tpa
/tpahere <player>Pede a um jogador que se teletransporte até você.tinyessentials.tpahere
/tpaccept [player]Aceita o último pedido, ou o do jogador indicado.tinyessentials.tpaccept
/tpadeny [player]Recusa o último pedido, ou o do jogador indicado.tinyessentials.tpadeny
/tpatogglePara ou retoma o recebimento de pedidos.tinyessentials.tpatoggle
/tppos <x> <y> [z]Teletransporta para coordenadas.tinyessentials.tppos
/tpallTeletransporta todos os jogadores online até você.tinyessentials.tpall
/getposMostra sua posição, rotação e mundo.tinyessentials.getpos

Mensagens

ComandoDescriçãoPermissão
/msg <player> <message>Envia uma mensagem privada.tinyessentials.msg
/reply <message>Responde à última conversa.tinyessentials.reply
/msgtogglePara ou retoma o recebimento de mensagens privadas.tinyessentials.msgtoggle

Homes — também exigem a basePermission do Home Manager, se você definir uma.

ComandoDescriçãoPermissão
/home [name]Teletransporta para uma home; sem um nome, a home chamada home.tinyessentials.homes.teleport
/home list (ou ls)Abre o menu de homes.tinyessentials.homes.list
/home set|add|create|save [name]Salva uma home na sua posição.tinyessentials.homes.set
/home delete|del|remove|rm [name]Exclui uma home.tinyessentials.homes.delete
/sethome [name]Salva uma home.tinyessentials.homes.set
/delhome [name]Exclui uma home.tinyessentials.homes.delete
/homesAbre o menu de homes.tinyessentials.homes.list

Calendário

ComandoDescriçãoPermissão
/calendarAbre o calendário no mês atual. /calendar month <prev|next|current> <player> é usado pelos botões do menu.tinyessentials.calendar (deixe vazio para nenhuma)
/timefactImprime as linhas da entry Time Fact vinculada.tinyessentials.timefact (deixe vazio para nenhuma)

O campo permission de cada entry de comando é, por padrão, a permissão das tabelas acima. Altere o nome do comando com commandName.

Permissões​

PermissãoConcede
tinyessentials.<command>Uso do comando, conforme listado acima (padrões do campo permission).
tinyessentials.fly.others, god.others, feed.others, heal.others, vanish.others, gamemode.others, speed.othersAplicar o comando a outro jogador.
tinyessentials.inventory.othersAbrir o inventário de outro jogador com /invsee.
tinyessentials.inventory.editMover itens no inventário inspecionado.
tinyessentials.homes.bypass (bypassPermission)Ignorar os limites de homes e os cooldowns de teleporte.
tab.staffContada por <tab_staffonline>.
group.<name>Seleciona o grupo da tab e a ordenação por grupo.
Campos como generalPermission, permission, cooldownRules, permissionLimitsPermissões que você escolhe nas entries.

Placeholders​

O TinyEssentials registra duas expansões MiniPlaceholders, utilizáveis como tags MiniMessage.

PlaceholderRetorna
<tab_online>Jogadores online.
<tab_staffonline>Jogadores online com tab.staff.
<tab_worldonline>Jogadores no mundo do espectador.
<tab_memory_used> / <tab_memory_max>Memória usada e máxima em MB.
<tab_tps>TPS do servidor (1 minuto) com duas casas decimais.
<tab_date> / <tab_time>Data (dd.MM.yyyy) e hora (HH:mm:ss) reais da máquina.
<tab_animation:name>Quadro atual de uma animação da Tab Configuration.
<calendar_date>Data do calendário, por exemplo 3 Spring, an 12.
<calendar_time> / <calendar_time_12h>Hora do jogo em relógio de 24 ou 12 horas.
<calendar_day>, <calendar_month>, <calendar_month_index>, <calendar_year>, <calendar_weekday>Partes da data do calendário.
<calendar_day_of_year>, <calendar_total_day>Número do dia no ano e desde o início.
<calendar_event>Título do primeiro evento de hoje, vazio se não houver.
<calendar_next_event>, <calendar_next_event_days>Título do próximo evento e dias até ele.

Todo placeholder calendar aceita o id de uma entry Minecraft Time como argumento, por exemplo <calendar_date:my_calendar_id>; sem ele, o primeiro calendário é usado. Eles retornam um texto vazio quando não existe nenhuma entry Minecraft Time.

Os campos de texto do Home Manager usam {home}, {limit}, {cooldown}, {count}, {world} e tokens semelhantes indicados na ajuda de cada campo; os textos de TPA e de mensagens usam {player}, {time}, {sender}, {receiver} e {message}.

Entries​

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

Ações3
Fatos3
Audiências1
Comandos29
Placeholders1
Artefatos2
Manifestos11

Solução de problemas​

TinyEssentials n'est pas configure : ajoutez une entree 'tiny_essentials' a une page. Um comando foi executado sem uma entry Tiny Essentials publicada. Adicione uma a uma página static e publique.

Um comando não existe ou está oculto. Cada comando é uma entry: adicione a entry tinyessentials_..._command correspondente, publique e dê ao jogador sua permission. Um nome de comando alterado em commandName substitui o antigo.

Les maisons ne sont pas configurees. Não há uma entry Home Manager. Para erros de armazenamento (stockage des homes est indisponible), verifique se o artifact do Home Manager aponta para um Artifact Home.

Os jogadores não conseguem conversar de forma alguma. generalPermission da entry Chat Format está definida e o jogador não a possui: a mensagem de chat é cancelada. Deixe-a vazia ou conceda a permissão.

/back diz que não há local anterior. Apenas os teleportes feitos por comandos e plugins são registrados. As pérolas do fim e as frutas do coro são ignoradas, e o histórico guarda os últimos backBufferSize locais.

/speed diz que só está disponível no modo criativo. O comando é deliberadamente restrito ao modo criativo para não conflitar com os stats de RPG.

Os recursos de tablist não fazem nada. O PacketEvents deve estar instalado. tablistFormattingEnabled, layoutEnabled, bossbarEnabled e scoreboardEnabled são chaves separadas, e as três últimas vêm desativadas por padrão.

Os placeholders do calendário estão vazios. Nenhuma entry Minecraft Time está publicada, ou o argumento não corresponde a um id de entry existente. Um menu ou comando de calendário também precisa de seu vínculo minecraft_time.

Extensões relacionadas​

  • MySQL — Redis para o chat da rede e a lista da tab.
  • GUI — renderiza os menus de homes, calendário, viagem rápida e wiki.
  • Translate — traduz o chat da rede para jogadores de outros servidores.
  • UiCore — os artigos da wiki podem referenciar imagens do UiCore.