
Kytale
Hytale Kotlin 语言加载器 + 实用工具
Kytale
用于 Hytale 服务器插件开发的 Kotlin 框架。
Kytale 打包了 Kotlin 运行时,并提供了一组惯用的 DSL,用于构建插件、游戏系统、UI、命令、事件、配置等——全部拥有一流的 Kotlin 支持。
✨ 特性
- Kotlin 运行时 - stdlib、reflect、协程(2.2.0)、kotlinx.serialization
- 事件 DSL - 使用具体化泛型的类型安全事件订阅
- 命令 DSL - 支持异步/协程的结构化命令
- 配置 DSL - 通过属性委托实现 JSON 配置
- 调度器 DSL - 基于协程的任务调度
- UI DSL - 编译期 UI 生成和交互元素
- Hexweave - 用于玩家事件、命令、任务、ECS 系统的可选辅助层
- 扩展 - 用于实体、向量、速度、目标锁定、伤害的实用工具
🛠️ 快速入门
Gradle 设置
将 Kytale 添加到你的 build.gradle.kts 文件中:
plugins {
kotlin("jvm") version "2.2.0"
kotlin("plugin.serialization") version "2.2.0"
id("hytale-mod") version "0.+"
}
repositories {
mavenCentral()
maven("<a href="/linkout?remoteUrl=https%253a%252f%252fcursemaven.com%252f" target="_blank" rel="nofollow">https://cursemaven.com</a>")
maven("<a href="/linkout?remoteUrl=https%253a%252f%252fmaven.hytale-modding.info%252freleases" target="_blank" rel="nofollow">https://maven.hytale-modding.info/releases</a>")
}
dependencies {
compileOnly("curse.maven:kytale-PROJECTID:FILEID")
}
运行时依赖
将 Kytale 添加到你的 manifest.json 文件中:
{
"Dependencies": {
"AmoAster:Kytale": "*"
}
}
示例插件
class MyPlugin(init: JavaPluginInit) : KotlinPlugin(init) {
override fun setup() {
super.setup()
event<PlayerConnectEvent> { event ->
logger.info { "Player connected: ${event.playerRef.uuid}" }
}
command("greet", "Greet the player") {
executes { ctx ->
ctx.sendMessage(Message.raw("Hello!"))
}
}
}
}
📌 生命周期
- 构造函数 - 设置基本状态
- setup() - 注册事件、命令、UI
- start() - 后初始化
- shutdown() - 清理
📘 了解更多
完整的文档、项目结构、DSL 示例、UI 系统和高级用法可在 GitHub 上找到:https://github.com/briarss/Kytale/tree/main
📄 许可证
MIT 许可证
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。