From a2fbbec253418a17d58c6a3fb59da7f6c9ddc357 Mon Sep 17 00:00:00 2001 From: Orlisan Date: Sun, 16 Aug 2026 12:17:07 +0200 Subject: [PATCH 1/4] Added freemarker templates for 26.1+ fabric mods and renamed old versions in "NAME (1.21.11-).java.xyza", enchantment 26.1+ template is not changed yet for my information miss --- ...java.ft => FabricBlock (1.21.11-).java.ft} | 0 ....html => FabricBlock (1.21.11-).java.html} | 2 +- .../fabric/FabricBlock (26.1+).java.ft | 18 +++++++++++++ ...ava.html => FabricBlock (26.1+).java.html} | 2 +- ...t => FabricEnchantment (1.21.11-).java.ft} | 0 .../FabricEnchantment (1.21.11-).java.html | 25 +++++++++++++++++++ .../fabric/FabricEnchantment (26.1+).java.ft | 12 +++++++++ .../FabricEnchantment (26.1+).java.html | 25 +++++++++++++++++++ ....java.ft => FabricItem (1.21.11-).java.ft} | 0 ...a.html => FabricItem (1.21.11-).java.html} | 2 +- .../fabric/FabricItem (26.1+).java.ft | 10 ++++++++ ...java.html => FabricItem (26.1+).java.html} | 2 +- ... => FabricStatusEffect (1.21.11-).java.ft} | 0 .../FabricStatusEffect (1.21.11-).java.html | 25 +++++++++++++++++++ .../fabric/FabricStatusEffect (26.1+).java.ft | 10 ++++++++ .../FabricStatusEffect (26.1+).java.html | 25 +++++++++++++++++++ 16 files changed, 154 insertions(+), 4 deletions(-) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricBlock.java.ft => FabricBlock (1.21.11-).java.ft} (100%) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricEnchantment.java.html => FabricBlock (1.21.11-).java.html} (93%) create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricBlock.java.html => FabricBlock (26.1+).java.html} (94%) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricEnchantment.java.ft => FabricEnchantment (1.21.11-).java.ft} (100%) create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (1.21.11-).java.html create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.html rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricItem.java.ft => FabricItem (1.21.11-).java.ft} (100%) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricItem.java.html => FabricItem (1.21.11-).java.html} (93%) create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricStatusEffect.java.html => FabricItem (26.1+).java.html} (93%) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricStatusEffect.java.ft => FabricStatusEffect (1.21.11-).java.ft} (100%) create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (1.21.11-).java.html create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.ft create mode 100644 src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.html diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (1.21.11-).java.ft similarity index 100% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.ft rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (1.21.11-).java.ft diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (1.21.11-).java.html similarity index 93% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.html rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (1.21.11-).java.html index 3d9b2f8b9..f5667c727 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.html +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (1.21.11-).java.html @@ -20,6 +20,6 @@ - A basic enchantment class for fabric. + A basic block class for fabric 1.21.11-. diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft new file mode 100644 index 000000000..cbbfbc0f6 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft @@ -0,0 +1,18 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end +#parse("File Header.java") + +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; + +public class ${NAME} extends Block { + public ${NAME}(Properties properties) { + super(properties); + } +} diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.html similarity index 94% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.html rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.html index 85250ce6e..c4a8f96b0 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock.java.html +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.html @@ -20,6 +20,6 @@ - A basic block class for fabric. + A basic block class for fabric 26.1+. diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (1.21.11-).java.ft similarity index 100% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment.java.ft rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (1.21.11-).java.ft diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (1.21.11-).java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (1.21.11-).java.html new file mode 100644 index 000000000..f20134053 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (1.21.11-).java.html @@ -0,0 +1,25 @@ + + + + + A basic enchantment class for fabric 1.21.11-. + + diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft new file mode 100644 index 000000000..5df8fbdb5 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft @@ -0,0 +1,12 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end +#parse("File Header.java") + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentTarget; +import net.minecraft.entity.EquipmentSlot; + +public class ${NAME} extends Enchantment { + public ${NAME}(Rarity weight, EnchantmentTarget type, EquipmentSlot[] slotTypes) { + super(weight, type, slotTypes); + } +} diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.html new file mode 100644 index 000000000..dac0b56fc --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.html @@ -0,0 +1,25 @@ + + + + +A basic enchantment class for fabric 26.1+. + + diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (1.21.11-).java.ft similarity index 100% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.ft rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (1.21.11-).java.ft diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (1.21.11-).java.html similarity index 93% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.html rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (1.21.11-).java.html index dcbeee1a6..11bef898f 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem.java.html +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (1.21.11-).java.html @@ -20,6 +20,6 @@ - An empty Fabric item class. + An empty Fabric item class for 1.21.11-. diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft new file mode 100644 index 000000000..fce5dd796 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft @@ -0,0 +1,10 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end +#parse("File Header.java") + +import net.minecraft.item.Item; + +public class ${NAME} extends Item { + public ${NAME}(Properties props) { + super(settings); + } +} diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.html similarity index 93% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.html rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.html index 12f4b6bb2..11bef898f 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.html +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.html @@ -20,6 +20,6 @@ - An empty Fabric status effect class. + An empty Fabric item class for 1.21.11-. diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (1.21.11-).java.ft similarity index 100% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect.java.ft rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (1.21.11-).java.ft diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (1.21.11-).java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (1.21.11-).java.html new file mode 100644 index 000000000..a7e4a9a18 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (1.21.11-).java.html @@ -0,0 +1,25 @@ + + + + + An empty Fabric status effect class for 1.21.11- . + + diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.ft new file mode 100644 index 000000000..67d1d3355 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.ft @@ -0,0 +1,10 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end +#parse("File Header.java") + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +public class ${NAME} extends MobEffect { + public ${NAME}(MobEffectCategory mobEffectCategory, int color) { + super(mobEffectCategory, color); + } +} \ No newline at end of file diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.html new file mode 100644 index 000000000..a75911573 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.html @@ -0,0 +1,25 @@ + + + + +An empty Fabric status effect class for 1.21.11- . + + From 0a4dbcef4e079eae43daa3bfd37b79f4d46d602f Mon Sep 17 00:00:00 2001 From: Orlisan Date: Sun, 16 Aug 2026 12:33:38 +0200 Subject: [PATCH 2/4] Set FabricEnchantment (26.1+).java.ft content according to NeoForgeEnchantment.java.ft but both are not functionals in newer versions, also renamed FabricStatusEffect (26.1+).java.xyza to FabricMobEffect (26.1+).java.xyza for coherence --- .../generation/MinecraftClassCreateAction.kt | 26 ++++++++++++------ src/main/kotlin/util/MinecraftTemplates.kt | 27 +++++++++++++------ src/main/kotlin/util/MinecraftVersions.kt | 1 + .../fabric/FabricEnchantment (26.1+).java.ft | 15 ++++++----- ...ava.ft => FabricMobEffect (26.1+).java.ft} | 0 ...html => FabricMobEffect (26.1+).java.html} | 0 .../forge/ForgeEnchantment (1.17+).java.ft | 9 ++++--- .../neoforge/NeoForgeEnchantment.java.ft | 4 ++- 8 files changed, 56 insertions(+), 26 deletions(-) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricStatusEffect (26.1+).java.ft => FabricMobEffect (26.1+).java.ft} (100%) rename src/main/resources/fileTemplates/j2ee/skeleton/fabric/{FabricStatusEffect (26.1+).java.html => FabricMobEffect (26.1+).java.html} (100%) diff --git a/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt b/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt index f5efd0b54..80700bebd 100644 --- a/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt +++ b/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt @@ -69,18 +69,20 @@ class MinecraftClassCreateAction : val isForge = MinecraftFacet.getInstance(module, ForgeModuleType) != null val isNeoForge = MinecraftFacet.getInstance(module, NeoForgeModuleType) != null val isFabric = MinecraftFacet.getInstance(module, FabricModuleType) != null - val mcVersion = MinecraftFacet.getInstance(module, McpModuleType)?.getSettings() + val forgeMcVersion = MinecraftFacet.getInstance(module, McpModuleType)?.getSettings() ?.minecraftVersion?.let(SemanticVersion::parse) + val fabricMcVersion = + MinecraftFacet.getInstance(module, FabricModuleType)?.computeVersion()//Qui mica รจ un FabricModule - if (isForge && mcVersion != null) { + if (isForge && forgeMcVersion != null) { val icon = PlatformAssets.FORGE_ICON - if (mcVersion < MinecraftVersions.MC1_17) { + if (forgeMcVersion < MinecraftVersions.MC1_17) { builder.addKind("Block", icon, MinecraftTemplates.FORGE_BLOCK_TEMPLATE) builder.addKind("Enchantment", icon, MinecraftTemplates.FORGE_ENCHANTMENT_TEMPLATE) builder.addKind("Item", icon, MinecraftTemplates.FORGE_ITEM_TEMPLATE) builder.addKind("Packet", icon, MinecraftTemplates.FORGE_PACKET_TEMPLATE) - } else if (mcVersion < MinecraftVersions.MC1_18) { + } else if (forgeMcVersion < MinecraftVersions.MC1_18) { builder.addKind("Block", icon, MinecraftTemplates.FORGE_1_17_BLOCK_TEMPLATE) builder.addKind("Enchantment", icon, MinecraftTemplates.FORGE_1_17_ENCHANTMENT_TEMPLATE) builder.addKind("Item", icon, MinecraftTemplates.FORGE_1_17_ITEM_TEMPLATE) @@ -106,11 +108,19 @@ class MinecraftClassCreateAction : if (isFabric) { val icon = PlatformAssets.FABRIC_ICON + if (fabricMcVersion != null && fabricMcVersion >= MinecraftVersions.MC26_1) { + builder.addKind("Block", icon, MinecraftTemplates.FABRIC_26_1_BLOCK_TEMPLATE) + builder.addKind("Enchantment", icon, MinecraftTemplates.FABRIC_26_1_ENCHANTMENT_TEMPLATE) + builder.addKind("Item", icon, MinecraftTemplates.FABRIC_26_1_ITEM_TEMPLATE) + builder.addKind("Mob effect", icon, MinecraftTemplates.FABRIC_26_1_MOB_EFFECT_TEMPLATE) - builder.addKind("Block", icon, MinecraftTemplates.FABRIC_BLOCK_TEMPLATE) - builder.addKind("Enchantment", icon, MinecraftTemplates.FABRIC_ENCHANTMENT_TEMPLATE) - builder.addKind("Item", icon, MinecraftTemplates.FABRIC_ITEM_TEMPLATE) - builder.addKind("Status effect", icon, MinecraftTemplates.FABRIC_STATUS_EFFECT_TEMPLATE) + } else { + builder.addKind("Block", icon, MinecraftTemplates.FABRIC_1_21_11_BLOCK_TEMPLATE) + builder.addKind("Enchantment", icon, MinecraftTemplates.FABRIC_1_21_11_ENCHANTMENT_TEMPLATE) + builder.addKind("Item", icon, MinecraftTemplates.FABRIC_1_21_11_ITEM_TEMPLATE) + builder.addKind("Status effect", icon, MinecraftTemplates.FABRIC_1_21_11_STATUS_EFFECT_TEMPLATE) + + } } } diff --git a/src/main/kotlin/util/MinecraftTemplates.kt b/src/main/kotlin/util/MinecraftTemplates.kt index f071706ea..e5b3c0da6 100644 --- a/src/main/kotlin/util/MinecraftTemplates.kt +++ b/src/main/kotlin/util/MinecraftTemplates.kt @@ -161,10 +161,16 @@ class MinecraftTemplates : FileTemplateGroupDescriptorFactory { } FileTemplateGroupDescriptor("Fabric", PlatformAssets.FABRIC_ICON).let { fabricSkeletonGroup -> skeletonGroup.addTemplate(fabricSkeletonGroup) - fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_BLOCK_TEMPLATE)) - fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_ITEM_TEMPLATE)) - fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_ENCHANTMENT_TEMPLATE)) - fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_STATUS_EFFECT_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_1_21_11_BLOCK_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_1_21_11_ITEM_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_1_21_11_ENCHANTMENT_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_1_21_11_STATUS_EFFECT_TEMPLATE)) + + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_26_1_BLOCK_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_26_1_ITEM_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_26_1_ENCHANTMENT_TEMPLATE)) + fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_26_1_MOB_EFFECT_TEMPLATE)) + } } @@ -268,10 +274,15 @@ class MinecraftTemplates : FileTemplateGroupDescriptorFactory { const val FORGE_1_18_PACKET_TEMPLATE = "ForgePacket (1.18+).java" - const val FABRIC_BLOCK_TEMPLATE = "FabricBlock.java" - const val FABRIC_ITEM_TEMPLATE = "FabricItem.java" - const val FABRIC_ENCHANTMENT_TEMPLATE = "FabricEnchantment.java" - const val FABRIC_STATUS_EFFECT_TEMPLATE = "FabricStatusEffect.java" + const val FABRIC_1_21_11_BLOCK_TEMPLATE = "FabricBlock (1.21.11-).java" + const val FABRIC_1_21_11_ITEM_TEMPLATE = "FabricItem (1.21.11-).java" + const val FABRIC_1_21_11_ENCHANTMENT_TEMPLATE = "FabricEnchantment (1.21.11-).java" + const val FABRIC_1_21_11_STATUS_EFFECT_TEMPLATE = "FabricStatusEffect (1.21.11-).java" + + const val FABRIC_26_1_BLOCK_TEMPLATE = "FabricBlock (26.1+).java" + const val FABRIC_26_1_ITEM_TEMPLATE = "FabricItem (26.1+).java" + const val FABRIC_26_1_ENCHANTMENT_TEMPLATE = "FabricEnchantment (26.1+).java" + const val FABRIC_26_1_MOB_EFFECT_TEMPLATE = "FabricMobEffect (26.1+).java" const val NEOFORGE_MIXINS_JSON_TEMPLATE = "NeoForge Mixins Config.json" const val NEOFORGE_MAIN_CLASS_TEMPLATE = "NeoForge Main Class.java" diff --git a/src/main/kotlin/util/MinecraftVersions.kt b/src/main/kotlin/util/MinecraftVersions.kt index a5f77e609..193dbeb07 100644 --- a/src/main/kotlin/util/MinecraftVersions.kt +++ b/src/main/kotlin/util/MinecraftVersions.kt @@ -48,6 +48,7 @@ object MinecraftVersions { val MC1_21_1 = SemanticVersion.release(1, 21, 1) val MC1_21_11 = SemanticVersion.release(1, 21, 11) val MC26_1 = SemanticVersion.release(26, 1) + val MC26_2 = SemanticVersion.release(26, 2) fun requiredJavaVersion(minecraftVersion: SemanticVersion) = when { minecraftVersion <= MC1_16_5 -> JavaSdkVersion.JDK_1_8 diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft index 5df8fbdb5..cd8061d4a 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft @@ -1,12 +1,15 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentTarget; -import net.minecraft.entity.EquipmentSlot; +<#-- + Not functional on 1.20.3+ +--> +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentCategory; public class ${NAME} extends Enchantment { - public ${NAME}(Rarity weight, EnchantmentTarget type, EquipmentSlot[] slotTypes) { - super(weight, type, slotTypes); + public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots) { + super(rarity, category, slots); } -} +} \ No newline at end of file diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).java.ft similarity index 100% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.ft rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).java.ft diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).java.html similarity index 100% rename from src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricStatusEffect (26.1+).java.html rename to src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).java.html diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft index c4ae0bd57..580c9ec6e 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft @@ -4,9 +4,12 @@ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory; - +<#-- +Not functional +on 1.20.3+ + --> public class ${NAME} extends Enchantment { - public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots) { - super(rarity, category, slots); + public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots){ + super(rarity, category, slots); } } diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft index c4ae0bd57..7c17a19c8 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft @@ -1,6 +1,8 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") - +<#-- + Not functional on 1.20.3+ +--> import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory; From 819140740ab016059b068dba2c3f97fcaabf0c02 Mon Sep 17 00:00:00 2001 From: Orlisan Date: Sun, 16 Aug 2026 12:34:33 +0200 Subject: [PATCH 3/4] Added a Minecraft version parsing for fabric with method computeVersion in FabricModule.kt --- .../kotlin/platform/fabric/FabricModule.kt | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/platform/fabric/FabricModule.kt b/src/main/kotlin/platform/fabric/FabricModule.kt index 8481cc395..a718e6555 100644 --- a/src/main/kotlin/platform/fabric/FabricModule.kt +++ b/src/main/kotlin/platform/fabric/FabricModule.kt @@ -30,11 +30,14 @@ import com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomData import com.demonwav.mcdev.platform.mcp.mappings.HardcodedYarnToMojmap import com.demonwav.mcdev.platform.mcp.mappings.HasCustomNamedMappings import com.demonwav.mcdev.platform.mcp.mappings.MappingsManager +import com.demonwav.mcdev.util.SemanticVersion import com.demonwav.mcdev.util.SourceType import com.demonwav.mcdev.util.nullable import com.demonwav.mcdev.util.runCatchingKtIdeaExceptions import com.intellij.json.JsonUtil +import com.intellij.json.psi.JsonArray import com.intellij.json.psi.JsonFile +import com.intellij.json.psi.JsonObject import com.intellij.json.psi.JsonStringLiteral import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement @@ -67,6 +70,7 @@ class FabricModule internal constructor(facet: MinecraftFacet) : AbstractModule( override val moduleType = FabricModuleType override val type = PlatformType.FABRIC override val icon = PlatformAssets.FABRIC_ICON + var fabricMinecraftVersion: SemanticVersion? = null; override fun computeModIds(): List { val jsonFile = PsiManager.getInstance(project).findFile(fabricJson ?: return emptyList()) as? JsonFile @@ -75,6 +79,30 @@ class FabricModule internal constructor(facet: MinecraftFacet) : AbstractModule( return listOfNotNull((jsonObj.findProperty("id")?.value as? JsonStringLiteral)?.value) } + fun computeVersion(): SemanticVersion? { + val jsonFile = PsiManager.getInstance(project).findFile(fabricJson ?: return null) as? JsonFile + ?: return null + val jsonObj = JsonUtil.getTopLevelObject(jsonFile) ?: return null; + val depends = jsonObj.findProperty("depends")?.value as? JsonObject + val range = depends?.findProperty("minecraft") + val value = (range?.value as? JsonStringLiteral)?.value; + val arrayValue = (range?.value as? JsonArray) + if (value != null) { + val end = value.trimStart { !it.isDigit() } + return SemanticVersion.parse(end) + } else if (arrayValue != null) { + var majorVersion: SemanticVersion? = null; + for (child in arrayValue.valueList) { + val string = (child as? JsonStringLiteral)?.value ?: "0.0" + val end = string.trimStart { !it.isDigit() } + val value = SemanticVersion.parse(end) + if (majorVersion == null || value > majorVersion) majorVersion = value; + } + return majorVersion + } + return null + } + override fun isEventClassValid(eventClass: PsiClass, method: PsiMethod?) = true override fun writeErrorMessageForEventParameter(eventClass: PsiClass, method: PsiMethod) = "" @@ -107,6 +135,7 @@ class FabricModule internal constructor(facet: MinecraftFacet) : AbstractModule( private fun detectMappings(): MappingDetectionResult { val gradleData = GradleUtil.findGradleModuleData(facet.module) ?: return MappingDetectionResult.DEFAULT + val loomData = gradleData.children.find { it.key == FabricLoomData.KEY }?.data as? FabricLoomData ?: return MappingDetectionResult.DEFAULT val mappingsFile = loomData.tinyMappings ?: return MappingDetectionResult.DEFAULT @@ -147,7 +176,8 @@ class FabricModule internal constructor(facet: MinecraftFacet) : AbstractModule( override fun visitMethodArg(argPosition: Int, lvIndex: Int, srcName: String?) = false - override fun visitMethodVar(lvtRowIndex: Int, lvIndex: Int, startOpIdx: Int, endOpIdx: Int, srcName: String?) = false + override fun visitMethodVar(lvtRowIndex: Int, lvIndex: Int, startOpIdx: Int, endOpIdx: Int, srcName: String?) = + false override fun visitDstName(targetKind: MappedElementKind?, namespace: Int, name: String) { if (namespace == namedIndex && name == "net/minecraft/client/MinecraftClient") { From c96784b56f0363185359192c12876ca7d72313e5 Mon Sep 17 00:00:00 2001 From: Orlisan Date: Sun, 16 Aug 2026 12:59:07 +0200 Subject: [PATCH 4/4] Fixed typos --- .../j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft | 8 -------- .../skeleton/fabric/FabricEnchantment (26.1+).java.ft | 4 +--- .../j2ee/skeleton/fabric/FabricItem (26.1+).java.ft | 4 ++-- .../j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft | 5 +---- .../j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft | 4 +--- 5 files changed, 5 insertions(+), 20 deletions(-) diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft index cbbfbc0f6..671f8f4d1 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (26.1+).java.ft @@ -1,15 +1,7 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") -import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; public class ${NAME} extends Block { public ${NAME}(Properties properties) { diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft index cd8061d4a..8034f2372 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricEnchantment (26.1+).java.ft @@ -1,9 +1,7 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") -<#-- - Not functional on 1.20.3+ ---> +//Not functional for MC 1.20.3+ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory; diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft index fce5dd796..df9bace43 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricItem (26.1+).java.ft @@ -1,10 +1,10 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") -import net.minecraft.item.Item; +import net.minecraft.world.item.Item; public class ${NAME} extends Item { public ${NAME}(Properties props) { - super(settings); + super(props); } } diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft index 580c9ec6e..54053bd76 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft @@ -1,13 +1,10 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") +//Not functional for MC 1.20.3+ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory; -<#-- -Not functional -on 1.20.3+ - --> public class ${NAME} extends Enchantment { public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots){ super(rarity, category, slots); diff --git a/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft index 7c17a19c8..b71059d08 100644 --- a/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft +++ b/src/main/resources/fileTemplates/j2ee/skeleton/neoforge/NeoForgeEnchantment.java.ft @@ -1,8 +1,6 @@ #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") -<#-- - Not functional on 1.20.3+ ---> +//Not functional for MC 1.20.3+ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory;