From d1787c4f6719b2b399bc53398e8eeaee510d9f03 Mon Sep 17 00:00:00 2001 From: boholder Date: Sat, 9 Dec 2023 13:37:49 +0800 Subject: [PATCH 1/7] Upgrade mod dependent game version to 1.20.4 --- gradle.properties | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index c05a66a0..81324d5e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,16 +1,21 @@ org.gradle.jvmargs=-Xmx2048M -minecraft_version=1.20.1 -fabric_yarn_version=1.20.1+build.8:v2 +minecraft_version=1.20.4 +# ":v2" to resolve the error that "Forge cannot be used with V1 mappings!" +# ref: https://discord.com/channels/792699517631594506/1019641814497640568/threads/1051233446153945128 +fabric_yarn_version=1.20.4+build.1:v2 enabled_platforms=fabric,forge archives_base_name=minecraft-access mod_version=1.4.3+1.20.1 maven_group=com.github.khanshoaib3.minecraft_access -architectury_version=9.0.8 +# https://maven.architectury.dev/dev/architectury/ +architectury_version=11.0.9 -fabric_loader_version=0.14.21 -fabric_api_version=0.84.0+1.20.1 +# https://fabricmc.net/2023/11/30/1203.html +fabric_loader_version=0.15.1 +fabric_api_version=0.93.1+1.20.4 -forge_version=1.20.1-47.2.17 +# https://files.minecraftforge.net/net/minecraftforge/forge/index_1.20.4.html +forge_version=1.20.4-49.0.19 From 1c9ebe000b710554f94d4dd31272ac22f1545797 Mon Sep 17 00:00:00 2001 From: boholder Date: Sun, 14 Jan 2024 19:39:06 +0800 Subject: [PATCH 2/7] Bump architectury loom version to 1.4.380 --- build.gradle | 5 +++-- fabric/build.gradle | 8 +++++--- forge/build.gradle | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 6 +++++- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index bde80790..9ace5227 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.1-SNAPSHOT" apply false + // ref: https://maven.architectury.dev/dev/architectury/architectury-loom/ + id "dev.architectury.loom" version "1.4.380" apply false } architectury { @@ -37,7 +38,7 @@ allprojects { // for more information about repositories. } - tasks.withType(JavaCompile) { + tasks.withType(JavaCompile).configureEach { options.encoding = "UTF-8" options.release = 17 } diff --git a/fabric/build.gradle b/fabric/build.gradle index 6f170f96..c38ef696 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -47,18 +47,20 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + // "classifier" is removed in gradle 8, use "archiveClassifier" instead + // ref: https://github.com/architectury/architectury-api/blob/18ba59c9041d3fa535278097ee4b3d574dfec6d2/fabric/build.gradle#L48 + archiveClassifier = "dev-shadow" } remapJar { injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier = null } jar { - classifier "dev" + archiveClassifier = "dev" } sourcesJar { diff --git a/forge/build.gradle b/forge/build.gradle index bb682953..d53ab830 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -55,18 +55,18 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier = "dev-shadow" } remapJar { //noinspection GrDeprecatedAPIUsage input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier = null } jar { - classifier "dev" + archiveClassifier = "dev" } sourcesJar { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 41dfb879..802b1d85 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,9 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +# After bump architectury loom version to 1.4.380: +# A problem occurred evaluating root project 'minecraft_access'. +#> Failed to apply plugin 'dev.architectury.loom'. +# > You are using an outdated version of Gradle (7.4). Gradle 8.3 or higher is required. +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 41dff6bb73ae75c4f7423b2a76d5a788b6616a61 Mon Sep 17 00:00:00 2001 From: boholder Date: Sun, 14 Jan 2024 19:44:06 +0800 Subject: [PATCH 3/7] Add dependencies changes in CHANGELOG --- doc/CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index 71925ea6..c774c2a3 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -12,6 +12,15 @@ Release v1.5.0 (2024-) * Change some log message's level to `DEBUG`, make these logs controlled by config "Debug Mode" (and tested in dev and prod environments). * Use lombok's `@Getter` `@Setter` to replace `*ConfigMap`'s boilerplate code. +### Dependencies Changes + +* minecraft_version: `1.20.1` -> `1.20.4` +* architectury_version: `9.0.8` -> `11.0.9` +* fabric_loader_version: `0.14.21` -> `0.15.1` +* fabric_api_version: `0.84.0+1.20.1` -> `0.93.1+1.20.4` +* forge_version: `1.20.1-47.0.19` -> `1.20.4-49.0.19` +* dev.architectury.loom: `1.1-SNAPSHOT` -> `1.4.380` + Release v1.4.3 (2024-01) --------------------------- From b534b83a3ba33cb14f71233f88d3d9cd13a2e3ed Mon Sep 17 00:00:00 2001 From: boholder Date: Sun, 14 Jan 2024 19:53:08 +0800 Subject: [PATCH 4/7] Fix errors due to new game version --- .../config/config_menus/ValueEntryMenu.java | 2 +- .../minecraft_access/features/MenuFix.java | 4 ++-- .../features/inventory_controls/SlotItem.java | 5 +++-- .../features/narrator_menu/NarratorMenuGUI.java | 2 +- .../mixin/AnimatedResultButtonMixin.java | 2 +- .../mixin/ClientPlayNetworkHandlerMixin.java | 12 +++++------- .../mixin/MobSpawnerLogicAccessor.java | 2 +- .../minecraft_access/mixin/PageTurnWidgetMixin.java | 2 +- .../minecraft_access/utils/BaseScreen.java | 2 +- 9 files changed, 16 insertions(+), 17 deletions(-) diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/config/config_menus/ValueEntryMenu.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/config/config_menus/ValueEntryMenu.java index f87a70c9..7edbd37a 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/config/config_menus/ValueEntryMenu.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/config/config_menus/ValueEntryMenu.java @@ -95,7 +95,7 @@ private void updateConfig() { @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { this.speakValue(); - this.renderBackground(context); + this.renderBackground(context, mouseX, mouseY, delta); context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 15, 16777215); context.drawCenteredTextWithShadow(this.textRenderer, value, this.width / 2, this.height / 2, 16777215); super.render(context, mouseX, mouseY, delta); diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/MenuFix.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/MenuFix.java index af33eab5..3b5285c5 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/MenuFix.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/MenuFix.java @@ -6,9 +6,9 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.AddServerScreen; -import net.minecraft.client.gui.screen.DirectConnectScreen; import net.minecraft.client.gui.screen.TitleScreen; +import net.minecraft.client.gui.screen.multiplayer.AddServerScreen; +import net.minecraft.client.gui.screen.multiplayer.DirectConnectScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.option.*; import net.minecraft.client.gui.screen.pack.PackScreen; diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/inventory_controls/SlotItem.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/inventory_controls/SlotItem.java index b127d1e1..4d2fd5ca 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/inventory_controls/SlotItem.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/inventory_controls/SlotItem.java @@ -10,6 +10,7 @@ import net.minecraft.client.gui.screen.ingame.StonecutterScreen; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemStack; +import net.minecraft.recipe.RecipeEntry; import net.minecraft.recipe.StonecuttingRecipe; import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.registry.entry.RegistryEntry; @@ -80,11 +81,11 @@ public String getNarratableText() { } if (MinecraftClient.getInstance().currentScreen instanceof StonecutterScreen stonecutterScreen) { - List list = stonecutterScreen.getScreenHandler().getAvailableRecipes(); + List> list = stonecutterScreen.getScreenHandler().getAvailableRecipes(); if (list.size() == 0) return ""; int scrollOffset = ((StonecutterScreenAccessor) stonecutterScreen).getScrollOffset(); - ItemStack item = list.get(recipeOrTradeIndex + scrollOffset).getOutput(DynamicRegistryManager.EMPTY); + ItemStack item = list.get(recipeOrTradeIndex + scrollOffset).value().getResult(DynamicRegistryManager.EMPTY); List toolTip = MinecraftClient.getInstance().currentScreen.getTooltipFromItem(MinecraftClient.getInstance(),item); StringBuilder toolTipString = new StringBuilder(); for (Text text : toolTip) { diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/narrator_menu/NarratorMenuGUI.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/narrator_menu/NarratorMenuGUI.java index b115bd63..b02ab77d 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/narrator_menu/NarratorMenuGUI.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/features/narrator_menu/NarratorMenuGUI.java @@ -95,7 +95,7 @@ private ButtonWidget buildButtonWidget(String translationKey, ButtonWidget.Press @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { - this.renderBackground(context); + this.renderBackground(context, mouseX, mouseY, delta); context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 15, 16777215); super.render(context, mouseX, mouseY, delta); } diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/AnimatedResultButtonMixin.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/AnimatedResultButtonMixin.java index b2953bc0..8ef00264 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/AnimatedResultButtonMixin.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/AnimatedResultButtonMixin.java @@ -28,7 +28,7 @@ public class AnimatedResultButtonMixin { // @Inject(at = @At("HEAD"), method = "appendNarrations", cancellable = true) // Pre 1.19.3 @Inject(at = @At("HEAD"), method = "appendClickableNarrations", cancellable = true) // From 1.19.3 private void appendNarrations(NarrationMessageBuilder builder, CallbackInfo callbackInfo) { - ItemStack itemStack = ((AnimatedResultButtonAccessor) this).callGetResults().get(((AnimatedResultButtonAccessor) this).getCurrentResultIndex()).getOutput(DynamicRegistryManager.EMPTY); + ItemStack itemStack = ((AnimatedResultButtonAccessor) this).callGetResults().get(((AnimatedResultButtonAccessor) this).getCurrentResultIndex()).getResult(DynamicRegistryManager.EMPTY); String itemName = itemStack.getName().getString(); boolean sameItem = itemName.equalsIgnoreCase(minecraft_access$previousItemName); diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/ClientPlayNetworkHandlerMixin.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/ClientPlayNetworkHandlerMixin.java index 94b6b6e1..218dbb03 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/ClientPlayNetworkHandlerMixin.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/ClientPlayNetworkHandlerMixin.java @@ -15,7 +15,6 @@ import net.minecraft.network.listener.ClientPlayPacketListener; import net.minecraft.network.listener.TickablePacketListener; import net.minecraft.network.packet.s2c.play.ItemPickupAnimationS2CPacket; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -25,22 +24,21 @@ @Slf4j @Mixin(ClientPlayNetworkHandler.class) public abstract class ClientPlayNetworkHandlerMixin implements TickablePacketListener, ClientPlayPacketListener { - @Shadow - @Final - private MinecraftClient client; - @Shadow private ClientWorld world; @Inject(at = @At("HEAD"), method = "onItemPickupAnimation") public void onItemPickupAnimation(ItemPickupAnimationS2CPacket packet, CallbackInfo ci) { + MinecraftClient client = MinecraftClient.getInstance(); + if (client == null) return; + // This method will be executed at the head of injected method. // Invoke ahead here do no harm, according to this method's implementation. - NetworkThreadUtils.forceMainThread(packet, this, this.client); + NetworkThreadUtils.forceMainThread(packet, this, client); if (!OtherConfigsMap.getInstance().isFishingHarvestEnabled()) return; - ClientPlayerEntity player = this.client.player; + ClientPlayerEntity player = client.player; if (player == null) return; // Am "I" holding a fishing pod? (will be Air if holding nothing) if (player.getMainHandStack().getItem() instanceof FishingRodItem) { diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/MobSpawnerLogicAccessor.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/MobSpawnerLogicAccessor.java index df776f56..e993619a 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/MobSpawnerLogicAccessor.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/MobSpawnerLogicAccessor.java @@ -1,7 +1,7 @@ package com.github.khanshoaib3.minecraft_access.mixin; +import net.minecraft.block.spawner.MobSpawnerLogic; import net.minecraft.entity.Entity; -import net.minecraft.world.MobSpawnerLogic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/PageTurnWidgetMixin.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/PageTurnWidgetMixin.java index b2d4f395..e9b5abba 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/PageTurnWidgetMixin.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/mixin/PageTurnWidgetMixin.java @@ -15,7 +15,7 @@ public class PageTurnWidgetMixin { @Shadow @Final private boolean isNextPageButton; - @Inject(at = @At("HEAD"), method = "renderButton") + @Inject(at = @At("HEAD"), method = "renderWidget") public void renderButton(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci){ if(this.isNextPageButton) ((ClickableWidgetAccessor)this).setMessage(Text.literal(I18n.translate("minecraft_access.menus.book_screen.next_page_button_name"))); diff --git a/common/src/main/java/com/github/khanshoaib3/minecraft_access/utils/BaseScreen.java b/common/src/main/java/com/github/khanshoaib3/minecraft_access/utils/BaseScreen.java index 1603f3ba..2391bac7 100644 --- a/common/src/main/java/com/github/khanshoaib3/minecraft_access/utils/BaseScreen.java +++ b/common/src/main/java/com/github/khanshoaib3/minecraft_access/utils/BaseScreen.java @@ -64,7 +64,7 @@ protected ButtonWidget buildButtonWidget(String translationKeyOrText, ButtonWidg @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { - this.renderBackground(context); + this.renderBackground(context, mouseX, mouseY, delta); context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 15, 16777215); super.render(context, mouseX, mouseY, delta); } From 77335bedf196e497af14029682e3a859e4d65651 Mon Sep 17 00:00:00 2001 From: boholder Date: Sun, 14 Jan 2024 19:57:16 +0800 Subject: [PATCH 5/7] Upgrade mod version to 1.4.3+1.20.4 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 81324d5e..5299dabe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ fabric_yarn_version=1.20.4+build.1:v2 enabled_platforms=fabric,forge archives_base_name=minecraft-access -mod_version=1.4.3+1.20.1 +mod_version=1.4.3+1.20.4 maven_group=com.github.khanshoaib3.minecraft_access # https://maven.architectury.dev/dev/architectury/ From 289e96293a5cd13c0fa2c127fcc4ae3d8ea008fb Mon Sep 17 00:00:00 2001 From: boholder Date: Sun, 14 Jan 2024 20:04:12 +0800 Subject: [PATCH 6/7] Sorry, forget to change fabric&forge dependency requirements --- fabric/src/main/resources/fabric.mod.json | 4 ++-- forge/src/main/resources/META-INF/mods.toml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index a6b18262..865c8e70 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -30,9 +30,9 @@ ], "depends": { - "fabricloader": ">=0.14.6", + "fabricloader": ">=0.15.1", "fabric": "*", - "minecraft": "1.20.1" + "minecraft": "1.20.4" }, "suggests": { "another-mod": "*" diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 4d52fc1f..1bf6dc6a 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 = "[43,)" +loaderVersion = "[49,)" #issueTrackerURL = "" license = "GNU GPLv3" @@ -16,20 +16,20 @@ A mod for minecraft java that adds accessibility feature. [[dependencies.minecraft_access]] modId = "forge" mandatory = true -versionRange = "[43,)" +versionRange = "[49,)" ordering = "NONE" side = "BOTH" [[dependencies.minecraft_access]] modId = "minecraft" mandatory = true -versionRange = "[1.20.1,)" +versionRange = "[1.20.4,)" ordering = "NONE" side = "BOTH" [[dependencies.minecraft_access]] modId = "architectury" mandatory = true -versionRange = "[6.2.43,)" +versionRange = "[11.0.9,)" ordering = "AFTER" side = "BOTH" \ No newline at end of file From dbcb3ae6d9ce47576e0846b1c38e89e81e23ece6 Mon Sep 17 00:00:00 2001 From: boholder Date: Sun, 14 Jan 2024 20:08:17 +0800 Subject: [PATCH 7/7] Upgrade mod version to 1.5.0 --- doc/CHANGELOG.md | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index c774c2a3..19378886 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -1,4 +1,4 @@ -Release v1.5.0 (2024-) +Release v1.5.0 (2024-01) --------------------------- ### Feature Changes diff --git a/gradle.properties b/gradle.properties index 5299dabe..17527f43 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ fabric_yarn_version=1.20.4+build.1:v2 enabled_platforms=fabric,forge archives_base_name=minecraft-access -mod_version=1.4.3+1.20.4 +mod_version=1.5.0+1.20.4 maven_group=com.github.khanshoaib3.minecraft_access # https://maven.architectury.dev/dev/architectury/