diff --git a/backend-plugin/build.gradle.kts b/backend-plugin/build.gradle.kts index ff8bda0..441e797 100644 --- a/backend-plugin/build.gradle.kts +++ b/backend-plugin/build.gradle.kts @@ -3,9 +3,13 @@ plugins { alias(libs.plugins.shadow) } +repositories { + maven("https://maven.hytale.com/release") +} + dependencies { implementation(project(":common")) - compileOnly(files("libs/HytaleServer.jar")) + compileOnly(libs.hytale.server) } diff --git a/backend-plugin/src/main/resources/manifest.json b/backend-plugin/src/main/resources/manifest.json index 19d3a25..689dbef 100644 --- a/backend-plugin/src/main/resources/manifest.json +++ b/backend-plugin/src/main/resources/manifest.json @@ -11,5 +11,5 @@ ], "Website": "https://github.com/xyzeva/hyproxy", "Main": "ac.eva.hyproxy.plugin.HyProxyBackendPlugin", - "ServerVersion": "*" + "ServerVersion": "2026.03.26-89796e57b" } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 9f8dfb4..45cbae4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,3 +7,13 @@ allprojects { } } +subprojects { + plugins.withId("java") { + configure { + toolchain { + languageVersion = JavaLanguageVersion.of(25) + } + } + } +} + diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts new file mode 100644 index 0000000..bf67238 --- /dev/null +++ b/examples/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + id("java") + alias(libs.plugins.shadow) +} + +dependencies { + implementation(project(":proxy")) +} + + +tasks.shadowJar { + archiveFileName.set("hyproxy-examples-$version.jar") + mergeServiceFiles() +} + +tasks.build { + dependsOn(tasks.shadowJar) +} diff --git a/examples/src/main/java/ac/eva/hyproxy/examples/ExamplePlugin.java b/examples/src/main/java/ac/eva/hyproxy/examples/ExamplePlugin.java new file mode 100644 index 0000000..899bd39 --- /dev/null +++ b/examples/src/main/java/ac/eva/hyproxy/examples/ExamplePlugin.java @@ -0,0 +1,18 @@ +package ac.eva.hyproxy.examples; + + +import ac.eva.hyproxy.HyProxy; +import ac.eva.hyproxy.event.impl.player.PlayerAuthSuccessEvent; +import ac.eva.hyproxy.examples.commands.TestCommand; +import ac.eva.hyproxy.plugin.HyProxyPlugin; + +public class ExamplePlugin implements HyProxyPlugin { + + @Override + public void load(HyProxy proxy) { + proxy.getCommandManager().registerCloudAnnotationCommand(new TestCommand()); + proxy.getEventBus().subscribe(PlayerAuthSuccessEvent.class, 0, event -> { + System.out.println("Hello: " + event.getPlayer().getUsername()); + }); + } +} diff --git a/examples/src/main/java/ac/eva/hyproxy/examples/commands/TestCommand.java b/examples/src/main/java/ac/eva/hyproxy/examples/commands/TestCommand.java new file mode 100644 index 0000000..505b073 --- /dev/null +++ b/examples/src/main/java/ac/eva/hyproxy/examples/commands/TestCommand.java @@ -0,0 +1,16 @@ +package ac.eva.hyproxy.examples.commands; + +import ac.eva.hyproxy.message.Message; +import ac.eva.hyproxy.player.HyProxyPlayer; +import org.incendo.cloud.annotations.Command; + +import java.awt.*; + +public class TestCommand { + + @Command("example test") + public void testCommand(HyProxyPlayer sender) { + sender.sendMessage(Message.raw("example test").color(Color.GREEN)); + } + +} diff --git a/examples/src/main/resources/hyproxy-plugin.json b/examples/src/main/resources/hyproxy-plugin.json new file mode 100644 index 0000000..d051e58 --- /dev/null +++ b/examples/src/main/resources/hyproxy-plugin.json @@ -0,0 +1,10 @@ +{ + "id": "test-plugin", + "name": "Test Plugin", + "version": "1.0.0", + "mainClass": "ac.eva.hyproxy.examples.ExamplePlugin", + "description": "Test HyProxy plugin", + "authors": [ + "oskarscot" + ] +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 64149a5..ecc8a5b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,6 +12,7 @@ jose-jwt = "10.6" tink = "1.20.0" guava = "33.5.0-jre" cloud = "2.0.0" +hytale = "2026.03.26-89796e57b" [plugins] shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } @@ -48,6 +49,7 @@ nightconfig-toml = { group = "com.electronwill.night-config", name = "toml", ver jose-jwt = { group = "com.nimbusds", name = "nimbus-jose-jwt", version.ref = "jose-jwt" } tink = { group = "com.google.crypto.tink", name = "tink", version.ref = "tink" } guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } +hytale-server = { group = "com.hypixel.hytale", name = "Server", version.ref = "hytale" } [bundles] netty = ["netty-codec", "netty-handler", "netty-transport-native-epoll", "netty-transport-native-kqueue", "netty-codec-classes-quic"] diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/proxy/build.gradle.kts b/proxy/build.gradle.kts index 68c281b..e8d64dd 100644 --- a/proxy/build.gradle.kts +++ b/proxy/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("java") + `java-library` alias(libs.plugins.shadow) } @@ -12,7 +12,7 @@ dependencies { implementation(libs.bundles.netty) implementation(libs.bundles.log4j) implementation(libs.bundles.unirest) - implementation(libs.bundles.cloud) + api(libs.bundles.cloud) implementation(libs.terminalconsoleappender) implementation(libs.nightconfig.toml) diff --git a/settings.gradle.kts b/settings.gradle.kts index 0cd0a76..f6bc266 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,4 +2,5 @@ rootProject.name = "hyproxy" include("proxy") include("common") -include("backend-plugin") \ No newline at end of file +include("backend-plugin") +include("examples") \ No newline at end of file