Skip to content

Visão Geral e Arquitetura de Migração ​

Migrar do desenvolvimento de plugins para Bukkit / Spigot / Paper para o Pumpkin envolve uma mudança de um modelo orientado a objetos centrado em Java para um modelo de componentes compilado e multilíngue em WebAssembly (WASM).


A tabela abaixo compara o paradigma legado do Bukkit/Paper com a arquitetura moderna em WebAssembly do Pumpkin:

ConceitoBukkit / Spigot / PaperPumpkin
Suporte a LinguagensJava / Kotlin / Scala (JVM)Rust, Python, Kotlin, C#, Go, C
Saída BináriaArquivo Java .jarComponente WebAssembly .wasm
Descritor do PluginArquivo plugin.ymlStruct programática PluginMetadata
Ganchos de Ciclo de Vida (Hooks)onEnable() / onDisable()on_load(context) / on_unload(context)
Segurança e IsolamentoReflexão (Reflection) irrestrita da JVMModelo de recursos (capabilities) WASM em sandbox
ConcorrênciaLoop de tick single-threaded (BukkitScheduler)Execução nativa multithread com runtime assíncrono (Async)

Tópicos Detalhados de Migração ​

Explore guias dedicados sobre a migração de cada subsistema principal de plugins:

  • Migrando Comandos — Fazendo a transição de getCommand().setExecutor() e plugin.yml para árvores de comandos Brigadier.
  • Migrando Eventos — Substituindo as interfaces @EventHandler e Listener pelo sistema de eventos bloqueantes vs. não bloqueantes do Pumpkin.
  • Migrando Inventários e GUIs — Mudando de Bukkit.createInventory() para manipuladores de contêineres e janelas do Pumpkin.
  • Migrando Configuração e Dados — Substituindo getConfig() / config.yml por armazenamento nativo em TOML, JSON ou personalizado.

Lançado sob a licença MIT.