Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Gradle
uses: GeyserMC/actions/setup-gradle-composite@master
with:
setup-java_java-version: 21
setup-java_java-version: 25

- name: Build Hydraulic
run: ./gradlew build
Expand All @@ -29,7 +29,6 @@ jobs:
with:
artifacts: |
fabric/build/libs/hydraulic-fabric.jar
neoforge/build/libs/hydraulic-neoforge.jar

- name: Get Version
if: ${{ success() && github.repository == 'GeyserMC/Hydraulic' && github.ref_name == 'master' }}
Expand All @@ -47,7 +46,6 @@ jobs:
appPrivateKey: ${{ secrets.RELEASE_APP_PK }}
files: |
fabric:fabric/build/libs/hydraulic-fabric.jar
neoforge:neoforge/build/libs/hydraulic-neoforge.jar
releaseEnabled: false
saveMetadata: true
releaseProject: 'hydraulic'
Expand All @@ -62,7 +60,6 @@ jobs:
host: ${{ secrets.DOWNLOADS_SERVER_IP }}
files: |
fabric/build/libs/hydraulic-fabric.jar
neoforge/build/libs/hydraulic-neoforge.jar
changelog: ${{ steps.metadata.outputs.body }}

- name: Notify Discord
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Setup Gradle
uses: GeyserMC/actions/setup-gradle-composite@master
with:
setup-java_java-version: 21
setup-java_java-version: 25
setup-gradle_cache-read-only: true

- name: Build Hydraulic
Expand All @@ -29,4 +29,3 @@ jobs:
with:
artifacts: |
fabric/build/libs/hydraulic-fabric.jar
neoforge/build/libs/hydraulic-neoforge.jar
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License

