gradle-hytale

Gradle for Hytale Plugins

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gradle-hytale" with this command: npx skills add z3nlotus/hytale-agent-skills/z3nlotus-hytale-agent-skills-gradle-hytale

Gradle for Hytale Plugins

Build system configuration for Hytale plugin development.

Overview

Hytale plugins use Gradle 9.2 with Kotlin DSL (build.gradle.kts ).

Project Setup

Recommended Structure

MyPlugin/ ├── build.gradle.kts # Main build script ├── settings.gradle.kts # Project settings ├── gradle.properties # Build properties ├── gradle/ │ └── wrapper/ │ └── gradle-wrapper.properties └── src/ └── main/ ├── java/ # Source code └── resources/ # Resources (plugin.json)

settings.gradle.kts

rootProject.name = "MyPlugin"

gradle.properties

Gradle settings

org.gradle.jvmargs=-Xmx2g org.gradle.parallel=true org.gradle.caching=true

Plugin info

plugin.version=1.0.0 plugin.group=com.yourname

build.gradle.kts (Complete)

plugins { java id("com.hytale.plugin") version "1.0.0" // Hytale plugin }

group = property("plugin.group").toString() version = property("plugin.version").toString()

// Java 25 toolchain java { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }

repositories { mavenCentral() maven("https://maven.hytale.com/releases") }

dependencies { // Hytale Server API (compile-only, provided at runtime) compileOnly("com.hytale:server-api:1.0.0")

// Optional: Common libraries
implementation("com.google.code.gson:gson:2.10.1")

// Testing
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")

}

// Plugin metadata hytalePlugin { pluginId = rootProject.name.lowercase() pluginName = rootProject.name author = "YourName" version = project.version.toString() description = "My awesome Hytale plugin" }

// Test configuration tasks.test { useJUnitPlatform() }

// JAR configuration tasks.jar { manifest { attributes( "Plugin-Id" to rootProject.name.lowercase(), "Plugin-Version" to project.version ) } }

Common Tasks

Build

Build plugin JAR

gradle build

Output: build/libs/MyPlugin-1.0.0.jar

Clean Build

Remove build artifacts and rebuild

gradle clean build

Run Development Server

If using Hytale dev server plugin

gradle runServer

List All Tasks

gradle tasks

Dependency Tree

View all dependencies

gradle dependencies

Specific configuration

gradle dependencies --configuration compileClasspath

Dependency Management

Adding Dependencies

dependencies { // Compile-only (provided by server) compileOnly("com.hytale:server-api:1.0.0")

// Bundled in JAR
implementation("org.yaml:snakeyaml:2.0")

// Runtime only
runtimeOnly("org.slf4j:slf4j-simple:2.0.9")

// Test dependencies
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")

}

Shadow/Fat JAR (Bundle Dependencies)

plugins { java id("com.github.johnrengelman.shadow") version "8.1.1" }

tasks.shadowJar { archiveClassifier.set("")

// Relocate to avoid conflicts
relocate("com.google.gson", "com.yourname.libs.gson")

}

// Use shadowJar as default JAR tasks.build { dependsOn(tasks.shadowJar) }

Version Catalogs (Optional)

For larger projects, use version catalogs:

gradle/libs.versions.toml

[versions] hytale = "1.0.0" gson = "2.10.1" junit = "5.10.0"

[libraries] hytale-api = { module = "com.hytale:server-api", version.ref = "hytale" } gson = { module = "com.google.code.gson:gson", version.ref = "gson" } junit = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }

Using in build.gradle.kts

dependencies { compileOnly(libs.hytale.api) implementation(libs.gson) testImplementation(libs.junit) }

Multi-Module Projects

For plugins with multiple modules:

settings.gradle.kts

rootProject.name = "MyPluginSuite"

include("core") include("addon-pvp") include("addon-economy")

Structure

MyPluginSuite/ ├── build.gradle.kts # Root build ├── settings.gradle.kts ├── core/ │ └── build.gradle.kts ├── addon-pvp/ │ └── build.gradle.kts └── addon-economy/ └── build.gradle.kts

Performance Tips

Enable Build Cache

gradle.properties

org.gradle.caching=true

Parallel Execution

gradle.properties

org.gradle.parallel=true

Daemon (Keep Gradle Running)

gradle.properties

org.gradle.daemon=true

Configuration Cache (Experimental)

gradle.properties

org.gradle.configuration-cache=true

Troubleshooting

Issue Solution

Gradle sync fails Check Java 25 is installed and set

Could not resolve dependency Add correct Maven repository

Out of memory Increase -Xmx in gradle.properties

Slow builds Enable caching and parallel execution

Wrong JAR location Check build/libs/ folder

Force Refresh Dependencies

gradle build --refresh-dependencies

Debug Build Issues

gradle build --info gradle build --debug gradle build --stacktrace

Quick Reference

Task Command

Build gradle build

Clean gradle clean

Test gradle test

Run server gradle runServer

List tasks gradle tasks

Dependencies gradle dependencies

Refresh deps gradle build --refresh-dependencies

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

java-25-hytale

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

hytale-world-gen

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

git-workflow

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

hytale-animation

No summary provided by upstream source.

Repository SourceNeeds Review