迁移概述与架构
从 Bukkit / Spigot / Paper 插件开发迁移到 Pumpkin,意味着从以 Java 为中心的面向对象模型转变为编译型的多语言 WebAssembly (WASM) 组件模型。
下表对比了传统的 Bukkit/Paper 范式与 Pumpkin 现代 WebAssembly 架构的差异:
| 概念 | Bukkit / Spigot / Paper | Pumpkin |
|---|---|---|
| 语言支持 | 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。