为什么选择 TabooLib?
强大的功能、优雅的设计、极致的开发体验
🚀
简单易用
提供开箱即用的插件开发框架,通过简洁的 API 和丰富的文档, 让您快速上手 Minecraft 插件开发。无需繁琐的配置,专注于业务逻辑实现。
⚡
功能强大
内置命令系统、配置管理、数据库操作、GUI 菜单等常用功能模块, 支持跨版本 NMS 操作,提供完善的工具链,大幅提升开发效率。
🔧
模块化设计
采用模块化架构,按需加载所需功能,有效减少插件体积。 支持 Bukkit、BungeeCord、Velocity 等多个平台,一套代码多端运行。
🌐
跨版本支持
通过 NMS 代理系统实现跨版本兼容,从 1.8 到最新版本无缝支持。 自动处理版本差异,开发者无需关心底层实现细节。
⚙️
性能优化
采用高性能的事件调度器和优化的数据结构,确保插件运行流畅。 支持异步操作和协程,充分利用多核 CPU 性能。
👥
活跃社区
拥有活跃的开发者社区和完善的技术支持, 定期更新维护,快速响应问题反馈,提供丰富的示例项目和教程。
简洁优雅的 API 设计
通过现代化的 DSL 语法,让插件开发更加直观和高效
⚡
命令系统
使用 DSL 语法快速构建命令系统
@CommandHeader("taboolib", ["tl"])
object ExampleCommand {
@CommandBody
val give = subCommand {
dynamic("user") {
suggestion<Player> { _, _ ->
listOf("player1", "player2")
}
execute<Player> { sender, context, _ ->
val user = context["user"]
sender.sendMessage("Hello, ${user}!")
}
}
}
}
📝
配置管理
类型安全的配置文件操作
@Config("config.yml")
lateinit var config: YamlConfiguration
private set
fun loadConfig() {
config.reload()
val message = config.getString("message")
val enabled = config.getBoolean("enabled")
}
🔧
NMS 代理
跨版本 NMS 操作,自动适配
val nms = nmsProxy<NMSMessage>()
// 发送 ActionBar
nms.sendActionBar(player, "Hello World")
// 发送 Title
nms.sendTitle(
player,
title = "Welcome",
subtitle = "to TabooLib",
fadeIn = 10,
stay = 70,
fadeOut = 20
)