Kytale

Kytale

Hytale Kotlin Language Loader + Utilities

456.0 загрузок
Обновлён 18 дней назад

Описание

Китале

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

Последние версии

Kytale-1.4.4.jar

Early Access 15.01.2026 7.4 МБ
Скачать