Quick Comparison#
| Feature | Paper | Bukkit |
|---|---|---|
| Java | 21 | 8+ |
| Minecraft | 1.19.4+ | 1.13+ |
| Adventure | Native | Adapter required |
| Dependencies | None | adventure-platform-bukkit |
| Performance | Direct cast | Adapter overhead |
Architecture#
// CommandSender IS Audience - direct cast, zero overhead
public class PaperAudienceConverter implements AudienceConverter<CommandSender> {
@Override
public Audience convert(CommandSender viewer) {
return viewer; // Direct!
}
}
// Locale from player.locale()
public class PaperLocaleProvider implements LocaleProvider<CommandSender> {
@Override
public Locale provide(CommandSender viewer) {
return viewer instanceof Player p ? p.locale() : Locale.ROOT;
}
}When to Use#
| Use Paper When | Use Bukkit When |
|---|---|
| Running Paper 1.19.4+ | Running Bukkit/Spigot |
| Can use Java 21 | Need Java 8 compatibility |
| Want zero dependencies | Supporting older versions |
| Want best performance | Can't upgrade to Paper |