Pumpkin-Docs/docs/pt/plugin-dev/migrating-from-bukkit/index.md
Alexander Medvedev 5c23b676ed feat: d binding
2026-09-17 09:23:24 +02:00

28 lines
1.8 KiB
Markdown

# 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:
| Conceito | Bukkit / Spigot / Paper | Pumpkin |
| :--- | :--- | :--- |
| **Suporte a Linguagens** | Java / Kotlin / Scala (JVM) | Rust, Python, Kotlin, C#, Go, C |
| **Saída Binária** | Arquivo Java `.jar` | Componente WebAssembly `.wasm` |
| **Descritor do Plugin** | Arquivo `plugin.yml` | Struct programática `PluginMetadata` |
| **Ganchos de Ciclo de Vida (Hooks)** | `onEnable()` / `onDisable()` | `on_load(context)` / `on_unload(context)` |
| **Segurança e Isolamento** | Reflexão (Reflection) irrestrita da JVM | Modelo de recursos (capabilities) WASM em sandbox |
| **Concorrência** | Loop 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](./commands) — Fazendo a transição de `getCommand().setExecutor()` e `plugin.yml` para árvores de comandos Brigadier.
- [Migrando Eventos](./events) — Substituindo as interfaces `@EventHandler` e `Listener` pelo sistema de eventos bloqueantes vs. não bloqueantes do Pumpkin.
- [Migrando Inventários e GUIs](./inventories) — Mudando de `Bukkit.createInventory()` para manipuladores de contêineres e janelas do Pumpkin.
- [Migrando Configuração e Dados](./configuration) — Substituindo `getConfig()` / `config.yml` por armazenamento nativo em TOML, JSON ou personalizado.