Skip to content
Voltar ao Blog
TabooLib: Criando Melhores Plugins de Minecraft

TabooLib: Criando Melhores Plugins de Minecraft

Alexandru Maftei
Alexandru Maftei
@ice
Updated
1 visualizações
TL;DR:TabooLib é um framework Kotlin leve para desenvolvimento de plugins Minecraft Java Edition que elimina boilerplate e cuida de tarefas tediosas como registro de eventos, comandos e persistência de dados. Crie plugins mais complexos mais rapidamente.
GitHub - Projeto da comunidade Minecraft

taboolib (TabooLib/taboolib)

Framework poderoso para criar plugins Minecraft multi-plataforma

Dê uma estrela no GitHub ↗
⭐ 382 estrelas💻 Kotlin📄 MIT

Se você já pensou em criar um plugin Minecraft, provavelmente notou que o boilerplate e o código repetitivo de configuração ficam cansativos rápido. TabooLib elimina essa fricção oferecendo um framework leve construído em Kotlin que gerencia muita da estrutura tediosa, deixando você focar em construir algo realmente interessante.

O Que é TabooLib

TabooLib é um framework de desenvolvimento de plugins para Minecraft Java Edition que remove muita da complexidade envolvida na criação de plugins de servidor. É construído em Kotlin, o que oferece algumas vantagens de sintaxe elegante em relação a Java puro, mas você não precisa ser especialista em Kotlin para usá-lo. O framework pesa pouco mais de 30KB, então não vai deixar seu plugin pesado.

A ideia central é inteligente. Desenvolvimento de plugins Minecraft envolve muitas tarefas repetitivas - registrar listeners, gerenciar eventos, lidar com arquivos de configuração, gerenciar persistência de dados. TabooLib oferece abstrações e utilitários que tornam tudo isso mais rápido e limpo do que fazer do zero com apenas a API Bukkit/Spigot vanilla.


Por Que Você Gostaria Disso

Digamos que você esteja construindo um plugin de modo de jogo customizado ou algo que adicione novos comandos ao seu servidor. Com Bukkit vanilla, você precisa escrever muito boilerplate apenas para registrar listeners de eventos e gerenciadores de comandos. TabooLib simplifica isso bastante.

O framework realmente brilha quando você está construindo algo que precisa ser configurável ou persistente. Se seu plugin rastreia progresso do jogador, armazena dados customizados ou precisa sobreviver a reinicializações do servidor sem perder dados, TabooLib cobre você com menos fricção que as alternativas.

Mas aqui está a verdade, se você está apenas ajustando um plugin existente ou construindo algo extremamente simples (como um único comando que exibe uma mensagem), você pode não precisar disso. Não complique. Para qualquer coisa mais complexa que isso, o esforço de aprender TabooLib se paga rapidamente. Você escreverá menos código, e o que escrever será mais fácil de manter.


Instalação e Primeiros Passos

O processo de instalação espera que você tenha Gradle configurado para um projeto de plugin Minecraft. Se ainda não tiver, o projeto fornece um plugin IntelliJ IDEA que faz o scaffold de tudo para você, o que é bem conveniente.

Para uma configuração manual, você adicionaria o repositório TabooLib e a dependência ao seu build.gradle:

gradle
repositories {
 maven { url = uri("https://repo.tabooproject.org/repository/releases") }
}

dependencies {
 compileOnly("io.izzel.taboolib:taboolib-all:6.3.0")
}

A versão mais recente é a 6.3.0 (com build 932e79c) e o framework mantém compatibilidade com versões recentes do Minecraft. A partir daí, você criaria sua classe de plugin, definiria listeners de eventos e começaria a construir.

Criar um comando com TabooLib é notavelmente menos verboso que vanilla. Tudo flui mais naturalmente uma vez que você entende os padrões.


Recursos Que Importam

Listeners de eventos em TabooLib são mais limpos que código Bukkit puro. Você anota métodos e o framework cuida do registro. Sem classes de listener manuais, sem injeção de construtor da instância do plugin. Funciona.

O sistema de comandos é genuinamente bom. A coisa é que comandos são definidos declarativamente e você obtém parse de argumentos, conclusão de tabulação e verificação de permissão sem escrever nada disso.

Gerenciamento de configuração é outro destaque. Arquivos YAML, JSON, o que você quiser. TabooLib cuida da serialização e desserialização para que você não tenha que analisar manualmente configs ou lidar com conversões de tipo. Se você está executando um plugin que gera texto para placas, banners ou chat (como um gerador de texto Minecraft integrado ao seu servidor), TabooLib torna isso fácil de configurar e manter.

Persistência de dados funciona de forma similar. Quer você precise de uma abordagem simples de armazenamento em arquivo ou algo mais estruturado, o framework oferece utilitários que reduzem drasticamente o boilerplate. O framework também inclui utilitários para tarefas comuns como agendamento, gerenciamento de dados de jogador e formatação de chat.

Uma coisa mais vale saber, o projeto mantém um site de documentação ativo e um plugin IntelliJ para scaffold rápido. Há também documentação não oficial da comunidade se a documentação oficial não responder a algo.


Armadilhas e Coisas Que Pegam as Pessoas

A primeira armadilha é a compatibilidade de versão. Minecraft atualiza frequentemente e frameworks de plugin precisam acompanhar. TabooLib lida com isso bem, mas sempre verifique que sua versão de TabooLib suporta a versão Minecraft que você está direcionando. Usar a 6.3.0 em um servidor antigo pode funcionar, mas você vai querer verificar antes de fazer deploy.

Interoperabilidade com Kotlin é simples, mas adiciona uma etapa de compilação. Se você está acostumado com Java puro, é um ajuste bem pequeno. Nada de especial.

Outra coisa, se você está depurando por que seu plugin não está carregando, certifique-se de fazer shade ou incluir TabooLib corretamente no seu JAR final. Muitos problemas iniciantes são apenas dependências ausentes no artefato.

Em termos de desempenho, TabooLib em si é leve, mas lembre-se que um plugin ruim é ruim independentemente do framework que você usa. Escrever listeners de eventos ineficientes ou chamadas de banco de dados bloqueantes vão afetar seu servidor se você estiver usando TabooLib ou não. Se você está testando plugins que interagem com seu status de servidor ou desempenho, ferramentas como o verificador de status do servidor Minecraft podem ajudar a verificar que seu plugin não está causando lag.


Vale a Pena ou Não

Se você está construindo algo além de um plugin trivial, TabooLib economiza tempo e reduz erros. O framework é mantido ativamente, a comunidade é responsiva e a qualidade do código é boa. Uma licença MIT significa que você pode usar em projetos comerciais sem se preocupar com problemas de licença.

O principal trade-off é que você está adicionando uma dependência ao seu plugin, o que significa que precisa mantê-la atualizada conforme Minecraft evolui. Para a maioria das pessoas, é um preço justo para escrever menos boilerplate e gerenciar menos bugs.

Uma última coisa, se você está colaborando com outros desenvolvedores em um plugin, os padrões consistentes do TabooLib facilitam muito o onboarding. O código de todos fica similar e tudo é previsível.

About the author
Alexandru Maftei
Alexandru MafteiLead Writer

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Share with your friends!