This commit is contained in:
Britakee
2026-01-19 04:06:00 +01:00
4 changed files with 195 additions and 9 deletions

34
.gitignore vendored
View File

@@ -1,14 +1,15 @@
### Gradle ### # Gradle
.gradle .gradle/
build/ build/
!gradle/wrapper/gradle-wrapper.jar !gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/ !**/src/main/**/build/
!**/src/test/**/build/ !**/src/test/**/build/
.kotlin/
### Hytale ### # Server testing directory
run/ run/
### IntelliJ IDEA ### # IntelliJ IDEA
.idea/ .idea/
*.iws *.iws
*.iml *.iml
@@ -17,7 +18,7 @@ out/
!**/src/main/**/out/ !**/src/main/**/out/
!**/src/test/**/out/ !**/src/test/**/out/
### Eclipse ### # Eclipse
.apt_generated .apt_generated
.classpath .classpath
.factorypath .factorypath
@@ -29,15 +30,32 @@ bin/
!**/src/main/**/bin/ !**/src/main/**/bin/
!**/src/test/**/bin/ !**/src/test/**/bin/
### NetBeans ### # NetBeans
/nbproject/private/ /nbproject/private/
/nbbuild/ /nbbuild/
/dist/ /dist/
/nbdist/ /nbdist/
/.nb-gradle/ /.nb-gradle/
### VS Code ### # VS Code
.vscode/ .vscode/
### Mac OS ### # Mac OS
.DS_Store .DS_Store
# Windows
Thumbs.db
desktop.ini
# Logs
*.log
# Temporary files
*.tmp
*.bak
*.swp
*~
# Template specific
libs/HytaleServer.jar
buildSrc/

80
build.gradle.kts Normal file
View File

@@ -0,0 +1,80 @@
plugins {
id("java-library")
id("com.gradleup.shadow") version "9.3.1"
}
group = findProperty("pluginGroup") as String? ?: "com.example"
version = findProperty("pluginVersion") as String? ?: "1.0.0"
description = findProperty("pluginDescription") as String? ?: "A Hytale plugin template"
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
// Hytale Server API (provided by server at runtime)
compileOnly(files("libs/HytaleServer.jar"))
// Common dependencies (will be bundled in JAR)
implementation("com.google.code.gson:gson:2.10.1")
implementation("org.jetbrains:annotations:24.1.0")
// Test dependencies
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
tasks {
// Configure Java compilation
compileJava {
options.encoding = Charsets.UTF_8.name()
options.release = 25
}
// Configure resource processing
processResources {
filteringCharset = Charsets.UTF_8.name()
// Replace placeholders in manifest.json
val props = mapOf(
"group" to project.group,
"version" to project.version,
"description" to project.description
)
inputs.properties(props)
filesMatching("manifest.json") {
expand(props)
}
}
// Configure ShadowJar (bundle dependencies)
shadowJar {
archiveBaseName.set(rootProject.name)
archiveClassifier.set("")
// Relocate dependencies to avoid conflicts
relocate("com.google.gson", "com.yourplugin.libs.gson")
// Minimize JAR size (removes unused classes)
minimize()
}
// Configure tests
test {
useJUnitPlatform()
}
// Make build depend on shadowJar
build {
dependsOn(shadowJar)
}
}
// Configure Java toolchain
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(25))
}
}

0
libs/.gitkeep Normal file
View File

View File

@@ -0,0 +1,88 @@
package com.example.templateplugin;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import javax.annotation.Nonnull;
import java.util.logging.Level;
/**
* Main plugin class.
*
* TODO: Implement your plugin logic here.
*
* @author YourName
* @version 1.0.0
*/
public class TemplatePlugin extends JavaPlugin {
private static TemplatePlugin instance;
/**
* Constructor - Called when plugin is loaded.
*/
public TemplatePlugin(@Nonnull JavaPluginInit init) {
super(init);
instance = this;
getLogger().at(Level.INFO).log("[TemplatePlugin] Plugin loaded!");
}
/**
* Get plugin instance.
*/
public static TemplatePlugin getInstance() {
return instance;
}
/**
* Called when plugin is set up.
*/
@Override
protected void setup() {
getLogger().at(Level.INFO).log("[TemplatePlugin] Plugin setup!");
// TODO: Initialize your plugin here
// - Load configuration
// - Register event listeners
// - Register commands
// - Start services
registerEvents();
registerCommands();
}
/**
* Called when plugin is enabled.
*/
@Override
protected void start() {
getLogger().at(Level.INFO).log("[TemplatePlugin] Plugin enabled!");
}
/**
* Called when plugin is disabled.
*/
@Override
public void shutdown() {
getLogger().at(Level.INFO).log("[TemplatePlugin] Plugin disabled!");
// TODO: Cleanup your plugin here
// - Save data
// - Stop services
// - Close connections
}
/**
* Register your commands here.
*/
private void registerEvents() {
}
/**
* Register your commands here.
*/
private void registerCommands() {
}
}