Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
8b0c7e6
Initial work on Hydraulic for Java 26.1
SleepyPopp May 7, 2026
fce47fa
More work on Hydraulic for Java 26.1
SleepyPopp May 7, 2026
8f06088
Even more work on Hydraulic for Java 26.1
SleepyPopp May 7, 2026
f4915fd
Remove debug and add debugUnchecked
SleepyPopp May 7, 2026
f54d219
Update fabric/src/main/resources/fabric.mod.json
SleepyPopp May 7, 2026
3f96a70
Clean up some buildscripts, fix test mod datagen
eclipseisoffline May 7, 2026
635cf01
Remove remapJar
SleepyPopp May 8, 2026
6c54e39
Update to PackConverter 3.4.2-SNAPSHOT
SleepyPopp May 17, 2026
e839d90
Fix build error
SleepyPopp May 17, 2026
a2dc3ea
Fix build error (second try)
SleepyPopp May 17, 2026
1a4cedb
Fix build error (third try)
SleepyPopp May 17, 2026
d7124cc
Actually fix build error
SleepyPopp May 17, 2026
8f04f27
Update to Gradle 9.5.1
SleepyPopp May 19, 2026
9a4a720
Fix errors
SleepyPopp May 19, 2026
1d40e9c
Bump Fabric API/NeoForge
SleepyPopp May 19, 2026
c70c7ee
Add comments and remove unnecessary repositories
SleepyPopp May 19, 2026
d6b4621
Fixed stack overflow error
mas6y6 May 20, 2026
0920019
Update PackConverter to 3.4.3-SNAPSHOT
SleepyPopp May 25, 2026
6025876
Update Fabric API and NeoForge
SleepyPopp May 25, 2026
3cd25f5
Disable NeoForge module
SleepyPopp May 25, 2026
9d2195a
add outside crash logs for ref
PlixyMC May 26, 2026
180dcfe
Possible Crash Fix?
PlixyMC May 26, 2026
7bb75fc
Enhance error handling in PackManager and update PackFormat version i…
PlixyMC May 26, 2026
eaf8b16
Remove Unnecessary Files and Folders
PlixyMC May 26, 2026
0e591d1
Remove NeoForge runServer task from README.md
SleepyPopp May 27, 2026
a9eccf8
Remove the Crowdin Geyser badge
SleepyPopp May 27, 2026
49e2268
Revert "Remove Unnecessary Files and Folders"
PlixyMC May 27, 2026
fad55f6
Update PackManager.java
PlixyMC May 27, 2026
e943a5f
Keeping .vscode dir, cus vscode is crashing out
PlixyMC May 27, 2026
e389a65
Remove Unnescessary Folders
PlixyMC May 27, 2026
8e84f4b
Merge branch 'master' of https://github.com/PlixyMC/Hydraulic
PlixyMC May 27, 2026
37bd064
Change README.md to match Sleepypopp's README.md
PlixyMC May 27, 2026
e755e3f
Clarify Hydraulic mod compatibility with ForgeConfigAPI
PlixyMC May 27, 2026
667c26e
No vscode
PlixyMC May 27, 2026
f05dd60
Instead of ./gradlew.bat :fabric:build, now just gradlew.bat build
PlixyMC May 27, 2026
57344fe
Revert "Instead of ./gradlew.bat :fabric:build, now just gradlew.bat …
PlixyMC May 27, 2026
56c0f75
Update build.gradle.kts
PlixyMC May 27, 2026
1369559
Revert "No vscode"
PlixyMC May 27, 2026
7cd1336
idk it was autogened
PlixyMC May 27, 2026
307fd04
whatists
PlixyMC May 27, 2026
01908f3
Remove Vscode AGAIN
PlixyMC May 27, 2026
2e880d2
Merge branch 'master' into backupmaster
PlixyMC May 28, 2026
e5a5258
Merge pull request #1 from PlixyMC/backupmaster
PlixyMC May 28, 2026
4293843
Update README to simplify Hydraulic description
PlixyMC May 28, 2026
65fba3d
Added skipping incompatible mods.
PlixyMC May 28, 2026
bf2fc8e
Add Crowdin badge to README
PlixyMC May 28, 2026
cc2bc76
Update PackManager.java
PlixyMC May 28, 2026
e03b0a3
Add Crowdin Badge to README.MD
PlixyMC May 28, 2026
77e3d1d
Merge branch 'master' of https://github.com/PlixyMC/Hydraulic
PlixyMC May 28, 2026
b1a6a15
Remove Default Task line in build.gradle.kts, and update README.md to…
PlixyMC May 29, 2026
ce0f758
Remove weird lines as per request.
PlixyMC May 29, 2026
adbe489
Update issue templates
PlixyMC May 30, 2026
f93bccb
Update issue templates
PlixyMC May 30, 2026
eb54542
Update issue templates
PlixyMC Jun 2, 2026
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
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Bug report
about: Issues
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**Logs**
Please give logs in English.

