From 7eebbdd057be715a7057634f88264275c9f583d4 Mon Sep 17 00:00:00 2001 From: Erik Steiner Date: Wed, 3 Jan 2024 00:05:34 +0100 Subject: [PATCH 1/2] Update to 1.19.2 --- build.gradle | 6 ++++-- gradle.properties | 10 +++++----- .../wothers/ift/items/ItemProperties.java | 2 +- .../wothers/ift/mixins/ModelLoaderMixin.java | 8 +++++--- .../wothers/ift/mixins/RegistryMixin.java | 19 ++++++++++++------- src/main/resources/fabric.mod.json | 6 ++++-- src/main/resources/mixins.json | 2 +- 7 files changed, 32 insertions(+), 21 deletions(-) diff --git a/build.gradle b/build.gradle index c1e099d..d4758b0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.11-SNAPSHOT' + id 'fabric-loom' version '1.4-SNAPSHOT' id 'maven-publish' } @@ -14,11 +14,13 @@ dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + + // Fabric API modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" Set apiModules = [ "fabric-api-base", - "fabric-command-api-v1", + "fabric-command-api-v2", "fabric-lifecycle-events-v1", "fabric-networking-api-v1", "fabric-registry-sync-v0" diff --git a/gradle.properties b/gradle.properties index 03c03fd..5a51458 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,14 +2,14 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties - minecraft_version=1.18.2 - yarn_mappings=1.18.2+build.1 - loader_version=0.13.3 + minecraft_version=1.19.2 + yarn_mappings=1.19.2+build.28 + loader_version=0.15.3 # Mod Properties - mod_version = 1.6.3-1.18.2 + mod_version = 2.0.0-1.19.2 maven_group = wothers.ift archives_base_name = items-from-text # Dependencies - fabric_version=0.47.8+1.18.2 + fabric_version=0.77.0+1.19.2 diff --git a/src/main/java/wothers/ift/items/ItemProperties.java b/src/main/java/wothers/ift/items/ItemProperties.java index 2f72765..fbc0c2c 100644 --- a/src/main/java/wothers/ift/items/ItemProperties.java +++ b/src/main/java/wothers/ift/items/ItemProperties.java @@ -56,7 +56,7 @@ private boolean initialRecipeCheck() { private boolean initialShapedRecipeCheck(String[] strings) { if (NumberUtils.isInteger(strings[1])) return true; - if (strings[1].length() < 1 || strings[1].length() > 3) return true; + if (strings[1].isEmpty() || strings[1].length() > 3) return true; for (int i = 2; i < 4; i++) { if (NumberUtils.isInteger(strings[i])) return false; if (strings[i].length() != strings[1].length()) return true; diff --git a/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java b/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java index ae9bd7b..1dfc335 100644 --- a/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java +++ b/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java @@ -4,6 +4,7 @@ import net.minecraft.client.render.model.json.JsonUnbakedModel; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -11,17 +12,18 @@ @Mixin(ModelLoader.class) public class ModelLoaderMixin { - @Inject(method = "loadModelFromJson", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourceManager;getResource(Lnet/minecraft/util/Identifier;)Lnet/minecraft/resource/Resource;"), cancellable = true) + @Inject(method = "loadModelFromJson", at = @At(value = "INVOKE", target="Lnet/minecraft/resource/ResourceManager;openAsReader(Lnet/minecraft/util/Identifier;)Ljava/io/BufferedReader;"), cancellable = true) private void loadModelFromJson(Identifier id, CallbackInfoReturnable cir) { if (!ItemRegistry.INSTANCE.getRegisteredItems().containsKey(id.toString())) return; - String modelJson = createItemModelJsonString(id.toString(), ItemRegistry.INSTANCE.getRegisteredItems().get(id.toString())); + String modelJson = ift$createItemModelJsonString(id.toString(), ItemRegistry.INSTANCE.getRegisteredItems().get(id.toString())); JsonUnbakedModel model = JsonUnbakedModel.deserialize(modelJson); model.id = id.toString(); cir.setReturnValue(model); cir.cancel(); } - private String createItemModelJsonString(String id, String modelType) { + @Unique + private String ift$createItemModelJsonString(String id, String modelType) { return "{\n" + " \"parent\": \"item/" + modelType + "\",\n" + " \"textures\": {\n" + " \"layer0\": \"" + id + "\"\n" + " }\n" + "}"; } } diff --git a/src/main/java/wothers/ift/mixins/RegistryMixin.java b/src/main/java/wothers/ift/mixins/RegistryMixin.java index 5f0bb41..0d6603c 100644 --- a/src/main/java/wothers/ift/mixins/RegistryMixin.java +++ b/src/main/java/wothers/ift/mixins/RegistryMixin.java @@ -11,6 +11,7 @@ import net.minecraft.util.registry.RegistryKey; import net.minecraft.util.registry.SimpleRegistry; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -20,29 +21,33 @@ @Mixin(SimpleRegistry.class) public abstract class RegistryMixin { - private final Map, FoodComponent> foodComponentMap = new HashMap<>(); + + @Unique + private final Map, FoodComponent> itemsfromtext$foodComponentMap = new HashMap<>(); @Inject(method = "add", at = @At(value = "HEAD")) private void interceptAddItem(RegistryKey key, Object entry, Lifecycle lifecycle, CallbackInfoReturnable> cir) { if (!this.equals(Registry.ITEM)) return; - addFoodContainingEffects(key, (Item) entry); + itemsfromtext$addFoodContainingEffects(key, (Item) entry); } - private void addFoodContainingEffects(RegistryKey key, Item item) { + @Unique + private void itemsfromtext$addFoodContainingEffects(RegistryKey key, Item item) { if (!item.isFood()) return; FoodComponent foodComponent = item.getFoodComponent(); if (foodComponent.getStatusEffects().isEmpty()) return; - foodComponentMap.put(key, foodComponent); + itemsfromtext$foodComponentMap.put(key, foodComponent); } @Inject(method = "freeze", at = @At(value = "HEAD")) private void validateOnFreeze(CallbackInfoReturnable> cir) { if (!this.equals(Registry.ITEM)) return; - validateFoodEffects(); + itemsfromtext$validateFoodEffects(); } - private void validateFoodEffects() { - for (Map.Entry, FoodComponent> entry : foodComponentMap.entrySet()) { + @Unique + private void itemsfromtext$validateFoodEffects() { + for (Map.Entry, FoodComponent> entry : itemsfromtext$foodComponentMap.entrySet()) { Iterator> iterator = entry.getValue().getStatusEffects().iterator(); while (iterator.hasNext()) { Pair pair = iterator.next(); diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index fae4db6..9c49627 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -23,8 +23,10 @@ "mixins.json" ], "depends": { - "fabricloader": ">=0.12.5", - "minecraft": "1.18.x" + "fabricloader": ">=0.15.3", + "minecraft": "~1.19.2", + "java": ">=17", + "fabric-api": "*" }, "suggests": { "another-mod": "*" diff --git a/src/main/resources/mixins.json b/src/main/resources/mixins.json index aa115b0..c02143b 100644 --- a/src/main/resources/mixins.json +++ b/src/main/resources/mixins.json @@ -2,7 +2,7 @@ "required": true, "minVersion": "0.8", "package": "wothers.ift.mixins", - "compatibilityLevel": "JAVA_8", + "compatibilityLevel": "JAVA_17", "mixins": [ "FuelLoaderMixin", "LanguageLoaderMixin", From c109e08e46a095acec2f1b822ed88fdf7261d1e1 Mon Sep 17 00:00:00 2001 From: Erik Steiner Date: Wed, 3 Jan 2024 00:05:34 +0100 Subject: [PATCH 2/2] Update to 1.19.2 Signed-off-by: Erik Steiner --- build.gradle | 6 ++++-- gradle.properties | 10 +++++----- .../wothers/ift/items/ItemProperties.java | 2 +- .../wothers/ift/mixins/ModelLoaderMixin.java | 8 +++++--- .../wothers/ift/mixins/RegistryMixin.java | 19 ++++++++++++------- src/main/resources/fabric.mod.json | 6 ++++-- src/main/resources/mixins.json | 2 +- 7 files changed, 32 insertions(+), 21 deletions(-) diff --git a/build.gradle b/build.gradle index c1e099d..d4758b0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.11-SNAPSHOT' + id 'fabric-loom' version '1.4-SNAPSHOT' id 'maven-publish' } @@ -14,11 +14,13 @@ dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + + // Fabric API modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" Set apiModules = [ "fabric-api-base", - "fabric-command-api-v1", + "fabric-command-api-v2", "fabric-lifecycle-events-v1", "fabric-networking-api-v1", "fabric-registry-sync-v0" diff --git a/gradle.properties b/gradle.properties index 03c03fd..5a51458 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,14 +2,14 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties - minecraft_version=1.18.2 - yarn_mappings=1.18.2+build.1 - loader_version=0.13.3 + minecraft_version=1.19.2 + yarn_mappings=1.19.2+build.28 + loader_version=0.15.3 # Mod Properties - mod_version = 1.6.3-1.18.2 + mod_version = 2.0.0-1.19.2 maven_group = wothers.ift archives_base_name = items-from-text # Dependencies - fabric_version=0.47.8+1.18.2 + fabric_version=0.77.0+1.19.2 diff --git a/src/main/java/wothers/ift/items/ItemProperties.java b/src/main/java/wothers/ift/items/ItemProperties.java index 2f72765..fbc0c2c 100644 --- a/src/main/java/wothers/ift/items/ItemProperties.java +++ b/src/main/java/wothers/ift/items/ItemProperties.java @@ -56,7 +56,7 @@ private boolean initialRecipeCheck() { private boolean initialShapedRecipeCheck(String[] strings) { if (NumberUtils.isInteger(strings[1])) return true; - if (strings[1].length() < 1 || strings[1].length() > 3) return true; + if (strings[1].isEmpty() || strings[1].length() > 3) return true; for (int i = 2; i < 4; i++) { if (NumberUtils.isInteger(strings[i])) return false; if (strings[i].length() != strings[1].length()) return true; diff --git a/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java b/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java index ae9bd7b..1dfc335 100644 --- a/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java +++ b/src/main/java/wothers/ift/mixins/ModelLoaderMixin.java @@ -4,6 +4,7 @@ import net.minecraft.client.render.model.json.JsonUnbakedModel; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -11,17 +12,18 @@ @Mixin(ModelLoader.class) public class ModelLoaderMixin { - @Inject(method = "loadModelFromJson", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourceManager;getResource(Lnet/minecraft/util/Identifier;)Lnet/minecraft/resource/Resource;"), cancellable = true) + @Inject(method = "loadModelFromJson", at = @At(value = "INVOKE", target="Lnet/minecraft/resource/ResourceManager;openAsReader(Lnet/minecraft/util/Identifier;)Ljava/io/BufferedReader;"), cancellable = true) private void loadModelFromJson(Identifier id, CallbackInfoReturnable cir) { if (!ItemRegistry.INSTANCE.getRegisteredItems().containsKey(id.toString())) return; - String modelJson = createItemModelJsonString(id.toString(), ItemRegistry.INSTANCE.getRegisteredItems().get(id.toString())); + String modelJson = ift$createItemModelJsonString(id.toString(), ItemRegistry.INSTANCE.getRegisteredItems().get(id.toString())); JsonUnbakedModel model = JsonUnbakedModel.deserialize(modelJson); model.id = id.toString(); cir.setReturnValue(model); cir.cancel(); } - private String createItemModelJsonString(String id, String modelType) { + @Unique + private String ift$createItemModelJsonString(String id, String modelType) { return "{\n" + " \"parent\": \"item/" + modelType + "\",\n" + " \"textures\": {\n" + " \"layer0\": \"" + id + "\"\n" + " }\n" + "}"; } } diff --git a/src/main/java/wothers/ift/mixins/RegistryMixin.java b/src/main/java/wothers/ift/mixins/RegistryMixin.java index 5f0bb41..0d6603c 100644 --- a/src/main/java/wothers/ift/mixins/RegistryMixin.java +++ b/src/main/java/wothers/ift/mixins/RegistryMixin.java @@ -11,6 +11,7 @@ import net.minecraft.util.registry.RegistryKey; import net.minecraft.util.registry.SimpleRegistry; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -20,29 +21,33 @@ @Mixin(SimpleRegistry.class) public abstract class RegistryMixin { - private final Map, FoodComponent> foodComponentMap = new HashMap<>(); + + @Unique + private final Map, FoodComponent> itemsfromtext$foodComponentMap = new HashMap<>(); @Inject(method = "add", at = @At(value = "HEAD")) private void interceptAddItem(RegistryKey key, Object entry, Lifecycle lifecycle, CallbackInfoReturnable> cir) { if (!this.equals(Registry.ITEM)) return; - addFoodContainingEffects(key, (Item) entry); + itemsfromtext$addFoodContainingEffects(key, (Item) entry); } - private void addFoodContainingEffects(RegistryKey key, Item item) { + @Unique + private void itemsfromtext$addFoodContainingEffects(RegistryKey key, Item item) { if (!item.isFood()) return; FoodComponent foodComponent = item.getFoodComponent(); if (foodComponent.getStatusEffects().isEmpty()) return; - foodComponentMap.put(key, foodComponent); + itemsfromtext$foodComponentMap.put(key, foodComponent); } @Inject(method = "freeze", at = @At(value = "HEAD")) private void validateOnFreeze(CallbackInfoReturnable> cir) { if (!this.equals(Registry.ITEM)) return; - validateFoodEffects(); + itemsfromtext$validateFoodEffects(); } - private void validateFoodEffects() { - for (Map.Entry, FoodComponent> entry : foodComponentMap.entrySet()) { + @Unique + private void itemsfromtext$validateFoodEffects() { + for (Map.Entry, FoodComponent> entry : itemsfromtext$foodComponentMap.entrySet()) { Iterator> iterator = entry.getValue().getStatusEffects().iterator(); while (iterator.hasNext()) { Pair pair = iterator.next(); diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index fae4db6..9c49627 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -23,8 +23,10 @@ "mixins.json" ], "depends": { - "fabricloader": ">=0.12.5", - "minecraft": "1.18.x" + "fabricloader": ">=0.15.3", + "minecraft": "~1.19.2", + "java": ">=17", + "fabric-api": "*" }, "suggests": { "another-mod": "*" diff --git a/src/main/resources/mixins.json b/src/main/resources/mixins.json index aa115b0..c02143b 100644 --- a/src/main/resources/mixins.json +++ b/src/main/resources/mixins.json @@ -2,7 +2,7 @@ "required": true, "minVersion": "0.8", "package": "wothers.ift.mixins", - "compatibilityLevel": "JAVA_8", + "compatibilityLevel": "JAVA_17", "mixins": [ "FuelLoaderMixin", "LanguageLoaderMixin",