Kytale
Hytale Kotlin Language Loader + Utilities
Описание
Китале
Kotlin Framework для разработки плагина сервера Hytale.
Kytale объединяет время выполнения Kotlin и предоставляет идиоматические DSL для создания плагинов, систем геймплея, пользовательского интерфейса, команд, событий, конфигурации и многого другого - все с первоклассной поддержкой Kotlin.
Источник и полная документация на GitHub
Особенности
- Котлин Runtime - stdlib, reflect,coroutines (2.2.0), kotlinx.serialization
- Событие DSL - Типовые безопасные подписки на мероприятия с обновленными дженериками
- Командный DSL Структурированные команды с поддержкой асинхронизации/корутинной поддержки
- Конфигурация DSL Конфигурация JSON через делегатов собственности
- Расписание DSL - Планирование заданий на основе правил
- UI DSL - генерация пользовательского интерфейса и интерактивные элементы
- Шевроле - Факультативный вспомогательный уровень для событий игрока, команд, задач, систем ECS
- Расширения - Услуги для объектов, векторов, скорости, нацеливания, повреждения
️ Быстрый старт
Настройка Gradle
Добавить Kytale в свой build.gradle.kts:
плагины {
kotlin("jvm") версия "2.2.0"
kotlin("plugin.serialization") версия "2.2.0"
id("hytale-mod") версия "0.+"
?
репозитории {
mavenCentral()
мэвен()https://cursemaven.com")
мэвен()https://maven.hytale-modding.info/releases")
?
зависимости {
compileOnly ("curse.maven:kytale-PROJECTID:FILEID")
?
Зависимость от времени выполнения
Добавить Kytale в свой manifest.json:
{
"Зависимость": {
"AmoAster:Kytale": "*"
?
?
Пример плагина
Класс MyPlugin (init: JavaPluginInit) : KotlinPlugin (init)
Override Fun Setup (альбом) {
Super.setup()
Разработчик: PlayerConnect Событие { Событие ->
logger.info { "Подключенный игрок: ${event.playerRef.uuid} }
?
Команда («привет», «приветствуйте игрока») {
выполняется { ctx ->
ctx.sendMessage (Message.raw)
?
?
?
?
Жизненный цикл
- конструктор - Настройка базового состояния
- установка() - Регистрация событий, команд, UI
- Старт() - После инициализации
- отключение() - Уборка
Узнать больше
Полная документация, структура проекта, примеры DSL, система пользовательского интерфейса и расширенное использование доступны на GitHub: https://github.com/briarss/Kytale/tree/main
Лицензия
МТИ Лицензия
Показать оригинальное описание (English)
Kytale
Kotlin framework for Hytale server plugin development.
Kytale bundles the Kotlin runtime and provides idiomatic DSLs to build plugins, gameplay systems, UI, commands, events, configuration, and more - all with first-class Kotlin support.
View Source and Full Documentation on GitHub
✨ Features
- Kotlin Runtime - stdlib, reflect, coroutines (2.2.0), kotlinx.serialization
- Event DSL - Type-safe event subscriptions with reified generics
- Command DSL - Structured commands with async / coroutine support
- Config DSL - JSON configuration via property delegates
- Scheduler DSL - Coroutine-based task scheduling
- UI DSL - Compile-time UI generation and interactive elements
- Hexweave - Optional helper layer for player events, commands, tasks, ECS systems
- Extensions - Utilities for entities, vectors, velocity, targeting, damage
🛠️ Quick Start
Gradle Setup
Add Kytale to your 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("https://cursemaven.com")
maven("https://maven.hytale-modding.info/releases")
}
dependencies {
compileOnly("curse.maven:kytale-PROJECTID:FILEID")
}
Runtime Dependency
Add Kytale to your manifest.json:
{
"Dependencies": {
"AmoAster:Kytale": "*"
}
}
Example Plugin
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!"))
}
}
}
}
📌 Lifecycle
- Constructor - Setup basic state
- setup() - Register events, commands, UI
- start() - Post-initialization
- shutdown() - Cleanup
📘 Learn More
Full documentation, project structure, DSL examples, UI system, and advanced usage are available on GitHub: https://github.com/briarss/Kytale/tree/main
📄 License
MIT License