diff --git a/gradle/minecraft/26.1.2.versions.toml b/gradle/minecraft/26.1.2.versions.toml index ff47737..356925c 100644 --- a/gradle/minecraft/26.1.2.versions.toml +++ b/gradle/minecraft/26.1.2.versions.toml @@ -13,10 +13,10 @@ jei = "29.43.0.106" map-atlases = "6345967" modmenu = "18.0.2" neoforge = "26.1.2.114" -ohmega-fabric = "1.5.20-mc26.1.2" -ohmega-neoforge = "1.5.20-mc26.1.2" +ohmega = "1.5.20-mc26.1.2" porting-lib-transfer = "2.3.9+1.20.1" rrv = "8.10.9+26.1.2" +satchels = "1.6" sophisticated-backpacks-fabric = "26.1.2-3.25.55.1739" sophisticated-backpacks-neoforge = "26.1.2-3.25.55.1739" sophisticated-core-fabric = "26.1.2-1.4.45.1849" @@ -24,8 +24,7 @@ sophisticated-core-neoforge = "26.1.2-1.4.45.1849" trashslot = "Kq3z6gII" travelers-backpack-fabric = "26.1.2-11.2.6" travelers-backpack-neoforge = "26.1.2-11.2.4-neoforge" -trinkets-fabric = "4.0.0-beta.3+26.1" -trinkets-neoforge = "4.0.0-beta.3+26.1" +trinkets = "4.0.0-beta.3+26.1" yacl-fabric = "3.9.7+26.1-fabric" yacl-neoforge = "3.9.7+26.1-neoforge" architectury = "20.1.16" @@ -58,11 +57,12 @@ jei-neoforge = { module = "mezz.jei:jei-26.1.2-neoforge", version.ref = "jei" } map-atlases = { module = "curse.maven:map-atlases-forge-519759", version.ref = "map-atlases" } modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" } neoforge = { module = "net.neoforged:neoforge", version.ref = "neoforge" } -ohmega-fabric = { module = "io.github.swackyy:ohmega-fabric", version.ref = "ohmega-fabric" } -ohmega-neoforge = { module = "io.github.swackyy:ohmega-neoforge", version.ref = "ohmega-neoforge" } +ohmega-fabric = { module = "io.github.swackyy:ohmega-fabric", version.ref = "ohmega" } +ohmega-neoforge = { module = "io.github.swackyy:ohmega-neoforge", version.ref = "ohmega" } porting-lib-transfer = { module = "io.github.fabricators_of_create.Porting-Lib:transfer", version.ref = "porting-lib-transfer" } rrv-fabric = { module = "cc.cassian.rrv:reliable-recipe-viewer-fabric", version.ref = "rrv" } rrv-neoforge = { module = "cc.cassian.rrv:reliable-recipe-viewer-neoforge", version.ref = "rrv" } +satchels = { module = "maven.modrinth:satchel", version.ref = "satchels" } sophisticated-backpacks-fabric = { module = "maven.modrinth:sophisticated-backpacks", version.ref = "sophisticated-backpacks-fabric" } sophisticated-backpacks-neoforge = { module = "maven.modrinth:sophisticated-backpacks", version.ref = "sophisticated-backpacks-neoforge" } sophisticated-core-fabric = { module = "maven.modrinth:sophisticated-core", version.ref = "sophisticated-core-fabric" } @@ -70,7 +70,6 @@ sophisticated-core-neoforge = { module = "maven.modrinth:sophisticated-core", ve trashslot = { module = "maven.modrinth:trashslot", version.ref = "trashslot" } travelers-backpack-fabric = { module = "maven.modrinth:travelersbackpack", version.ref = "travelers-backpack-fabric" } travelers-backpack-neoforge = { module = "maven.modrinth:travelersbackpack", version.ref = "travelers-backpack-neoforge" } -trinkets-fabric = { module = "eu.pb4:trinkets", version.ref = "trinkets-fabric" } -trinkets-neoforge = { module = "eu.pb4:trinkets", version.ref = "trinkets-neoforge" } +trinkets = { module = "eu.pb4:trinkets", version.ref = "trinkets" } yacl-fabric = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl-fabric" } yacl-neoforge = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl-neoforge" } diff --git a/gradle/minecraft/26.2.versions.toml b/gradle/minecraft/26.2.versions.toml new file mode 100644 index 0000000..f11c524 --- /dev/null +++ b/gradle/minecraft/26.2.versions.toml @@ -0,0 +1,68 @@ +[versions] +iris-fabric = "1.11.4+26.2-fabric" +iris-neoforge = "1.11.4+26.2-neoforge" +accessories-fabric = "1.4.3-beta+1.21.10" +accessories-neoforge = "1.3.7-beta+1.21.8" +cca = "6.1.2" +cloth = "26.1.154" +curios-neoforge = "16.0.0+26.2" +fabric-api = "0.161.0+26.2" +fabric-loader = "0.19.5" +forge-config-api-port-fabric = "26.2.1" +forgified-fabric-api = "0.154.0+3.2.6+26.1.2" +jade-fabric = "26.2.9+fabric" +jei = "30.39.0.232" +map-atlases = "6345967" +modmenu = "20.0.3" +neoforge = "26.2.0.88" +ohmega = "1.5.19-mc26.2" +porting-lib-transfer = "2.3.9+1.20.1" +rrv = "8.10.9+26.2" +satchels = "1.7" +sophisticated-backpacks-fabric = "26.1.2-3.25.55.1739" +sophisticated-backpacks-neoforge = "26.2-3.25.77.1959" +sophisticated-core-fabric = "26.1.2-1.4.45.1849" +sophisticated-core-neoforge = "26.2-1.4.75.2101" +trashslot = "Kq3z6gII" +travelers-backpack-fabric = "26.1.2-11.2.6" +travelers-backpack-neoforge = "26.1.2-11.2.4-neoforge" +trinkets = "4.1.0-beta.1+26.2" +yacl-fabric = "3.9.6+26.2-fabric" +yacl-neoforge = "3.9.7+26.2-neoforge" + +[libraries] +iris-fabric = { module = "maven.modrinth:iris", version.ref = "iris-fabric" } +iris-neoforge = { module = "maven.modrinth:iris", version.ref = "iris-neoforge" } +accessories-fabric = { module = "io.wispforest:accessories-neoforge", version.ref = "accessories-fabric" } +accessories-neoforge = { module = "io.wispforest:accessories-neoforge", version.ref = "accessories-neoforge" } +cca-base = { module = "org.ladysnake.cardinal-components-api:cardinal-components-base", version.ref = "cca" } +cca-entity = { module = "org.ladysnake.cardinal-components-api:cardinal-components-entity", version.ref = "cca" } +cloth-fabric = { module = "me.shedaniel.cloth:cloth-config-fabric", version.ref = "cloth" } +cloth-neoforge = { module = "me.shedaniel.cloth:cloth-config-neoforge", version.ref = "cloth" } +curios-neoforge = { module = "top.theillusivec4.curios:curios-neoforge", version.ref = "curios-neoforge" } +fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-api" } +fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" } +forge-config-api-port-fabric = { module = "fuzs.forgeconfigapiport:forgeconfigapiport-fabric", version.ref = "forge-config-api-port-fabric" } +forgified-fabric-api = { module = "org.sinytra.forgified-fabric-api:forgified-fabric-api", version.ref = "forgified-fabric-api" } +jade-fabric = { module = "maven.modrinth:jade", version.ref = "jade-fabric" } +jei-fabric = { module = "mezz.jei:jei-26.2-fabric", version.ref = "jei" } +jei-neoforge = { module = "mezz.jei:jei-26.2-neoforge", version.ref = "jei" } +map-atlases = { module = "curse.maven:map-atlases-forge-519759", version.ref = "map-atlases" } +modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" } +neoforge = { module = "net.neoforged:neoforge", version.ref = "neoforge" } +ohmega-fabric = { module = "io.github.swackyy:ohmega-fabric", version.ref = "ohmega" } +ohmega-neoforge = { module = "io.github.swackyy:ohmega-neoforge", version.ref = "ohmega" } +porting-lib-transfer = { module = "io.github.fabricators_of_create.Porting-Lib:transfer", version.ref = "porting-lib-transfer" } +rrv-fabric = { module = "cc.cassian.rrv:reliable-recipe-viewer-fabric", version.ref = "rrv" } +rrv-neoforge = { module = "cc.cassian.rrv:reliable-recipe-viewer-neoforge", version.ref = "rrv" } +satchels = { module = "maven.modrinth:satchel", version.ref = "satchels" } +sophisticated-backpacks-fabric = { module = "maven.modrinth:sophisticated-backpacks", version.ref = "sophisticated-backpacks-fabric" } +sophisticated-backpacks-neoforge = { module = "maven.modrinth:sophisticated-backpacks", version.ref = "sophisticated-backpacks-neoforge" } +sophisticated-core-fabric = { module = "maven.modrinth:sophisticated-core", version.ref = "sophisticated-core-fabric" } +sophisticated-core-neoforge = { module = "maven.modrinth:sophisticated-core", version.ref = "sophisticated-core-neoforge" } +trashslot = { module = "maven.modrinth:trashslot", version.ref = "trashslot" } +travelers-backpack-fabric = { module = "maven.modrinth:travelersbackpack", version.ref = "travelers-backpack-fabric" } +travelers-backpack-neoforge = { module = "maven.modrinth:travelersbackpack", version.ref = "travelers-backpack-neoforge" } +trinkets = { module = "eu.pb4:trinkets", version.ref = "trinkets" } +yacl-fabric = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl-fabric" } +yacl-neoforge = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl-neoforge" } diff --git a/gradle/minecraft/26.3.versions.toml b/gradle/minecraft/26.3.versions.toml index a7fd6ea..d805f61 100644 --- a/gradle/minecraft/26.3.versions.toml +++ b/gradle/minecraft/26.3.versions.toml @@ -15,10 +15,10 @@ jei = "31.9.0.57" map-atlases = "6345967" modmenu = "21.0.0-alpha.1" neoforge = "26.3.0.33-beta" -ohmega-fabric = "1.5.19-mc26.2" -ohmega-neoforge = "1.5.21-mc26.3" +ohmega = "1.5.19-mc26.2" porting-lib-transfer = "2.3.9+1.20.1" rrv = "8.10.9+26.3" +satchels = "1.7" sophisticated-backpacks-fabric = "26.1.2-3.25.55.1739" sophisticated-backpacks-neoforge = "26.2-3.25.77.1959" sophisticated-core-fabric = "26.1.2-1.4.45.1849" @@ -26,8 +26,7 @@ sophisticated-core-neoforge = "26.2-1.4.75.2101" trashslot = "Kq3z6gII" travelers-backpack-fabric = "26.1.2-11.2.6" travelers-backpack-neoforge = "26.1.2-11.2.4-neoforge" -trinkets-fabric = "4.1.0-beta.1+26.2" -trinkets-neoforge = "4.2.1+26.3" +trinkets = "4.2.1+26.3" yacl-fabric = "3.9.6+26.3-fabric" yacl-neoforge = "3.9.7+26.3-neoforge" @@ -51,11 +50,12 @@ jei-neoforge = { module = "mezz.jei:jei-26.3-neoforge", version.ref = "jei" } map-atlases = { module = "curse.maven:map-atlases-forge-519759", version.ref = "map-atlases" } modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" } neoforge = { module = "net.neoforged:neoforge", version.ref = "neoforge" } -ohmega-fabric = { module = "io.github.swackyy:ohmega-fabric", version.ref = "ohmega-fabric" } -ohmega-neoforge = { module = "io.github.swackyy:ohmega-neoforge", version.ref = "ohmega-neoforge" } +ohmega-fabric = { module = "io.github.swackyy:ohmega-fabric", version.ref = "ohmega" } +ohmega-neoforge = { module = "io.github.swackyy:ohmega-neoforge", version.ref = "ohmega" } porting-lib-transfer = { module = "io.github.fabricators_of_create.Porting-Lib:transfer", version.ref = "porting-lib-transfer" } rrv-fabric = { module = "cc.cassian.rrv:reliable-recipe-viewer-fabric", version.ref = "rrv" } rrv-neoforge = { module = "cc.cassian.rrv:reliable-recipe-viewer-neoforge", version.ref = "rrv" } +satchels = { module = "maven.modrinth:satchel", version.ref = "satchels" } sophisticated-backpacks-fabric = { module = "maven.modrinth:sophisticated-backpacks", version.ref = "sophisticated-backpacks-fabric" } sophisticated-backpacks-neoforge = { module = "maven.modrinth:sophisticated-backpacks", version.ref = "sophisticated-backpacks-neoforge" } sophisticated-core-fabric = { module = "maven.modrinth:sophisticated-core", version.ref = "sophisticated-core-fabric" } @@ -63,7 +63,6 @@ sophisticated-core-neoforge = { module = "maven.modrinth:sophisticated-core", ve trashslot = { module = "maven.modrinth:trashslot", version.ref = "trashslot" } travelers-backpack-fabric = { module = "maven.modrinth:travelersbackpack", version.ref = "travelers-backpack-fabric" } travelers-backpack-neoforge = { module = "maven.modrinth:travelersbackpack", version.ref = "travelers-backpack-neoforge" } -trinkets-fabric = { module = "eu.pb4:trinkets", version.ref = "trinkets-fabric" } -trinkets-neoforge = { module = "eu.pb4:trinkets", version.ref = "trinkets-neoforge" } +trinkets = { module = "eu.pb4:trinkets", version.ref = "trinkets" } yacl-fabric = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl-fabric" } yacl-neoforge = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl-neoforge" } diff --git a/mru/build.fabric.gradle.kts b/mru/build.fabric.gradle.kts index fc4973c..5b2c4c0 100644 --- a/mru/build.fabric.gradle.kts +++ b/mru/build.fabric.gradle.kts @@ -26,9 +26,10 @@ dependencies { compileOnly(mcLibrary("jade-fabric")) compileOnly(mcLibrary("cca-entity")) compileOnly(mcLibrary("cca-base")) - compileOnly(mcLibrary("trinkets-fabric")) + compileOnly(mcLibrary("trinkets")) compileOnly(mcLibrary("ohmega-fabric")) compileOnly(mcLibrary("forge-config-api-port-fabric")) + compileOnly(mcLibrary("satchels")) runtimeOnly(mcLibrary("cloth-fabric")) runtimeOnly(mcLibrary("yacl-fabric")) diff --git a/mru/build.neoforge.gradle.kts b/mru/build.neoforge.gradle.kts index 9537c1d..747e574 100644 --- a/mru/build.neoforge.gradle.kts +++ b/mru/build.neoforge.gradle.kts @@ -19,11 +19,13 @@ dependencies { compileOnly(mcLibrary("accessories-neoforge")) compileOnly(variantOf(mcLibrary("curios-neoforge")) { classifier("api") }) compileOnly(mcLibrary("ohmega-neoforge")) - compileOnly(mcLibrary("trinkets-neoforge")) + compileOnly(mcLibrary("trinkets")) compileOnly(mcLibrary("travelers-backpack-neoforge")) compileOnly(mcLibrary("sophisticated-core-neoforge")) compileOnly(mcLibrary("sophisticated-backpacks-neoforge")) + compileOnly(mcLibrary("satchels")) compileOnly(mcLibrary("forgified-fabric-api")) + runtimeOnly(mcLibrary("yacl-neoforge")) } diff --git a/mru/src/main/java/cc/cassian/mru/compat/ModCompat.java b/mru/src/main/java/cc/cassian/mru/compat/ModCompat.java index 4e0b1bd..90ab515 100644 --- a/mru/src/main/java/cc/cassian/mru/compat/ModCompat.java +++ b/mru/src/main/java/cc/cassian/mru/compat/ModCompat.java @@ -27,6 +27,11 @@ public class ModCompat { * Multiplatform */ public static boolean OHMEGA = Platform.INSTANCE.isLoaded("ohmega"); + /** + * Satchels - used for detecting overlays in satchel slots. + * Fabric + */ + public static boolean SATCHELS = Platform.INSTANCE.isLoaded("satchels"); /** * Sophisticated Backpacks - used for detecting overlays in backpack slots. */ diff --git a/mru/src/main/java/cc/cassian/mru/compat/SatchelsCompat.java b/mru/src/main/java/cc/cassian/mru/compat/SatchelsCompat.java new file mode 100644 index 0000000..6827017 --- /dev/null +++ b/mru/src/main/java/cc/cassian/mru/compat/SatchelsCompat.java @@ -0,0 +1,20 @@ +package cc.cassian.mru.compat; + +import net.minecraft.core.component.DataComponentMap; +import net.minecraft.world.item.ItemStack; +import net.rose.satchels.common.init.ModDataComponents; + +import java.util.stream.Stream; + +public class SatchelsCompat { + public static Stream getContents(DataComponentMap components) { + if (isSatchel(components)) { + return components.get(ModDataComponents.SATCHEL_CONTENTS).stacks().stream(); + } + return Stream.empty(); + } + + public static boolean isSatchel(DataComponentMap stack) { + return stack.has(ModDataComponents.SATCHEL_CONTENTS); + } +} diff --git a/mru/src/main/java/cc/cassian/mru/util/ItemContainerUtils.java b/mru/src/main/java/cc/cassian/mru/util/ItemContainerUtils.java index 2852cd0..dc94d2a 100644 --- a/mru/src/main/java/cc/cassian/mru/util/ItemContainerUtils.java +++ b/mru/src/main/java/cc/cassian/mru/util/ItemContainerUtils.java @@ -1,5 +1,6 @@ package cc.cassian.mru.util; +import cc.cassian.mru.compat.SatchelsCompat; import cc.cassian.mru.compat.*; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.Item; @@ -145,15 +146,11 @@ else if (isContainer(stack)) { return ItemStack.EMPTY; } - - - /** - * Checks if an item is a bundle, shulker box, generic backpack that uses a vanilla component, Traveler's Backpack, or Sophisticated Backpack. + * Checks if an item is a bundle, shulker box, generic backpack that uses a vanilla component, Traveler's Backpack, Sophisticated Backpack, or Satchel. */ public static boolean isContainer(ItemStack stack) { if (stack.isEmpty()) return false; - //? if >1.20.5 { var components = stack.getComponents(); if (components.has(DataComponents.BUNDLE_CONTENTS)) { return true; @@ -161,31 +158,18 @@ public static boolean isContainer(ItemStack stack) { else if (components.has(DataComponents.CONTAINER)) { return true; } - //?} else { - /*CompoundTag compoundtag = stack.getTag(); - if (compoundtag == null) { - return false; - } else { - if (compoundtag.contains("Items")) { - return true; - } - else if (compoundtag.contains("BlockEntityTag")) { - if (compoundtag.getCompound("BlockEntityTag").contains("Items")) { - return true; - } - } - } - *///?} + else if (ModCompat.SATCHELS && SatchelsCompat.isSatchel(components)) { + return true; + } return true; } /** - * Checks the contents of a bundle, shulker box, generic backpack that uses a vanilla component, Traveler's Backpack, or Sophisticated Backpack. + * Checks the contents of a bundle, shulker box, generic backpack that uses a vanilla component, Traveler's Backpack, Sophisticated Backpack, or Satchel. */ public static Stream getContainerContents(ItemStack stack) { if (!isContainer(stack)) return Stream.empty(); - //? if >1.20.5 { var components = stack.getComponents(); if (components.has(DataComponents.BUNDLE_CONTENTS)) { BundleContents bundleContents = components.get(DataComponents.BUNDLE_CONTENTS); @@ -206,22 +190,9 @@ else if (components.has(DataComponents.CONTAINER)) { *///?} } } - //?} else { - /*CompoundTag compoundtag = stack.getTag(); - if (compoundtag == null) { - return Stream.empty(); - } else { - if (compoundtag.contains("Items")) { - ListTag listtag = compoundtag.getList("Items", 10); - return listtag.stream().map(CompoundTag.class::cast).map(ItemStack::of); - } - else if (compoundtag.contains("BlockEntityTag")) { - var compound = compoundtag.getCompound("BlockEntityTag"); - ListTag listtag = compound.getList("Items", 10); - return listtag.stream().map(CompoundTag.class::cast).map(ItemStack::of); - } - } - *///?} + else if (ModCompat.SATCHELS) { + return SatchelsCompat.getContents(components); + } return Stream.empty(); } @@ -230,11 +201,8 @@ else if (compoundtag.contains("BlockEntityTag")) { * Multi-version safe version of {@code Inventory#getNonEquipmentItems}. */ public static List items(Inventory inventory) { - return - //? if <1.21.5 { - /*inventory.items; - *///?} else { - inventory.getNonEquipmentItems(); - //?} + //~ if >1.21.5 'items'->'getNonEquipmentItems()' { + return inventory.getNonEquipmentItems(); + //~} } } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 32c4f3d..a54f069 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,7 +19,7 @@ rootProject.name = "JavaEditionMods" val modTargets = mapOf( "fog" to listOf("26.1.2", "26.3"), - "mru" to listOf("26.1.2", "26.3"), + "mru" to listOf("26.1.2", "26.2", "26.3"), "sounds" to listOf("26.1.2", "26.3"), "shields" to listOf("26.3") )