diff --git a/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt b/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt index f5efd0b54..729d8bbfb 100644 --- a/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt +++ b/src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt @@ -69,6 +69,7 @@ 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() ?.minecraftVersion?.let(SemanticVersion::parse) @@ -88,29 +89,39 @@ class MinecraftClassCreateAction : builder.addKind("Packet", icon, MinecraftTemplates.FORGE_1_17_PACKET_TEMPLATE) } else { 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) builder.addKind("Mob effect", icon, MinecraftTemplates.FORGE_1_17_MOB_EFFECT_TEMPLATE) builder.addKind("Packet", icon, MinecraftTemplates.FORGE_1_18_PACKET_TEMPLATE) } + if (mcVersion < MinecraftVersions.MC1_21) { + builder.addKind("Enchantment", icon, MinecraftTemplates.FORGE_1_17_ENCHANTMENT_TEMPLATE) + } } if (isNeoForge) { val icon = PlatformAssets.NEOFORGE_ICON builder.addKind("Block", icon, MinecraftTemplates.NEOFORGE_BLOCK_TEMPLATE) - builder.addKind("Enchantment", icon, MinecraftTemplates.NEOFORGE_ENCHANTMENT_TEMPLATE) builder.addKind("Item", icon, MinecraftTemplates.NEOFORGE_ITEM_TEMPLATE) builder.addKind("Mob effect", icon, MinecraftTemplates.NEOFORGE_MOB_EFFECT_TEMPLATE) builder.addKind("Packet", icon, MinecraftTemplates.NEOFORGE_PACKET_TEMPLATE) + if (mcVersion == null || mcVersion < MinecraftVersions.MC1_21) + builder.addKind("Enchantment", icon, MinecraftTemplates.NEOFORGE_ENCHANTMENT_TEMPLATE) } if (isFabric) { val icon = PlatformAssets.FABRIC_ICON + if (mcVersion != null && mcVersion >= MinecraftVersions.MC26_1) { + builder.addKind("Block", icon, MinecraftTemplates.FABRIC_26_1_BLOCK_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("Item", icon, MinecraftTemplates.FABRIC_1_21_11_ITEM_TEMPLATE) + builder.addKind("Status effect", icon, MinecraftTemplates.FABRIC_1_21_11_STATUS_EFFECT_TEMPLATE) + } + if (mcVersion != null && mcVersion < MinecraftVersions.MC1_21) + builder.addKind("Enchantment", icon, MinecraftTemplates.FABRIC_1_21_11_ENCHANTMENT_TEMPLATE) } } diff --git a/src/main/kotlin/util/MinecraftTemplates.kt b/src/main/kotlin/util/MinecraftTemplates.kt index f071706ea..c13466e2c 100644 --- a/src/main/kotlin/util/MinecraftTemplates.kt +++ b/src/main/kotlin/util/MinecraftTemplates.kt @@ -161,13 +161,18 @@ 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_MOB_EFFECT_TEMPLATE)) + } - } + } FileTemplateGroupDescriptor("Licenses", null).let { licenseGroup -> group.addTemplate(licenseGroup) enumEntries().forEach { license -> @@ -268,10 +273,14 @@ 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_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/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..671f8f4d1 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricBlock (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.level.block.Block; + +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/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..df9bace43 --- /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.world.item.Item; + +public class ${NAME} extends Item { + public ${NAME}(Properties props) { + super(props); + } +} 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/FabricMobEffect (26.1+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).java.ft new file mode 100644 index 000000000..67d1d3355 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (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/FabricMobEffect (26.1+).java.html b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).java.html new file mode 100644 index 000000000..a75911573 --- /dev/null +++ b/src/main/resources/fileTemplates/j2ee/skeleton/fabric/FabricMobEffect (26.1+).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.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/forge/ForgeEnchantment (1.17+).java.ft b/src/main/resources/fileTemplates/j2ee/skeleton/forge/ForgeEnchantment (1.17+).java.ft index c4ae0bd57..54737e02a 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 @@ -7,6 +7,6 @@ import net.minecraft.world.item.enchantment.EnchantmentCategory; public class ${NAME} extends Enchantment { public ${NAME}(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots) { - super(rarity, category, slots); + super(rarity, category, slots); } }