**Screenshots**
If applicable, add screenshots to help explain your problem.




**Additional context**
Add any other context about the problem here.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Discord](https://img.shields.io/discord/613163671870242838.svg?color=%237289da&label=discord)](https://discord.gg/geysermc)
[![Crowdin](https://badges.crowdin.net/geyser/localized.svg)](https://translate.geysermc.org/)

Hydraulic is a companion to Geyser which allows for Bedrock players to join modded Minecraft: Java Edition servers.

Hydraulic is an open collaboration project by [CubeCraft Games](https://cubecraft.net).

## 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.
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! You can get [Hydraulic](https://geysermc.org/download?project=other-projects&hydraulic=expanded) from the GeyserMC website.

Expand All @@ -22,11 +21,11 @@ you're interested in helping out with Hydraulic.
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. 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!
5. Use `./gradlew build` to compile a jar file, or use `./gradlew :fabric: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
- Docs: https://wiki.geysermc.org/geyser/
- Download: https://geysermc.org/download
- Discord: https://discord.gg/geysermc
- Donate: https://opencollective.com/geysermc
- Donate: https://opencollective.com/geysermc
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.geysermc.hydraulic.fabric;

import com.google.common.collect.ImmutableList;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
Expand Down Expand Up @@ -54,7 +56,8 @@ public static void resolveJiJ(Collection<Path> roots, Consumer<ModInfo> output)

final JsonObject fmj;
try (Reader reader = Files.newBufferedReader(fmjPath)) {
fmj = GsonHelper.parse(reader);
Gson lenientGson = new GsonBuilder().setLenient().create();
fmj = lenientGson.fromJson(reader, JsonObject.class);
} catch (IOException ignored) {
return;
}
Expand Down
26 changes: 19 additions & 7 deletions shared/src/main/java/org/geysermc/hydraulic/pack/PackManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,25 @@ public void initialize() {
final Collection<ModInfo> mods = this.hydraulic.mods();
final Map<String, List<ResourcePack>> modPacks = Maps.newHashMapWithExpectedSize(mods.size());
for (final ModInfo mod : mods) {
modPacks.put(
mod.id(),
mod.roots()
.stream()
.map(path -> MinecraftResourcePackReader.minecraft().read(NioDirectoryFileTreeReader.read(path)))
.toList()
);
try {
modPacks.put(
mod.id(),
mod.roots()
.stream()
.map(path -> {
try {
return MinecraftResourcePackReader.minecraft().read(NioDirectoryFileTreeReader.read(path));
} catch (Exception e) {
LOGGER.error("Failed to read resource pack from mod {} at path {}: {}", mod.id(), path, e.getMessage());
return null;
}
})
.filter(pack -> pack != null)
.toList()
);
} catch (Exception e) {
LOGGER.error("Failed to process mod {}: {}", mod.id(), e.getMessage(), e);
}
}

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public Collection<ModInfo> extract(ResourcePack pack, ExtractionContext context)
@Override
public @Nullable Manifest convert(ModInfo mod, ConversionContext context) throws Exception {
Manifest manifest = PackManifestConverter.INSTANCE.convert(
PackMeta.of(PackFormat.format(FormatVersion.of(0)), Component.text(mod.name().trim() + " " + mod.version() + " - Generated by " + Constants.MOD_NAME)),
PackMeta.of(PackFormat.format(FormatVersion.of(101)), Component.text(mod.name().trim() + " " + mod.version() + " - Generated by " + Constants.MOD_NAME)),
new ConversionContext(mod.name().trim() + " Resource Pack", context.logListener())
);

Expand Down