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

1.6 KiB

Migrating Overview & Architecture

Moving from Bukkit / Spigot / Paper plugin development to Pumpkin involves shifting from a Java-centric object-oriented model to a compiled, multi-language WebAssembly (WASM) component model.


The table below contrasts the legacy Bukkit/Paper paradigm with Pumpkin's modern WebAssembly architecture:

Concept Bukkit / Spigot / Paper Pumpkin
Language Support Java / Kotlin / Scala (JVM) Rust, Python, Kotlin, C#, Go, C
Binary Output .jar Java Archive .wasm WebAssembly Component
Plugin Descriptor plugin.yml file Programmatic PluginMetadata struct
Lifecycle Hooks onEnable() / onDisable() on_load(context) / on_unload(context)
Security & Isolation Unrestricted JVM Reflection Sandboxed WASM capability model
Concurrency Single-threaded tick loop (BukkitScheduler) Multithreaded native execution with Async runtime

Detailed Migration Topics

Explore dedicated guides on migrating each major plugin subsystem:

  • Migrating Commands — Transitioning from getCommand().setExecutor() and plugin.yml to Brigadier command trees.
  • Migrating Events — Replacing @EventHandler and Listener interfaces with Pumpkin's blocking vs. non-blocking event system.
  • Migrating Inventories & GUIs — Moving from Bukkit.createInventory() to Pumpkin container and window handlers.
  • Migrating Configuration & Data — Replaces getConfig() / config.yml with native TOML, JSON, or custom storage.