Kotlin · Bukkit · Spigot · Paper

PLUGIN EM KOTLIN DE SITES COM IA

A mesma API do Bukkit, escrita em Kotlin. Descreva o que o plugin deve fazer e o Codexe monta um projeto Gradle com um source set Kotlin, um plugin.yml correto e um JAR que ele consegue compilar para você antes de você baixar.

Por que gerar um plugin em Kotlin

Null safety onde o Bukkit precisa

O Bukkit devolve null o tempo todo - jogadores offline, mundos inexistentes, chaves de config ausentes. O Kotlin torna esses casos explícitos na compilação, e não às 2 da manhã no console do seu servidor.

Um projeto Gradle de verdade

build.gradle.kts configurado para o plugin Kotlin JVM e os repositórios do Paper/Spigot, com a estrutura de código padrão. Nada de um único arquivo para o qual você precisa achar um lugar.

Muito menos código repetitivo

Data classes para modelos de config, extension functions em Player e ItemStack e scope functions no lugar de checagens de null aninhadas. A mesma lógica com bem menos código.

Também serve para Folia e proxies

Se você usa o fork multithread do Paper, lembre que o Folia remove a thread principal única e exige agendamento por região - escolha o alvo Folia no gerador de plugins para o agendamento ficar certo desde o início. Para trabalho em nível de rede, use o gerador de plugins de proxy. A documentação de plugins explica as diferenças.

Exemplos de prompts

> Um plugin em Kotlin para o Paper 1.21 com um comando /kit que entrega um conjunto de itens configurável, um cooldown por jogador guardado em uma data class e config YAML com valores padrão.
> Um plugin em Kotlin que registra cada bloco quebrado em um arquivo por mundo, de forma assíncrona, e adiciona /blocklog <player> para ler as últimas 20 entradas.
> Um plugin em Kotlin que adiciona uma receita de craft personalizada para um item encantado, com um listener que impede o uso fora do Nether.
> Um plugin em Kotlin com uma GUI paginada que lista os jogadores online, com teleporte por clique protegido por um node de permissão.

Perguntas frequentes sobre o gerador de plugins em Kotlin

Plugins em Kotlin rodam em um servidor Spigot ou Paper normal?

+

Sim. O Kotlin compila para bytecode JVM comum, então o servidor nem sabe nem se importa em qual linguagem o plugin foi escrito. Ele carrega exatamente como um plugin Java.

Preciso instalar alguma coisa no servidor?

+

Não. A biblioteca padrão do Kotlin é incluída (shaded) no JAR durante o build, então o plugin é autossuficiente. Isso deixa o JAR maior que o de um plugin Java equivalente.

Maven ou Gradle?

+

Gradle. O alvo Kotlin usa o plugin Kotlin do Gradle, que é a toolchain padrão do Kotlin na JVM. Os alvos Java usam Maven.

O que o Kotlin realmente me dá aqui?

+

Principalmente null safety e menos cerimônia. As APIs do Bukkit retornam null em muitos lugares - getPlayer, getWorld, consultas à config - e o sistema de tipos do Kotlin obriga você a tratar isso na compilação, em vez de descobrir como um NullPointerException em produção. Data classes, extension functions e scope functions também tiram muito código repetitivo da config e dos listeners.

Posso misturar Java e Kotlin em um plugin?

+

O gerador produz um source set Kotlin. O Gradle consegue compilar fontes mistas, então você pode adicionar arquivos Java depois, mas o projeto gerado é Kotlin em primeiro lugar.

Devo escolher Kotlin ou Java?

+

Escolha Java se quiser a máxima compatibilidade com tutoriais, trechos prontos e código de outras pessoas, já que quase todo o material do Bukkit pressupõe Java. Escolha Kotlin se você se sente à vontade com ele e quer um código mais enxuto e com null safety - a superfície da API é idêntica nos dois casos.

Prefer Java, or working somewhere else in the stack? Codexe also generates:

Como o Codexe cria e verifica estes projetos, o que colocar no pedido e os problemas comuns: guia de Spigot and Paper plugins (Java or Kotlin).

PRONTO PARA UM NOVO PLUGIN?

O plano gratuito recarrega 50K tokens por dia, o suficiente para entregar um pequeno plugin em Kotlin de uma só vez.

COMECE A FORJAR
Gerador de plugins de Minecraft em Kotlin – plugins Bukkit em Kotlin feitos com IA | Codexe