diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8bbb5cd0..e2fbe173 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 1664bc65..f5086380 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -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 diff --git a/LICENSE b/LICENSE index bde25269..c434c134 100644 --- a/LICENSE +++ b/LICENSE @@ -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 diff --git a/README.md b/README.md index 6d234c78..84995f50 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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 diff --git a/build-logic/src/main/kotlin/hydraulic.base-conventions.gradle.kts b/build-logic/src/main/kotlin/hydraulic.base-conventions.gradle.kts index 412adb1a..cf2e4d03 100644 --- a/build-logic/src/main/kotlin/hydraulic.base-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/hydraulic.base-conventions.gradle.kts @@ -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 { @@ -18,7 +18,7 @@ indra { mitLicense() javaVersions { - target(21) + target(25) } } diff --git a/build-logic/src/main/kotlin/hydraulic.platform-conventions.gradle.kts b/build-logic/src/main/kotlin/hydraulic.platform-conventions.gradle.kts index 4d44be7b..fd184aa9 100644 --- a/build-logic/src/main/kotlin/hydraulic.platform-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/hydraulic.platform-conventions.gradle.kts @@ -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 @@ -20,10 +20,6 @@ architectury { minecraft = minecraftVersion } -loom { - silentMojangMappingsLicense() -} - configurations { create("includeTransitive").isTransitive = true } @@ -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("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")) } } @@ -60,5 +71,4 @@ afterEvaluate { dependencies { minecraft("com.mojang:minecraft:$minecraftVersion") - mappings(loom.officialMojangMappings()) } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index a3f3480a..3e676d24 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,5 +34,17 @@ allprojects { maven("https://maven.fabricmc.net/") maven("https://maven.neoforged.net/releases") + + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = uri("https://api.modrinth.com/maven") + } + } + filter { + includeGroup("maven.modrinth") + } + } } } diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index bba26dab..44388833 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -16,12 +16,19 @@ configurations { } tasks { - remapJar { - dependsOn(shadowJar) - inputFile.set(shadowJar.get().archiveFile) + named("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 { @@ -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")) { @@ -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") } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 662a5e8f..fa025fa1 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -11,10 +11,8 @@ "homepage": "https://geysermc.org/", "sources": "https://github.com/GeyserMC/Hydraulic" }, - "license": "MIT", "icon": "assets/hydraulic/logo.png", - "environment": "*", "entrypoints": { "main": [ @@ -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" } } \ No newline at end of file diff --git a/fabric/src/main/resources/hydraulic-fabric.mixins.json b/fabric/src/main/resources/hydraulic-fabric.mixins.json index 08ad78e2..41a25f4c 100644 --- a/fabric/src/main/resources/hydraulic-fabric.mixins.json +++ b/fabric/src/main/resources/hydraulic-fabric.mixins.json @@ -2,7 +2,7 @@ "required": true, "minVersion": "0.8", "package": "org.geysermc.hydraulic.fabric.mixin", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_25", "mixins": [ "RegistrySyncManagerMixin" ], diff --git a/gradle.properties b/gradle.properties index 37effa09..8d366570 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 875689c8..94ac3c3d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,21 +1,21 @@ [versions] -mixin = "0.8.5" -mixinextras = "0.3.5" -geyser = "2.9.3-SNAPSHOT" -auto-service = "1.0.1" +mixin = "0.8.7" +mixinextras = "0.5.4" +geyser = "2.10.0-SNAPSHOT" +auto-service = "1.1.1" pack-converter = "3.4.1-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-loader = "0.19.2" +fabric-api = "0.148.0+26.1.2" # neoforge -neoforge-version = "21.11.6-beta" +neoforge-version = "26.1.2.43-beta" [libraries] mixin = { group = "org.spongepowered", name = "mixin", version.ref = "mixin" } @@ -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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2b..1a704683 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -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.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/neoforge/build.gradle.kts b/neoforge/build.gradle.kts index 00d492d6..fc34db53 100644 --- a/neoforge/build.gradle.kts +++ b/neoforge/build.gradle.kts @@ -30,24 +30,30 @@ dependencies { } } - common(project(":shared", configuration = "namedElements")) { isTransitive = false } + common(project(":shared")) { isTransitive = false } neoForge(libs.neoforge) compileOnly(libs.geyser.api) shadow(project(path = ":shared", configuration = "transformProductionNeoForge")) { isTransitive = false } // TODO fix neoforge runServer task - modRuntimeOnly(libs.pack.converter) + runtimeOnly(libs.pack.converter) includeTransitive(libs.pack.converter) } tasks { - remapJar { - dependsOn(shadowJar) - inputFile.set(shadowJar.get().archiveFile) + named("mergeShadowAndJarJar") { + from ( + zipTree( shadowJar.map { it.outputs.files.singleFile } ).matching { + exclude("LICENSE") + }, + zipTree( jar.map { it.outputs.files.singleFile } ).matching { + include("META-INF/jars/**") + include("META-INF/jarjar/**") + include("LICENSE") + } + ) archiveBaseName.set("${modId}-neoforge") - archiveClassifier.set("") - archiveVersion.set("") } shadowJar { diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml index b503449e..96ae5f31 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -1,6 +1,5 @@ -modLoader="javafml" -loaderVersion="[4,)" license="MIT" + [[mods]] modId="hydraulic" version="${version}" @@ -8,17 +7,20 @@ displayName="Hydraulic" logoFile="hydraulic.png" authors="GeyserMC" description='''${description}''' + [[mixins]] config = "hydraulic.mixins.json" + [[dependencies.hydraulic]] modId="neoforge" type="required" - versionRange="[21.4.78-beta,)" + versionRange="[26.1.0.1-beta,)" ordering="NONE" side="BOTH" + [[dependencies.hydraulic]] modId="minecraft" type="required" versionRange="[${minecraft_version},)" ordering="NONE" - side="BOTH" + side="BOTH" \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 180b5dec..6afa06c2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -59,7 +59,7 @@ pluginManagement { } plugins { - id("net.kyori.blossom") version "1.2.0" + id("net.kyori.blossom") version "2.2.0" id("net.kyori.indra") id("net.kyori.indra.git") } diff --git a/shared/src/main/java/org/geysermc/hydraulic/pack/PackLogListener.java b/shared/src/main/java/org/geysermc/hydraulic/pack/PackLogListener.java index d18d5a3f..a64ba3fa 100644 --- a/shared/src/main/java/org/geysermc/hydraulic/pack/PackLogListener.java +++ b/shared/src/main/java/org/geysermc/hydraulic/pack/PackLogListener.java @@ -13,7 +13,7 @@ public PackLogListener(Logger logger) { } @Override - public void debug(@NotNull String s) { + public void debugUnchecked(@NotNull String s) { this.logger.debug(s); } diff --git a/shared/src/main/resources/hydraulic.mixins.json b/shared/src/main/resources/hydraulic.mixins.json index d3bf2f62..913d2ddb 100644 --- a/shared/src/main/resources/hydraulic.mixins.json +++ b/shared/src/main/resources/hydraulic.mixins.json @@ -2,7 +2,7 @@ "required": true, "minVersion": "0.8", "package": "org.geysermc.hydraulic.mixin", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_25", "mixins": [ "ext.BlockRegistryPopulatorMixin", "ext.BlockStateSerializerMixin", diff --git a/test/build.gradle.kts b/test/build.gradle.kts index 0a72171a..4f070007 100644 --- a/test/build.gradle.kts +++ b/test/build.gradle.kts @@ -26,12 +26,19 @@ tasks { dependsOn(named("runDatagen")) // Make sure the sources jar gets our generated files } - remapJar { - dependsOn(shadowJar) - inputFile.set(shadowJar.get().archiveFile) + named("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}-test-mod-fabric") - archiveClassifier.set("") - archiveVersion.set("") } shadowJar { @@ -47,6 +54,6 @@ tasks { tasks.named("build") { dependsOn(tasks.named("runDatagen")) } dependencies { - modImplementation(libs.fabric.loader) - modApi(libs.fabric.api) + implementation(libs.fabric.loader) + api(libs.fabric.api) } \ No newline at end of file diff --git a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/EquipmentGeneration.java b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/EquipmentGeneration.java index 35567b50..0d7bf2cc 100644 --- a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/EquipmentGeneration.java +++ b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/EquipmentGeneration.java @@ -1,6 +1,6 @@ package org.geysermc.hydraulic.fabric.test.datagen; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; import net.minecraft.client.resources.model.EquipmentClientInfo; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; @@ -19,7 +19,7 @@ public class EquipmentGeneration implements DataProvider { private final PackOutput.PathProvider pathProvider; - public EquipmentGeneration(FabricDataOutput packOutput) { + public EquipmentGeneration(FabricPackOutput packOutput) { this.pathProvider = packOutput.createPathProvider(PackOutput.Target.RESOURCE_PACK, "equipment"); } diff --git a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/LanguageGeneration.java b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/LanguageGeneration.java index 55c30fa4..73c70190 100644 --- a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/LanguageGeneration.java +++ b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/LanguageGeneration.java @@ -1,6 +1,6 @@ package org.geysermc.hydraulic.fabric.test.datagen; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricLanguageProvider; import net.minecraft.core.HolderLookup; import org.geysermc.hydraulic.fabric.test.ModBlocks; @@ -9,7 +9,7 @@ import java.util.concurrent.CompletableFuture; public class LanguageGeneration extends FabricLanguageProvider { - protected LanguageGeneration(FabricDataOutput dataOutput, CompletableFuture registryLookup) { + protected LanguageGeneration(FabricPackOutput dataOutput, CompletableFuture registryLookup) { super(dataOutput, registryLookup); } diff --git a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/ModelGeneration.java b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/ModelGeneration.java index c927d7fd..6b38aba1 100644 --- a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/ModelGeneration.java +++ b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/ModelGeneration.java @@ -1,43 +1,40 @@ package org.geysermc.hydraulic.fabric.test.datagen; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; import net.minecraft.client.data.models.BlockModelGenerators; import net.minecraft.client.data.models.ItemModelGenerators; -import net.minecraft.client.data.models.model.ModelTemplate; import net.minecraft.client.data.models.model.ModelTemplates; -import net.minecraft.core.component.DataComponents; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import org.geysermc.hydraulic.fabric.test.HydraulicTestMod; +import org.geysermc.hydraulic.fabric.test.ModBlocks; +import org.geysermc.hydraulic.fabric.test.ModItems; import org.jetbrains.annotations.NotNull; public class ModelGeneration extends FabricModelProvider { - public ModelGeneration(FabricDataOutput output) { + public ModelGeneration(FabricPackOutput output) { super(output); } @Override public void generateBlockStateModels(BlockModelGenerators blockModelGenerators) { - for (Block block : BuiltInRegistries.BLOCK.stream().toList()) { - if (!BuiltInRegistries.BLOCK.getKey(block).getNamespace().equals(HydraulicTestMod.MOD_ID)) continue; - - blockModelGenerators.createTrivialCube(block); - } + blockModelGenerators.createTrivialCube(ModBlocks.GOLDEN_BARREL); } @Override public void generateItemModels(ItemModelGenerators itemModelGenerators) { - for (Item item : BuiltInRegistries.ITEM.stream().toList()) { - if (!BuiltInRegistries.ITEM.getKey(item).getNamespace().equals(HydraulicTestMod.MOD_ID)) continue; - - boolean isHandheld = item.components().has(DataComponents.TOOL) || item.components().has(DataComponents.WEAPON); - - ModelTemplate modelTemplate = isHandheld ? ModelTemplates.FLAT_HANDHELD_ITEM : ModelTemplates.FLAT_ITEM; - - itemModelGenerators.generateFlatItem(item, modelTemplate); - } + itemModelGenerators.generateFlatItem(ModItems.BARREL_SWORD, ModelTemplates.FLAT_HANDHELD_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_PICKAXE, ModelTemplates.FLAT_HANDHELD_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_AXE, ModelTemplates.FLAT_HANDHELD_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_SHOVEL, ModelTemplates.FLAT_HANDHELD_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_HOE, ModelTemplates.FLAT_HANDHELD_ITEM); + + itemModelGenerators.generateFlatItem(ModItems.BARREL_HELMET, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_CHESTPLATE, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_LEGGINGS, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_BOOTS, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_HORSE_ARMOR, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_STICK, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.BARREL_PACK, ModelTemplates.FLAT_ITEM); + itemModelGenerators.generateFlatItem(ModItems.IRAURI_INGOT, ModelTemplates.FLAT_ITEM); } @Override diff --git a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/TagGeneration.java b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/TagGeneration.java index 0f0b1f36..a32616e7 100644 --- a/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/TagGeneration.java +++ b/test/src/main/java/org/geysermc/hydraulic/fabric/test/datagen/TagGeneration.java @@ -1,7 +1,7 @@ package org.geysermc.hydraulic.fabric.test.datagen; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagsProvider; import net.minecraft.core.HolderLookup; import net.minecraft.tags.BlockTags; import org.geysermc.hydraulic.fabric.test.ModBlocks; @@ -9,8 +9,8 @@ import java.util.concurrent.CompletableFuture; public class TagGeneration { - public static class Blocks extends FabricTagProvider.BlockTagProvider { - public Blocks(FabricDataOutput output, CompletableFuture registriesFuture) { + public static class Blocks extends FabricTagsProvider.BlockTagsProvider { + public Blocks(FabricPackOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture); } @@ -24,8 +24,8 @@ protected void addTags(HolderLookup.Provider provider) { } } - public static class Items extends FabricTagProvider.ItemTagProvider { - public Items(FabricDataOutput output, CompletableFuture registriesFuture) { + public static class Items extends FabricTagsProvider.ItemTagsProvider { + public Items(FabricPackOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture); } diff --git a/test/src/main/resources/fabric.mod.json b/test/src/main/resources/fabric.mod.json index 8280773a..5e747375 100644 --- a/test/src/main/resources/fabric.mod.json +++ b/test/src/main/resources/fabric.mod.json @@ -11,10 +11,8 @@ "homepage": "https://geysermc.org/", "sources": "https://github.com/GeyserMC/Hydraulic" }, - "license": "MIT", "icon": "assets/hydraulic_test_mod/logo.png", - "environment": "*", "entrypoints": { "main": [ @@ -27,11 +25,10 @@ "mixins": [ "hydraulic_test_mod.mixins.json" ], - "depends": { - "fabricloader": ">=0.15", + "fabricloader": ">=0.19.2", "fabric-api": "*", "minecraft": "${minecraft_version}", - "java": ">=21" + "java": ">=25" } } \ No newline at end of file diff --git a/test/src/main/resources/hydraulic_test_mod.mixins.json b/test/src/main/resources/hydraulic_test_mod.mixins.json index 958de2c4..996b9e97 100644 --- a/test/src/main/resources/hydraulic_test_mod.mixins.json +++ b/test/src/main/resources/hydraulic_test_mod.mixins.json @@ -2,7 +2,7 @@ "required": true, "minVersion": "0.8", "package": "org.geysermc.hydraulic.fabric.mixin", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_25", "mixins": [ ], "injectors": {