Copyright (c) 2019-2023 GeyserMC. http://geysermc.org
Copyright (c) 2019-2026 GeyserMC. http://geysermc.org

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Hydraulic is an open collaboration project by [CubeCraft Games](https://cubecraf
## What is Hydraulic?
Hydraulic is a server-side mod, which allows for Bedrock players to join modded Minecraft: Java Edition servers. This project works alongside [Geyser](https://github.com/GeyserMC/Geyser) to make this possible.

### This project is still in very early development and should not be used on production setups! As such, there are no binaries currently distributed, and they must be retrieved by following the Project Setup instructions below!
### This project is still in very early development and should not be used on production setups! You can get [Hydraulic](https://geysermc.org/download?project=other-projects&hydraulic=expanded) from the GeyserMC website.

## Contributing
Any contributions are appreciated. Please feel free to reach out to us on [Discord](https://discord.gg/geysermc) if
Expand All @@ -20,8 +20,9 @@ you're interested in helping out with Hydraulic.
### Project Setup
1. Clone the repo to your computer.
2. Navigate to the Hydraulic root directory and run `git submodule update --init --recursive`. This command downloads all the needed submodules for Hydraulic and is a crucial step in this process.
3. The project should import into your IDE after the loom setup is complete. For more detailed information, see the [Fabric setup](https://fabricmc.net/wiki/tutorial:setup)
4. Use `./gradlew build` to compile a jar file, or use `./gradlew :fabric:runServer` or `./gradlew :neoforge:runServer` to run a server with Hydraulic installed. Make sure to install the Custom Item API V2 branch of Geyser (Experimental! Here be dragons!) into your `mods` folder as Hydraulic is designed around that new API! Any other build of Geyser is not guaranteed to work.
3. If your default JVM/JDK is not Java 25, please set your IDE to use a valid Java 25 JVM. Otherwise, you will run into an error while building Hydraulic.
4. The project should import into your IDE after the loom setup is complete. For more detailed information, see the [Fabric setup](https://docs.fabricmc.net/develop/getting-started/setting-up).
5. Use `./gradlew build` to compile a jar file, or use `./gradlew :fabric:runServer` or `./gradlew :neoforge:runServer` to run a server with Hydraulic installed. Make sure you have Geyser in your `mods` folder along with Hydraulic!

## Links:
- Website: https://geysermc.org
Expand Down
14 changes: 7 additions & 7 deletions build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ plugins {
}

repositories {
//mavenLocal()
// mavenLocal()

gradlePluginPortal()

// Geyser, Floodgate, Cumulus etc.
maven("https://repo.opencollab.dev/maven-releases/")
maven("https://repo.opencollab.dev/maven-snapshots/")

maven("https://jitpack.io") {
content {
includeGroupByRegex("com\\.github\\..*")
}
}

// Fabric
maven("https://maven.fabricmc.net/")

// NeoForge
maven("https://maven.neoforged.net/releases/")

// Architectury
maven("https://maven.architectury.dev/")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
val minecraftVersion = project.property("minecraft_version") as String

dependencies {
compileOnly("org.checkerframework:checker-qual:3.19.0")
compileOnly("org.checkerframework:checker-qual:4.1.0")
}

indra {
Expand All @@ -18,7 +18,7 @@ indra {
mitLicense()

javaVersions {
target(21)
target(25)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ plugins {
id("hydraulic.publish-conventions")
id("java-library")
id("architectury-plugin")
id("dev.architectury.loom")
id("dev.architectury.loom-no-remap")
}

// These are provided by Minecraft already, no need to include em
Expand All @@ -20,10 +20,6 @@ architectury {
minecraft = minecraftVersion
}

loom {
silentMojangMappingsLicense()
}

configurations {
create("includeTransitive").isTransitive = true
}
Expand All @@ -40,9 +36,24 @@ tasks {
shadowJar {
// Mirrors the example fabric project, otherwise tons of dependencies are shaded that shouldn't be
configurations = listOf(project.configurations.shadow.get())
// The remapped shadowJar is the final desired mod jar
archiveVersion.set(project.version.toString())
archiveClassifier.set("shaded")
mergeServiceFiles()
}

// This task combines the output of the "jar" task, which includes JiJ dependencies,
// and the shadowJar for the final jar.
// thanks bluemap
// https://github.com/BlueMap-Minecraft/BlueMap/blob/cfe73115dc4d1bdd97bc659f41364da65a6a2179/implementations/fabric/build.gradle.kts#L93-L107
register<Jar>("mergeShadowAndJarJar") {
dependsOn( tasks.shadowJar, tasks.jar )
// from sources / final name are configured in the respective projects
archiveVersion.set("")
archiveClassifier.set("")
}

build {
dependsOn(tasks.getByName("mergeShadowAndJarJar"))
}
}

Expand All @@ -60,5 +71,4 @@ afterEvaluate {

dependencies {
minecraft("com.mojang:minecraft:$minecraftVersion")
mappings(loom.officialMojangMappings())
}
29 changes: 22 additions & 7 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ plugins {

val platforms = setOf(
projects.fabric,
projects.neoforge,
// projects.neoforge,
projects.shared,
projects.test
).map { it -> project.project(it.path) }
Expand All @@ -22,17 +22,32 @@ allprojects {
}

repositories {
// mavenLocal()
// mavenLocal()
mavenCentral()

// Geyser, Floodgate, Cumulus etc.
maven("https://repo.opencollab.dev/main")
maven("https://jitpack.io") {
content {
includeGroupByRegex("com\\.github\\..*")
}
}

// Fabric
maven("https://maven.fabricmc.net/")

// NeoForge
maven("https://maven.neoforged.net/releases")

// creative
maven("https://repo.nexomc.com/releases/")

// Modrinth
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = uri("https://api.modrinth.com/maven")
}
}
filter {
includeGroup("maven.modrinth")
}
}
}
}
28 changes: 18 additions & 10 deletions fabric/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,19 @@ configurations {
}

tasks {
remapJar {
dependsOn(shadowJar)
inputFile.set(shadowJar.get().archiveFile)
named<Jar>("mergeShadowAndJarJar") {
from (
zipTree( shadowJar.map { it.outputs.files.singleFile } ).matching {
exclude("fabric.mod.json")
exclude("LICENSE")
},
zipTree( jar.map { it.outputs.files.singleFile } ).matching {
include("META-INF/jars/**")
include("fabric.mod.json")
include("LICENSE")
}
)
archiveBaseName.set("${modId}-fabric")
archiveClassifier.set("")
archiveVersion.set("")
}

shadowJar {
Expand All @@ -35,9 +42,9 @@ tasks {
}

dependencies {
modImplementation(libs.fabric.loader)
modApi(libs.fabric.api)
common(project(":shared", configuration = "namedElements")) { isTransitive = false }
implementation(libs.fabric.loader)
api(libs.fabric.api)
common(project(":shared")) { isTransitive = false }
compileOnly(libs.geyser.api)

shadow(project(path = ":shared", configuration = "transformProductionFabric")) {
Expand All @@ -46,12 +53,13 @@ dependencies {

compileOnly(libs.asm)

modRuntimeOnly(libs.pack.converter)
runtimeOnly(libs.pack.converter)
includeTransitive(libs.pack.converter)

modLocalRuntime(libs.geyser.fabric) {
localRuntime(libs.geyser.fabric) {
exclude(group = "io.netty")
exclude(group = "io.netty.incubator")
exclude(group = "org.incendo")
}
}

Expand Down
9 changes: 3 additions & 6 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@
"homepage": "https://geysermc.org/",
"sources": "https://github.com/GeyserMC/Hydraulic"
},

"license": "MIT",
"icon": "assets/hydraulic/logo.png",

"environment": "*",
"entrypoints": {
"main": [
Expand All @@ -25,12 +23,11 @@
"hydraulic.mixins.json",
"hydraulic-fabric.mixins.json"
],

"depends": {
"fabricloader": ">=0.15",
"fabric": "*",
"fabricloader": ">=0.19.2",
"fabric-api": "*",
"geyser-fabric": "*",
"minecraft": ">=${minecraft_version}",
"java": ">=21"
"java": ">=25"
}
}
2 changes: 1 addition & 1 deletion fabric/src/main/resources/hydraulic-fabric.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"required": true,
"minVersion": "0.8",
"package": "org.geysermc.hydraulic.fabric.mixin",
"compatibilityLevel": "JAVA_21",
"compatibilityLevel": "JAVA_25",
"mixins": [
"RegistrySyncManagerMixin"
],
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ group=org.geysermc.hydraulic
version=1.0.0-SNAPSHOT
description="A companion mod to Geyser which allows for Bedrock players to join modded Minecraft: Java Edition servers."

minecraft_version=1.21.11
minecraft_version=26.1.2
common_runs_enabled=false
common_client_run_name=Common Client
common_server_run_name=Common Server
Expand Down
28 changes: 14 additions & 14 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
[versions]
mixin = "0.8.5"
mixinextras = "0.3.5"
geyser = "2.9.3-SNAPSHOT"
auto-service = "1.0.1"
pack-converter = "3.4.1-SNAPSHOT"
mixin = "0.8.7"
mixinextras = "0.5.4"
geyser = "2.10.0-SNAPSHOT"
auto-service = "1.1.1"
pack-converter = "3.4.3-SNAPSHOT"
indra = "4.0.0"
shadow = "9.2.2"
architectury-plugin = "3.4-SNAPSHOT"
architectury-loom = "1.13-SNAPSHOT"
shadow = "9.4.1"
architectury-plugin = "3.5-SNAPSHOT"
architectury-loom = "1.14-SNAPSHOT"
asm = "5.2"

# fabric
fabric-loader = "0.18.2"
fabric-api = "0.139.5+1.21.11"
# Fabric
fabric-loader = "0.19.2"
fabric-api = "0.149.1+26.1.2"

# neoforge
neoforge-version = "21.11.6-beta"
# NeoForge
neoforge-version = "26.1.2.65-beta"

[libraries]
mixin = { group = "org.spongepowered", name = "mixin", version.ref = "mixin" }
Expand All @@ -28,7 +28,7 @@ pack-converter = { group = "org.geysermc.pack", name = "converter", version.ref
indra = { group = "net.kyori", name = "indra-common", version.ref = "indra" }
shadow = { group = "com.gradleup.shadow", name = "com.gradleup.shadow.gradle.plugin", version.ref = "shadow" }
architectury-plugin = { group = "architectury-plugin", name = "architectury-plugin.gradle.plugin", version.ref = "architectury-plugin" }
architectury-loom = { group = "dev.architectury.loom", name = "dev.architectury.loom.gradle.plugin", version.ref = "architectury-loom" }
architectury-loom = { group = "dev.architectury.loom-no-remap", name = "dev.architectury.loom-no-remap.gradle.plugin", version.ref = "architectury-loom" }
asm = { group = "org.ow2.asm", name = "asm-debug-all", version.ref = "asm" }

# Fabric
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading
Loading