Skip to content

迁移概述与架构 ​

从 Bukkit / Spigot / Paper 插件开发迁移到 Pumpkin,意味着从以 Java 为中心的面向对象模型转变为编译型的多语言 WebAssembly (WASM) 组件模型。


下表对比了传统的 Bukkit/Paper 范式与 Pumpkin 现代 WebAssembly 架构的差异:

概念Bukkit / Spigot / PaperPumpkin
语言支持Java / Kotlin / Scala (JVM)Rust、Python、Kotlin、C#、Go、C
二进制输出.jar Java 归档.wasm WebAssembly 组件
插件描述符plugin.yml 文件声明式代码 PluginMetadata 结构体
生命周期钩子onEnable() / onDisable()on_load(context) / on_unload(context)
安全性与隔离性无限制的 JVM 反射沙箱化 WASM 权能模型
并发模型单线程 Tick 循环 (BukkitScheduler)带有异步运行时的多线程原生执行

详细迁移主题 ​

探索关于迁移各个主要插件子系统的专属指南:

  • 迁移命令 — 从 getCommand().setExecutor() 和 plugin.yml 过渡到 Brigadier 命令树。
  • 迁移事件 — 使用 Pumpkin 的阻塞与非阻塞事件系统替换 @EventHandler 和 Listener 接口。
  • 迁移物品栏与 GUI — 从 Bukkit.createInventory() 迁移到 Pumpkin 容器与窗口处理器。
  • 迁移配置与数据 — 使用原生 TOML、JSON 或自定义存储替换 getConfig() / config.yml。

基于 MIT 许可发布。