diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 7485c92..3a55055 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -12,12 +12,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Java - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: - distribution: "temurin" - java-version: 17 + distribution: 'temurin' + java-version: | + 17 + 21 + cache: 'gradle' - name: Make Gradle Executable run: chmod +x ./gradlew - name: Build with Gradle @@ -25,4 +28,4 @@ jobs: - name: Upload Artifacts uses: actions/upload-artifact@v3 with: - path: build/libs/*.jar \ No newline at end of file + path: 'versions/**/build/libs/*.jar' \ No newline at end of file diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 317afc4..0000000 --- a/build.gradle +++ /dev/null @@ -1,96 +0,0 @@ -plugins { - id 'fabric-loom' version '1.2-SNAPSHOT' - id 'maven-publish' -} - -version = project.mod_version -group = project.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. - - maven { - name = "Modrinth" - url = "https://api.modrinth.com/maven" - } -} - -dependencies { - // To change the versions see the gradle.properties file - 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. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - - modLocalRuntime("maven.modrinth:modmenu:${project.modmenu_version}") -} - -loom { - accessWidenerPath = file("src/main/resources/cc.accesswidener") -} - -processResources { - inputs.property "version", project.version - inputs.property "minecraft_version", project.minecraft_version - inputs.property "loader_version", project.loader_version - filteringCharset "UTF-8" - - filesMatching("fabric.mod.json") { - expand "version": project.version, - "minecraft_version": project.minecraft_version, - "loader_version": project.loader_version - } -} - -def targetJavaVersion = 17 -tasks.withType(JavaCompile).configureEach { - // ensure that the encoding is set to UTF-8, no matter what the system default is - // this fixes some edge cases with special characters not displaying correctly - // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html - // If Javadoc is generated, this must be specified in that task too. - it.options.encoding = "UTF-8" - if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { - it.options.release = targetJavaVersion - } -} - -java { - def javaVersion = JavaVersion.toVersion(targetJavaVersion) - if (JavaVersion.current() < javaVersion) { - toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) - } - archivesBaseName = project.archives_base_name - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. - withSourcesJar() -} - -jar { - from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} - } -} - -// configure the maven publication -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - // Notice: This block does NOT have the same function as the block in the top level. - // The repositories here will be used for publishing your artifact, not for - // retrieving dependencies. - } -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..5580086 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,86 @@ +import dev.deftu.gradle.utils.* + +import dev.deftu.gradle.tools.minecraft.CurseRelation +import dev.deftu.gradle.tools.minecraft.CurseRelationType +import com.modrinth.minotaur.dependencies.DependencyType +import com.modrinth.minotaur.dependencies.ModDependency + +plugins { + java + + id("dev.deftu.gradle.multiversion") + id("dev.deftu.gradle.tools") + id("dev.deftu.gradle.tools.resources") + id("dev.deftu.gradle.tools.minecraft.api") + id("dev.deftu.gradle.tools.minecraft.loom") + id("dev.deftu.gradle.tools.publishing.maven") + id("dev.deftu.gradle.tools.minecraft.releases") +} + +repositories { + maven("https://api.modrinth.com/maven") +} + +dependencies { + if (mcData.isFabric) { + modImplementation("net.fabricmc.fabric-api:fabric-api:${mcData.dependencies.fabric.fabricApiVersion}") + modImplementation(mcData.dependencies.fabric.modMenuDependency) + } +} + +loom { + accessWidenerPath = file("../../src/main/resources/cc.accesswidener") +} + +java { + base.archivesName.set(modData.id) + + tasks { + if (isLoomPresent()) { + named("remapJar") { + archiveBaseName.set(modData.id) + } + } else { + named("jar") { + archiveBaseName.set(modData.id) + } + } + } +} + +/* +minecraft { + accessTransformer = file("../../src/main/resources/META-INF/accesstransformer.cfg") +} +*/ + +toolkitReleases { + detectVersionType.set(true) + + rootProject.file("changelogs/${modData.version}.md").let { file -> + if (file.exists()) + changelogFile.set(file) + } + + modrinth { + projectId.set("Fs6mB0ic") + + if (mcData.loader == ModLoader.FABRIC) { + dependencies.addAll(listOf( + ModDependency("P7dR8mSH", DependencyType.REQUIRED), // Fabric API + ModDependency("mOgUt4GM", DependencyType.OPTIONAL) // Mod Menu + )) + } + } + + curseforge { + projectId.set("901062") + + if (mcData.loader == ModLoader.FABRIC) { + relations.addAll(listOf( + CurseRelation("fabric-api", CurseRelationType.REQUIRED), // Fabric API + CurseRelation("modmenu", CurseRelationType.OPTIONAL) // Mod Menu + )) + } + } +} \ No newline at end of file diff --git a/changelogs/2.0.0-rc.1.md b/changelogs/2.0.0-rc.1.md new file mode 100644 index 0000000..18c64da --- /dev/null +++ b/changelogs/2.0.0-rc.1.md @@ -0,0 +1,12 @@ +The mod has been revived from the dead! + +### New + +* 1.21 Support + * !! Enchantment books are missing from the tools tab. + +### Fixes +1. Added Missing Items + * Pottery Sherds + * Smithing Templates +2. Fixed The Brewing Tab Icon \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index a37fc1d..cbe881c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,20 +1,7 @@ # Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx1G +org.gradle.jvmargs=-Xmx2G -# Fabric Properties -# check these on https://modmuss50.me/fabric.html -minecraft_version=1.20.3 -yarn_mappings=1.20.3+build.1 -loader_version=0.15.1 - -# Mod Properties -mod_version = 1.0.0+mc1.20.3 -maven_group = me.theclashfruit -archives_base_name = cc - -# Dependencies -# check this on https://modmuss50.me/fabric.html -fabric_version=0.91.1+1.20.3 - -# Local Dev Mods -modmenu_version=9.0.0-pre.1 \ No newline at end of file +mod.name=Cluttered Creative +mod.id=cc +mod.version=2.0.0-rc.1 +mod.group=me.theclashfruit \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d..2617362 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/root.gradle.kts b/root.gradle.kts new file mode 100644 index 0000000..6d68642 --- /dev/null +++ b/root.gradle.kts @@ -0,0 +1,23 @@ +plugins { + id("dev.deftu.gradle.multiversion-root") +} + +preprocess { + val fabric_1_21 = createNode("1.21-fabric", 1210, "yarn") + val fabric_1_20_6 = createNode("1.20.6-fabric", 1206, "yarn") + val fabric_1_20_5 = createNode("1.20.5-fabric", 1205, "yarn") + val fabric_1_20_4 = createNode("1.20.4-fabric", 1204, "yarn") + val fabric_1_20_3 = createNode("1.20.3-fabric", 1203, "yarn") + val fabric_1_20_2 = createNode("1.20.2-fabric", 1202, "yarn") + val fabric_1_20_1 = createNode("1.20.1-fabric", 1201, "yarn") + val fabric_1_20 = createNode("1.20-fabric", 1200, "yarn") + + fabric_1_21.link(fabric_1_20_6) + //fabric_1_20_6.link(fabric_1_20_5) + fabric_1_20_6.link(fabric_1_20_4) + //fabric_1_20_5.link(fabric_1_20_4) + fabric_1_20_4.link(fabric_1_20_3) + fabric_1_20_3.link(fabric_1_20_2) + fabric_1_20_2.link(fabric_1_20_1) + fabric_1_20_1.link(fabric_1_20) +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index f91a4fe..0000000 --- a/settings.gradle +++ /dev/null @@ -1,9 +0,0 @@ -pluginManagement { - repositories { - maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' - } - gradlePluginPortal() - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..b34edd9 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,44 @@ +pluginManagement { + repositories { + maven("https://maven.deftu.dev/releases") + maven("https://maven.fabricmc.net") + maven("https://maven.architectury.dev/") + maven("https://maven.minecraftforge.net") + maven("https://maven.neoforged.net/releases") + maven("https://repo.essential.gg/repository/maven-public") + maven("https://server.bbkr.space/artifactory/libs-release/") + maven("https://jitpack.io/") + + maven("https://maven.deftu.dev/snapshots") + mavenLocal() + + gradlePluginPortal() + mavenCentral() + } + + plugins { + id("dev.deftu.gradle.multiversion-root") version("2.2.3") + } +} + +val projectName: String = "Cluttered Creative" + +rootProject.name = projectName +rootProject.buildFileName = "root.gradle.kts" + +listOf( + "1.20-fabric", + "1.20.1-fabric", + "1.20.2-fabric", + "1.20.3-fabric", + "1.20.4-fabric", + //"1.20.5-fabric", + "1.20.6-fabric", + "1.21-fabric", +).forEach { version -> + include(":$version") + project(":$version").apply { + projectDir = file("versions/$version") + buildFileName = "../../build.gradle.kts" + } +} \ No newline at end of file diff --git a/src/main/java/me/theclashfruit/cc/ClutteredCreative.java b/src/main/java/me/theclashfruit/cc/ClutteredCreative.java index 752e605..a9f46b1 100644 --- a/src/main/java/me/theclashfruit/cc/ClutteredCreative.java +++ b/src/main/java/me/theclashfruit/cc/ClutteredCreative.java @@ -9,6 +9,6 @@ public class ClutteredCreative implements ModInitializer { @Override public void onInitialize() { - + LOGGER.info("ClutteredCreative has been initialized!"); } } diff --git a/src/main/java/me/theclashfruit/cc/client/ClutteredCreativeClient.java b/src/main/java/me/theclashfruit/cc/client/ClutteredCreativeClient.java deleted file mode 100644 index 5d58264..0000000 --- a/src/main/java/me/theclashfruit/cc/client/ClutteredCreativeClient.java +++ /dev/null @@ -1,10 +0,0 @@ -package me.theclashfruit.cc.client; - -import net.fabricmc.api.ClientModInitializer; - -public class ClutteredCreativeClient implements ClientModInitializer { - @Override - public void onInitializeClient() { - - } -} diff --git a/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsInterfaceMixin.java b/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsInterfaceMixin.java index 24a18ca..33f397e 100644 --- a/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsInterfaceMixin.java +++ b/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsInterfaceMixin.java @@ -1,7 +1,6 @@ package me.theclashfruit.cc.mixin; import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentTarget; import net.minecraft.item.Instrument; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; @@ -12,6 +11,12 @@ import net.minecraft.registry.tag.TagKey; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; +//#if MC >= 1.20.6 +import net.minecraft.resource.featuretoggle.FeatureSet; +//#elseif MC < 1.20.5 +//$$ import net.minecraft.enchantment.EnchantmentTarget; +//#endif + import java.util.Set; @Mixin(ItemGroups.class) @@ -21,13 +26,42 @@ public interface ItemGroupsInterfaceMixin { throw new AssertionError(); } + //#if MC >= 1.20.6 @Invoker("addPotions") - static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Item item, ItemGroup.StackVisibility visibility) { + static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Item item, ItemGroup.StackVisibility stackVisibility, FeatureSet featureSet) { throw new AssertionError(); } + //#elseif MC >= 1.20.5 + //$$ @Invoker("addPotions") + //$$ static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Item item, ItemGroup.StackVisibility visibility) { + //$$ throw new AssertionError(); + //$$ } + //#else + //$$ @Invoker("addPotions") + //$$ static void invokeAddPotions(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Item item, ItemGroup.StackVisibility visibility) { + //$$ throw new AssertionError(); + //$$ } + //#endif + //#if MC >= 1.21 @Invoker("addMaxLevelEnchantedBooks") - static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Set enchantmentTargets, ItemGroup.StackVisibility visibility) { + static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper registryWrapper, ItemGroup.StackVisibility visibility) { throw new AssertionError(); } + //#elseif MC >= 1.20.6 + //$$ @Invoker("addMaxLevelEnchantedBooks") + //$$ static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Set> set, ItemGroup.StackVisibility stackVisibility, FeatureSet featureSet) { + //$$ throw new AssertionError(); + //$$ } + //#elseif MC >= 1.20.5 + //$$ @Invoker("addMaxLevelEnchantedBooks") + //$$ static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Set> enchantmentTargets, ItemGroup.StackVisibility visibility) { + //$$ throw new AssertionError(); + //$$ } + //#else + //$$ @Invoker("addMaxLevelEnchantedBooks") + //$$ static void invokeAddMaxLevelEnchantedBooks(ItemGroup.Entries entries, RegistryWrapper registryWrapper, Set enchantmentTargets, ItemGroup.StackVisibility visibility) { + //$$ throw new AssertionError(); + //$$ } + //#endif } diff --git a/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsMixin.java b/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsMixin.java index 3044748..12fb6cf 100644 --- a/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsMixin.java +++ b/src/main/java/me/theclashfruit/cc/mixin/ItemGroupsMixin.java @@ -2,22 +2,28 @@ package me.theclashfruit.cc.mixin; import net.minecraft.block.Blocks; import net.minecraft.enchantment.EnchantmentLevelEntry; -import net.minecraft.enchantment.EnchantmentTarget; import net.minecraft.enchantment.Enchantments; import net.minecraft.item.*; -import net.minecraft.potion.PotionUtil; import net.minecraft.potion.Potions; import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.tag.InstrumentTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.registry.tag.TagKey; import net.minecraft.text.Text; import net.minecraft.village.raid.Raid; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.*; import org.spongepowered.asm.mixin.gen.Invoker; +//#if MC >= 1.20.6 +import net.minecraft.util.Identifier; +import net.minecraft.component.type.PotionContentsComponent; +//#else +//$$ import net.minecraft.enchantment.EnchantmentTarget; +//$$ import net.minecraft.potion.PotionUtil; +//#endif + import java.util.EnumSet; import java.util.Set; @@ -58,12 +64,25 @@ public class ItemGroupsMixin { .type(ItemGroup.Type.HOTBAR) .build(); + //#if MC >= 1.21 + @Unique + private static final Identifier INVENTORY_TAB_TEXTURE_ID = ItemGroup.getTabTextureId("inventory"); + @Unique + private static final Identifier ITEM_SEARCH_TAB_TEXTURE_ID = ItemGroup.getTabTextureId("item_search"); + //#endif + @Unique private static final ItemGroup inventoryGroup = ItemGroup .create(ItemGroup.Row.BOTTOM, 6) .displayName(Text.translatable("itemGroup.inventory")) .icon(() -> new ItemStack(Blocks.CHEST)) - .texture("inventory.png") + .texture( + //#if MC >= 1.21 + INVENTORY_TAB_TEXTURE_ID + //#else + //$$ "inventory.png" + //#endif + ) .noRenderedName() .special() .type(ItemGroup.Type.INVENTORY) @@ -91,7 +110,13 @@ public class ItemGroupsMixin { content.addAll(itemGroupSet); }) - .texture("item_search.png") + .texture( + //#if MC >= 1.21 + ITEM_SEARCH_TAB_TEXTURE_ID + //#else + //$$ "item_search.png" + //#endif + ) .special() .type(ItemGroup.Type.SEARCH) .build(); @@ -902,7 +927,12 @@ public class ItemGroupsMixin { content.add(Items.GREEN_BANNER); content.add(Items.RED_BANNER); content.add(Items.BLACK_BANNER); - content.add(Raid.getOminousBanner()); + + //#if MC >= 1.20.6 + content.add(Raid.getOminousBanner(displayContext.lookup().getWrapperOrThrow(RegistryKeys.BANNER_PATTERN))); + //#else + //$$ content.add(Raid.getOminousBanner()); + //#endif content.add(Items.END_CRYSTAL); @@ -967,7 +997,7 @@ public class ItemGroupsMixin { Registry.register( registry, - REDSTONE, + ItemGroupsMixin.REDSTONE, ItemGroup .create(ItemGroup.Row.TOP, 2) .type(ItemGroup.Type.CATEGORY) @@ -1132,7 +1162,12 @@ public class ItemGroupsMixin { content.add(Items.BEACON); content.add(Items.TURTLE_EGG); content.add(Items.CONDUIT); - content.add(Items.SCUTE); + + //#if MC >= 1.20 + content.add(Items.TURTLE_SCUTE); + //#else + //$$ content.add(Items.SCUTE); + //#endif content.add(Items.COAL); content.add(Items.CHARCOAL); @@ -1361,6 +1396,7 @@ public class ItemGroupsMixin { content.add(Items.FROGSPAWN); content.add(Items.ECHO_SHARD); + //#if MC >= 1.20 content.add(Items.ANGLER_POTTERY_SHERD); content.add(Items.ARCHER_POTTERY_SHERD); content.add(Items.ARMS_UP_POTTERY_SHERD); @@ -1381,6 +1417,7 @@ public class ItemGroupsMixin { content.add(Items.SHELTER_POTTERY_SHERD); content.add(Items.SKULL_POTTERY_SHERD); content.add(Items.SNORT_POTTERY_SHERD); + //#endif }) .build() ); @@ -1438,7 +1475,7 @@ public class ItemGroupsMixin { Registry.register( registry, - TOOLS, + ItemGroupsMixin.TOOLS, ItemGroup .create(ItemGroup.Row.BOTTOM, 2) .type(ItemGroup.Type.CATEGORY) @@ -1487,14 +1524,18 @@ public class ItemGroupsMixin { content.add(Items.SPYGLASS); content.add(Items.SHEARS); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.EFFICIENCY, 5))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.SILK_TOUCH, 1))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.UNBREAKING, 3))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.FORTUNE, 3))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LUCK_OF_THE_SEA, 3))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LURE, 3))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.MENDING, 1))); - content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.VANISHING_CURSE, 1))); + //#if MC >= 1.20.6 + LOGGER.info("WHY TF 1.20.6 HAS TO FUCK SHIT UP? HOW DO I MAKE AN ENCHANTED BOOK???????????????"); + //#else + //$$ content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.EFFICIENCY, 5))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.SILK_TOUCH, 1))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.UNBREAKING, 3))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.FORTUNE, 3))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LUCK_OF_THE_SEA, 3))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.LURE, 3))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.MENDING, 1))); + //$$content.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(Enchantments.VANISHING_CURSE, 1))); + //#endif content.add(Items.LEAD); content.add(Items.NAME_TAG); @@ -1552,20 +1593,40 @@ public class ItemGroupsMixin { content.add(Items.NETHERITE_LEGGINGS); content.add(Items.NETHERITE_BOOTS); - EnumSet set = EnumSet.allOf(EnchantmentTarget.class); - - displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent(wrapper -> { - ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, wrapper, set, ItemGroup.StackVisibility.PARENT_TAB_ONLY); + //#if MC >= 1.21 + displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent((impl) -> { + ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, impl, ItemGroup.StackVisibility.PARENT_TAB_ONLY); }); + //#elseif MC >= 1.20.6 + //$$ Set> set = Set.of(ItemTags.FOOT_ARMOR_ENCHANTABLE, ItemTags.LEG_ARMOR_ENCHANTABLE, ItemTags.CHEST_ARMOR_ENCHANTABLE, ItemTags.HEAD_ARMOR_ENCHANTABLE, ItemTags.ARMOR_ENCHANTABLE, ItemTags.SWORD_ENCHANTABLE, ItemTags.SHARP_WEAPON_ENCHANTABLE, ItemTags.MACE_ENCHANTABLE, ItemTags.FIRE_ASPECT_ENCHANTABLE, ItemTags.WEAPON_ENCHANTABLE, ItemTags.MINING_ENCHANTABLE, ItemTags.MINING_LOOT_ENCHANTABLE, ItemTags.FISHING_ENCHANTABLE, ItemTags.TRIDENT_ENCHANTABLE, ItemTags.DURABILITY_ENCHANTABLE, ItemTags.BOW_ENCHANTABLE, ItemTags.EQUIPPABLE_ENCHANTABLE, ItemTags.CROSSBOW_ENCHANTABLE, ItemTags.VANISHING_ENCHANTABLE); + //$$ + //$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent((impl) -> { + //$$ ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, impl, set, ItemGroup.StackVisibility.PARENT_TAB_ONLY, displayContext.comp_1251()); + //$$ }); + //#else + //$$ EnumSet set = EnumSet.allOf(EnchantmentTarget.class); + //$$ + //$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.ENCHANTMENT).ifPresent(wrapper -> { + //$$ ItemGroupsInterfaceMixin.invokeAddMaxLevelEnchantedBooks(content, wrapper, set, ItemGroup.StackVisibility.PARENT_TAB_ONLY); + //$$ }); + //#endif content.add(Items.SPECTRAL_ARROW); - displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.TIPPED_ARROW, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS)); + + //#if MC >= 1.20.6 + displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent((impl) -> { + ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.TIPPED_ARROW, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251()); + }); + //#else + //$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.TIPPED_ARROW, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS)); + //#endif content.add(Items.SHIELD); content.add(Items.TOTEM_OF_UNDYING); content.add(Items.TRIDENT); content.add(Items.CROSSBOW); + //#if MC >= 1.20 content.add(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE); content.add(Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE); content.add(Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE); @@ -1583,6 +1644,7 @@ public class ItemGroupsMixin { content.add(Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE); content.add(Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE); content.add(Items.SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE); + //#endif }) .build() ); @@ -1594,13 +1656,24 @@ public class ItemGroupsMixin { .create(ItemGroup.Row.BOTTOM, 4) .type(ItemGroup.Type.CATEGORY) .displayName(Text.translatable("itemGroup.brewing")) - .icon(() -> PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER)) - .entries((displayContext, content) -> { + .icon(() -> + //#if MC >= 1.20.6 + PotionContentsComponent.createStack(Items.POTION, Potions.WATER) + //#else + //$$ PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER) + //#endif + ).entries((displayContext, content) -> { content.add(Items.GHAST_TEAR); - displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> { - ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS); + //#if MC >= 1.20.6 + displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent((impl) -> { + ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251()); }); + //#else + //$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> { + //$$ ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS); + //$$ }); + //#endif content.add(Items.GLASS_BOTTLE); content.add(Items.FERMENTED_SPIDER_EYE); @@ -1613,10 +1686,17 @@ public class ItemGroupsMixin { content.add(Items.RABBIT_FOOT); content.add(Items.DRAGON_BREATH); - displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> { - ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.SPLASH_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS); - ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.LINGERING_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS); + //#if MC >= 1.20.6 + displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent((impl) -> { + ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.SPLASH_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251()); + ItemGroupsInterfaceMixin.invokeAddPotions(content, impl, Items.LINGERING_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS, displayContext.comp_1251()); }); + //#else + //$$ displayContext.lookup().getOptionalWrapper(RegistryKeys.POTION).ifPresent(wrapper -> { + //$$ ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.SPLASH_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS); + //$$ ItemGroupsInterfaceMixin.invokeAddPotions(content, wrapper, Items.LINGERING_POTION, ItemGroup.StackVisibility.PARENT_AND_SEARCH_TABS); + //$$ }); + //#endif content.add(Items.PHANTOM_MEMBRANE); }) diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 0000000..33e9656 --- /dev/null +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1 @@ +public net.minecraft.world.item.CreativeModeTab.Builder type(Lnet/minecraft/world/item/CreativeModeTab.Type;)Lnet/minecraft/world/item/CreativeModeTab/Builder; \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..7aefb5e --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,15 @@ +modLoader="javafml" +loaderVersion="[31,)" +issueTrackerURL="https://git.theclashfruit.me/TheClashFruit/ClutteredCreative/issues" +license="MIT" + +[[mods]] + modId="cc" + version="${mod_version}" + displayName="Cluttered Creative" + description="Bring back the old cluttered creative inventory." + authors="TheClashFruit" + logoFile="assets/cc/icon.png" + +[[mixins]] + config = "cc.mixins.json" \ No newline at end of file diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..ae81bda --- /dev/null +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,15 @@ +modLoader="javafml" +loaderVersion="[1,)" +issueTrackerURL="https://git.theclashfruit.me/TheClashFruit/ClutteredCreative/issues" +license="MIT" + +[[mods]] + modId="cc" + version="${mod_version}" + displayName="Cluttered Creative" + description="Bring back the old cluttered creative inventory." + authors="TheClashFruit" + logoFile="assets/cc/icon.png" + +[[mixins]] + config = "cc.mixins.json" \ No newline at end of file diff --git a/src/main/resources/cc.accesswidener b/src/main/resources/cc.accesswidener index 71e6311..84a1e18 100644 --- a/src/main/resources/cc.accesswidener +++ b/src/main/resources/cc.accesswidener @@ -1,3 +1,10 @@ accessWidener v1 named -accessible method net/minecraft/item/ItemGroup$Builder type (Lnet/minecraft/item/ItemGroup$Type;)Lnet/minecraft/item/ItemGroup$Builder; \ No newline at end of file +accessible class net/minecraft/item/ItemGroup$StackVisibility + +accessible method net/minecraft/item/ItemGroup$Builder type (Lnet/minecraft/item/ItemGroup$Type;)Lnet/minecraft/item/ItemGroup$Builder; + +accessible field net/minecraft/item/ItemGroups INVENTORY Lnet/minecraft/registry/RegistryKey; +accessible field net/minecraft/item/ItemGroups HOTBAR Lnet/minecraft/registry/RegistryKey; +accessible field net/minecraft/item/ItemGroups SEARCH Lnet/minecraft/registry/RegistryKey; +accessible field net/minecraft/item/ItemGroups COMBAT Lnet/minecraft/registry/RegistryKey; \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index ee72ac8..3013ac5 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "cc", - "version": "${version}", + "version": "${mod_version}", "name": "Cluttered Creative", "description": "Bring back the old cluttered creative inventory.", "authors": [ @@ -16,9 +16,6 @@ "icon": "assets/cc/icon.png", "environment": "*", "entrypoints": { - "client": [ - "me.theclashfruit.cc.client.ClutteredCreativeClient" - ], "main": [ "me.theclashfruit.cc.ClutteredCreative" ] @@ -28,9 +25,9 @@ ], "accessWidener" : "cc.accesswidener", "depends": { - "fabricloader": ">=${loader_version}", + "fabricloader": ">=0.15.1", "fabric": "*", - "minecraft": ">=${minecraft_version}" + "minecraft": "${mc_version}" }, "custom": { "modmenu": { diff --git a/versions/mainProject b/versions/mainProject new file mode 100644 index 0000000..dfdd511 --- /dev/null +++ b/versions/mainProject @@ -0,0 +1 @@ +1.21-fabric \ No newline at end of file