跳到主要内容
TabooLib Logo

TabooWiki

TabooLib 官方中文文档 - 现代化的 Minecraft 插件开发框架

功能强大、模块化设计、简单易用的 Minecraft 插件开发框架

为什么选择 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
)

完整的技术生态

支持多种平台,提供丰富的功能模块,满足各类开发需求

💻

编程语言

  • Kotlin现代 JVM 语言
  • Java传统 JVM 语言
🎮

支持平台

  • Bukkit/Spigot1.8-1.21+
  • Paper/Folia高性能服务端
  • BungeeCord代理服务器
  • Velocity现代代理

核心特性

  • 命令系统DSL 风格的命令框架
  • 配置管理类型安全的配置操作
  • 数据库SQL/NoSQL 支持
  • GUI 菜单可视化界面构建
  • NMS 代理跨版本兼容
  • 事件系统高性能事件调度