diff --git a/CHANGELOG.md b/CHANGELOG.md index e8aee94..5095c86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ Changelog to track updates for this mod. ### Added ### Changed - +- Port MC1.20 ### Deprecated ### Removed diff --git a/build.gradle b/build.gradle index c001392..dc31085 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { - id "architectury-plugin" version "3.4.+" - id "dev.architectury.loom" version "1.0.+" apply false + id "architectury-plugin" version "3.4-SNAPSHOT" + id "dev.architectury.loom" version "1.1-SNAPSHOT" apply false id 'org.jetbrains.changelog' version "2.0.0" } @@ -27,10 +27,8 @@ subprojects { dependencies { minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" - // The following line declares the mojmap mappings, you may use other mappings as well + mappings loom.officialMojangMappings() - // The following line declares the yarn mappings you may select this one as well. - // mappings "net.fabricmc:yarn:1.19+build.4:v2" } } @@ -44,11 +42,7 @@ allprojects { group = rootProject.maven_group repositories { - // Add repositories to retrieve artifacts from in here. - // You should only use this when depending on other mods because - // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html - // for more information about repositories. + } tasks.withType(JavaCompile) { diff --git a/common/src/main/java/net/morimori0317/mus/MemoryUsageOverlay.java b/common/src/main/java/net/morimori0317/mus/MemoryUsageOverlay.java index 6856740..139b852 100644 --- a/common/src/main/java/net/morimori0317/mus/MemoryUsageOverlay.java +++ b/common/src/main/java/net/morimori0317/mus/MemoryUsageOverlay.java @@ -3,18 +3,19 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.FastColor; import net.minecraft.util.Mth; -public class MemoryUsageOverlay extends GuiComponent { +public class MemoryUsageOverlay { public static final ResourceLocation FONT_LOCATION = new ResourceLocation(MemoryUsageScreen.MODID, "fonts"); private static final Minecraft mc = Minecraft.getInstance(); private float maxBar; - public void render(PoseStack poseStack, float alpha, boolean useFont, boolean bloackGrond, float delta) { + public void render(GuiGraphics guiGraphics, float alpha, boolean useFont, boolean bloackGrond, float delta) { + PoseStack poseStack = guiGraphics.pose(); + poseStack.pushPose(); int colw = FastColor.ARGB32.color(Math.round(alpha * 255.0F), 255, 255, 255); @@ -44,28 +45,28 @@ public void render(PoseStack poseStack, float alpha, boolean useFont, boolean bl maxBar = currentUsage; } - renderCenterString("Memory Used / Total", poseStack, sw / 2, sy - 10, 1, 1, 1, alpha, useFont); + renderCenterString("Memory Used / Total", guiGraphics, sw / 2, sy - 10, 1, 1, 1, alpha, useFont); if (bloackGrond) - cfill(poseStack, sx, sy, w, h, FastColor.ARGB32.color(Math.round(alpha * 255.0F), 0, 0, 0)); + cfill(guiGraphics, sx, sy, w, h, FastColor.ARGB32.color(Math.round(alpha * 255.0F), 0, 0, 0)); - cfill(poseStack, sx, sy, 1, h, colw); - cfill(poseStack, sx + w - 1, sy, 1, h, colw); - cfill(poseStack, sx + 1, sy, w - 2, 1, colw); - cfill(poseStack, sx + 1, sy + h - 1, w - 2, 1, colw); - cfill(poseStack, sx + 2, sy + 2, (int) ((w - 4) * currentUsage), h - 4, colmem); - cfill(poseStack, sx + 2 + (int) ((w - 4) * maxBar), sy + 1, 1, h - 2, FastColor.ARGB32.color(Math.round(alpha * 255.0F), 0, 0, 255)); - cfill(poseStack, sx + 2 + (int) ((w - 4) * currentAllocated), sy + 1, 1, h - 2, FastColor.ARGB32.color(Math.round(alpha * 255.0F), bloackGrond ? 255 : 0, 0, 0)); + cfill(guiGraphics, sx, sy, 1, h, colw); + cfill(guiGraphics, sx + w - 1, sy, 1, h, colw); + cfill(guiGraphics, sx + 1, sy, w - 2, 1, colw); + cfill(guiGraphics, sx + 1, sy + h - 1, w - 2, 1, colw); + cfill(guiGraphics, sx + 2, sy + 2, (int) ((w - 4) * currentUsage), h - 4, colmem); + cfill(guiGraphics, sx + 2 + (int) ((w - 4) * maxBar), sy + 1, 1, h - 2, FastColor.ARGB32.color(Math.round(alpha * 255.0F), 0, 0, 255)); + cfill(guiGraphics, sx + 2 + (int) ((w - 4) * currentAllocated), sy + 1, 1, h - 2, FastColor.ARGB32.color(Math.round(alpha * 255.0F), bloackGrond ? 255 : 0, 0, 0)); - renderCenterString(String.format("%03d/%03dMB", bytesToMegabytes(usage), bytesToMegabytes(max)), poseStack, sw / 2, sy + 2, 1, 1, 1, alpha, useFont); + renderCenterString(String.format("%03d/%03dMB", bytesToMegabytes(usage), bytesToMegabytes(max)), guiGraphics, sw / 2, sy + 2, 1, 1, 1, alpha, useFont); poseStack.popPose(); } - private void cfill(PoseStack poseStack, int x, int y, int w, int h, int col) { - fill(poseStack, x, y, x + w, y + h, col); + private void cfill(GuiGraphics guiGraphics, int x, int y, int w, int h, int col) { + guiGraphics.fill(x, y, x + w, y + h, col); } - private void renderCenterString(String str, PoseStack poseStack, int x, int y, float r, float g, float b, float a, boolean useFont) { + private void renderCenterString(String str, GuiGraphics guiGraphics, int x, int y, float r, float g, float b, float a, boolean useFont) { if (!useFont) { str = str.toUpperCase(); } @@ -74,13 +75,15 @@ private void renderCenterString(String str, PoseStack poseStack, int x, int y, f if (useFont) { int col = FastColor.ARGB32.color(Math.round(a * 255.0F), Math.round(r * 255.0F), Math.round(g * 255.0F), Math.round(b * 255.0F)); - mc.font.draw(poseStack, str, x - (float) size / 2, y, col); + guiGraphics.drawString(mc.font, str, (int) (x - (float) size / 2), y, col); } else { - renderNoFontString(str, poseStack, x - size / 2, y, a, r, g, b); + renderNoFontString(str, guiGraphics, x - size / 2, y, a, r, g, b); } + + } - private void renderNoFontString(String str, PoseStack poseStack, int x, int y, float alpha, float r, float g, float b) { + private void renderNoFontString(String str, GuiGraphics guiGraphics, int x, int y, float alpha, float r, float g, float b) { for (int a = 0; a < str.length(); a++) { char ch = str.charAt(a); if (ch > 0xFF) { @@ -88,7 +91,7 @@ private void renderNoFontString(String str, PoseStack poseStack, int x, int y, f } int tsx = (ch & 0x0F) * 8; int tsy = (ch >> 4 & 0x0F) * 8; - drawTexture(FONT_LOCATION, poseStack, x + a * 6, y, tsx, tsy, 6, 7, 128, 128, r, g, b, alpha); + drawTexture(FONT_LOCATION, guiGraphics, x + a * 6, y, tsx, tsy, 6, 7, 128, 128, r, g, b, alpha); } } @@ -96,17 +99,25 @@ private long bytesToMegabytes(long l) { return l / 1024L / 1024L; } - private void drawTexture(ResourceLocation location, PoseStack psstack, int x, int y, int textureStartX, int textureStartY, int textureFinishWidth, int textureFinishHeight, int textureSizeX, + private void drawTexture(ResourceLocation location, GuiGraphics guiGraphics, int x, int y, int textureStartX, int textureStartY, int textureFinishWidth, int textureFinishHeight, int textureSizeX, int textureSizeY, float r, float g, float b, float a) { + PoseStack psstack = guiGraphics.pose(); psstack.pushPose(); - RenderSystem.setShaderColor(r, g, b, a); - RenderSystem.setShaderTexture(0, location); + + RenderSystem.disableDepthTest(); + RenderSystem.depthMask(false); RenderSystem.enableBlend(); - RenderSystem.blendEquation(32774); RenderSystem.blendFunc(770, 1); - RenderSystem.setShader(GameRenderer::getPositionTexShader); - GuiComponent.blit(psstack, x, y, textureStartX, textureStartY, textureFinishWidth, textureFinishHeight, textureSizeX, textureSizeY); - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + + guiGraphics.setColor(r, g, b, a); + guiGraphics.blit(location, x, y, textureStartX, textureStartY, textureFinishWidth, textureFinishHeight, textureSizeX, textureSizeY); + guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F); + + RenderSystem.defaultBlendFunc(); + RenderSystem.disableBlend(); + RenderSystem.depthMask(true); + RenderSystem.enableDepthTest(); + psstack.popPose(); } diff --git a/common/src/main/java/net/morimori0317/mus/handler/RenderHandler.java b/common/src/main/java/net/morimori0317/mus/handler/RenderHandler.java index 97d2916..076935b 100644 --- a/common/src/main/java/net/morimori0317/mus/handler/RenderHandler.java +++ b/common/src/main/java/net/morimori0317/mus/handler/RenderHandler.java @@ -1,19 +1,19 @@ package net.morimori0317.mus.handler; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.morimori0317.mus.MUSKeyMapping; import net.morimori0317.mus.api.MemoryUsageScreenAPI; public class RenderHandler { - public static void onScreenRender(PoseStack poseStack, Screen screen, float delta) { + public static void onScreenRender(GuiGraphics guiGraphics, Screen screen, float delta) { if (MemoryUsageScreenAPI.getInstance().isEnableScreen(screen)) - MemoryUsageScreenAPI.getInstance().getOverlay().render(poseStack, 1, true, true, delta); + MemoryUsageScreenAPI.getInstance().getOverlay().render(guiGraphics, 1, true, true, delta); } - public static void onHudRender(PoseStack poseStack, float delta) { + public static void onHudRender(GuiGraphics guiGraphics, float delta) { if (MUSKeyMapping.enableShoMemoryKey() && !MemoryUsageScreenAPI.getInstance().isEnableScreen(Minecraft.getInstance().screen)) - MemoryUsageScreenAPI.getInstance().getOverlay().render(poseStack, 1, true, true, delta); + MemoryUsageScreenAPI.getInstance().getOverlay().render(guiGraphics, 1, true, true, delta); } } diff --git a/common/src/main/java/net/morimori0317/mus/mixin/LoadingOverlayMixin.java b/common/src/main/java/net/morimori0317/mus/mixin/LoadingOverlayMixin.java index 37d1391..6b3da49 100644 --- a/common/src/main/java/net/morimori0317/mus/mixin/LoadingOverlayMixin.java +++ b/common/src/main/java/net/morimori0317/mus/mixin/LoadingOverlayMixin.java @@ -1,8 +1,8 @@ package net.morimori0317.mus.mixin; -import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.Util; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.LoadingOverlay; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -21,12 +21,12 @@ public abstract class LoadingOverlayMixin { @Shadow private long fadeOutStart; - @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/LoadingOverlay;drawProgressBar(Lcom/mojang/blaze3d/vertex/PoseStack;IIIIF)V")) - private void render(PoseStack poseStack, int i, int j, float f, CallbackInfo ci) { + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/LoadingOverlay;drawProgressBar(Lnet/minecraft/client/gui/GuiGraphics;IIIIF)V")) + private void render(GuiGraphics guiGraphics, int i, int j, float f, CallbackInfo ci) { if (MemoryUsageScreen.getConfig().isEnableInitLoadingScreen()) { long m = Util.getMillis(); float g = this.fadeOutStart > -1L ? (float) (m - this.fadeOutStart) / 1000.0F : -1.0F; - MemoryUsageScreenAPI.getInstance().getOverlay().render(poseStack, 1.0F - Mth.clamp(g, 0.0F, 1.0F), false, false, f); + MemoryUsageScreenAPI.getInstance().getOverlay().render(guiGraphics, 1.0F - Mth.clamp(g, 0.0F, 1.0F), false, false, f); } } diff --git a/fabric/build.gradle b/fabric/build.gradle index bb5c5d6..365ad54 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,7 +1,7 @@ plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" + id "com.github.johnrengelman.shadow" version "8.1.1" id 'com.matthewprenger.cursegradle' version '1.4.0' - id "com.modrinth.minotaur" version "2.4.4" + id "com.modrinth.minotaur" version "2.8.0" } architectury { @@ -15,7 +15,7 @@ loom { configurations { common - shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. + shadowCommon compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentFabric.extendsFrom common @@ -26,8 +26,6 @@ repositories { dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" - // Remove the next line if you don't want to depend on the API - // modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}" common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } @@ -48,19 +46,19 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier.set("dev-shadow") } remapJar { injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier.set(null) setArchivesBaseName("${rootProject.archives_base_name}-${project.name}-mc${rootProject.minecraft_version}") } jar { - classifier "dev" + archiveClassifier.set("dev") } sourcesJar { diff --git a/fabric/src/main/java/net/morimori0317/mus/fabric/handler/RenderHandlerFabric.java b/fabric/src/main/java/net/morimori0317/mus/fabric/handler/RenderHandlerFabric.java index 427618b..6b8f51f 100644 --- a/fabric/src/main/java/net/morimori0317/mus/fabric/handler/RenderHandlerFabric.java +++ b/fabric/src/main/java/net/morimori0317/mus/fabric/handler/RenderHandlerFabric.java @@ -1,16 +1,13 @@ package net.morimori0317.mus.fabric.handler; -import com.mojang.blaze3d.vertex.PoseStack; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.morimori0317.mus.handler.ClientHandler; import net.morimori0317.mus.handler.RenderHandler; -import java.util.Arrays; - public class RenderHandlerFabric { public static void init() { ScreenEvents.AFTER_INIT.register(RenderHandlerFabric::onScreenAfterInit); @@ -24,7 +21,7 @@ private static void onScreenAfterInit(Minecraft client, Screen screen, int scale ClientHandler.onScreenInit(screen); } - private static void onHudRender(PoseStack matrixStack, float tickDelta) { - RenderHandler.onHudRender(matrixStack, tickDelta); + private static void onHudRender(GuiGraphics guiGraphics, float tickDelta) { + RenderHandler.onHudRender(guiGraphics, tickDelta); } } diff --git a/fabric/src/main/java/net/morimori0317/mus/fabric/mixin/ScreenMixin.java b/fabric/src/main/java/net/morimori0317/mus/fabric/mixin/ScreenMixin.java index c57221b..b94d1aa 100644 --- a/fabric/src/main/java/net/morimori0317/mus/fabric/mixin/ScreenMixin.java +++ b/fabric/src/main/java/net/morimori0317/mus/fabric/mixin/ScreenMixin.java @@ -1,6 +1,6 @@ package net.morimori0317.mus.fabric.mixin; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.morimori0317.mus.api.MemoryUsageScreenAPI; import net.morimori0317.mus.handler.RenderHandler; @@ -12,9 +12,9 @@ @Mixin(Screen.class) public class ScreenMixin { @Inject(method = "renderWithTooltip", at = @At("TAIL")) - private void renderWithTooltip(PoseStack poseStack, int i, int j, float f, CallbackInfo ci) { + private void renderWithTooltip(GuiGraphics guiGraphics, int i, int j, float f, CallbackInfo ci) { var thiz = (Screen) (Object) this; if (MemoryUsageScreenAPI.getInstance().isEnableScreen(thiz)) - RenderHandler.onScreenRender(poseStack, thiz, f); + RenderHandler.onScreenRender(guiGraphics, thiz, f); } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index fcdb5e5..a74103f 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -29,6 +29,6 @@ ], "depends": { "fabric": "*", - "minecraft": ">=1.19.4" + "minecraft": ">=1.20" } } \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle index 1bd17d6..d68c94e 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,7 +1,7 @@ plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" + id "com.github.johnrengelman.shadow" version "8.1.1" id 'com.matthewprenger.cursegradle' version '1.4.0' - id "com.modrinth.minotaur" version "2.4.4" + id "com.modrinth.minotaur" version "2.8.0" } architectury { @@ -22,7 +22,7 @@ loom { configurations { common - shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. + shadowCommon compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentForge.extendsFrom common @@ -30,8 +30,7 @@ configurations { dependencies { forge "net.minecraftforge:forge:${rootProject.forge_version}" - // Remove the next line if you don't want to depend on the API - // modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" + modApi "me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_version}" common(project(path: ":common", configuration: "namedElements")) { transitive false } @@ -51,18 +50,18 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier.set("dev-shadow") } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier.set(null) setArchivesBaseName("${rootProject.archives_base_name}-${project.name}-mc${rootProject.minecraft_version}") } jar { - classifier "dev" + archiveClassifier.set("dev") } sourcesJar { diff --git a/forge/src/main/java/net/morimori0317/mus/forge/handler/RenderHandlerForge.java b/forge/src/main/java/net/morimori0317/mus/forge/handler/RenderHandlerForge.java index f4256ed..75eb668 100644 --- a/forge/src/main/java/net/morimori0317/mus/forge/handler/RenderHandlerForge.java +++ b/forge/src/main/java/net/morimori0317/mus/forge/handler/RenderHandlerForge.java @@ -9,6 +9,6 @@ public class RenderHandlerForge { @SubscribeEvent public static void onScreenRenderPost(ScreenEvent.Render.Post e) { if (MemoryUsageScreenAPI.getInstance().isEnableScreen(e.getScreen())) - RenderHandler.onScreenRender(e.getPoseStack(), e.getScreen(), e.getPartialTick()); + RenderHandler.onScreenRender(e.getGuiGraphics(), e.getScreen(), e.getPartialTick()); } } diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index e4c856b..efc1e16 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[41,)" +loaderVersion = "[46,)" issueTrackerURL = "https://github.com/MORIMORI0317/MemoryUsageScreen/issues" license = "GNU LGPLv3" @@ -20,13 +20,13 @@ catalogueImageIcon = "icon.png" [[dependencies.memoryusagescreen]] modId = "forge" mandatory = true -versionRange = "[41,)" +versionRange = "[46,)" ordering = "NONE" side = "BOTH" [[dependencies.memoryusagescreen]] modId = "minecraft" mandatory = true -versionRange = "[1.19,)" +versionRange = "[1.20,)" ordering = "NONE" side = "BOTH" \ No newline at end of file diff --git a/forge/src/main/resources/pack.mcmeta b/forge/src/main/resources/pack.mcmeta index 669eaaf..974bee7 100644 --- a/forge/src/main/resources/pack.mcmeta +++ b/forge/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { "description": "Memory Usage Screen", - "pack_format": 9 + "pack_format": 15 } } diff --git a/gradle.properties b/gradle.properties index 395f6ca..e5a16c6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,27 +1,24 @@ +# Gradle org.gradle.jvmargs=-Xmx6152M - -minecraft_version=1.19.4 -support_versions=1.19.4 +# Environment +minecraft_version=1.20 +support_versions=1.20,1.20.1 enabled_platforms=fabric,forge - +cloth_config_version=11.0.99 +fabric_loader_version=0.14.21 +fabric_api_version=0.83.0+1.20 +mod_menu_version=7.0.1 +forge_version=1.20-46.0.13 +# Mod archives_base_name=memoryusagescreen mod_display_name=MemoryUsageScreen -mod_version=1.8.1 +mod_version=1.9.0 maven_group=net.morimori0317 - -cloth_config_version=10.0.96 - -fabric_loader_version=0.14.17 -fabric_api_version=0.76.0+1.19.4 -mod_menu_version=6.1.0-rc.4 - -forge_version=1.19.4-45.0.6 - +# Upload curesforge_id=500009 modrinth_id=n9mFA0ax release_type=release - - +# Other repository_url=https://github.com/MORIMORI0317/MemoryUsageScreen diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 249e583..e708b1c 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 070cb70..fae0804 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists