From 86034ca71f28a1d8bd2c78820d8b0261fd319948 Mon Sep 17 00:00:00 2001 From: koka Date: Sat, 29 Aug 2026 19:41:04 +0200 Subject: [PATCH] release: prepare 26.2.0-alpha.212 --- CHANGELOG.md | 5 +- README.md | 4 +- build.gradle | 218 ++++++++++++------ gradle.properties | 2 +- ...1-black-market-mixin-fix-to-alpha.212.json | 34 +++ pack/packwiz/index.toml | 22 +- pack/packwiz/pack.toml | 4 +- pack/prism/modrinth.index.json | 2 +- pack/release.json | 4 +- 9 files changed, 199 insertions(+), 96 deletions(-) create mode 100644 pack/migrations/26.2.0-alpha.211-black-market-mixin-fix-to-alpha.212.json diff --git a/CHANGELOG.md b/CHANGELOG.md index e4de0b3..48e72cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,12 +6,13 @@ Ce journal suit les **versions du modpack**. Lorsqu'un seul module change, sa ve - Depuis `26.2.0-alpha.6`, le pack et les modules ont des versions indépendantes. I Like To Move It et Only Fun deviennent les cinquième et sixième modules actifs dans l'alpha 46. - Les versions ci-dessous ont été reconstituées à partir des JAR archivés, des packs locaux et du code source actuel. Les dates n'étant pas enregistrées de manière fiable, elles ne sont pas inventées. -## Non distribué +## `26.2.0-alpha.212` -Module modifié : **Sanctuary `0.0.0-alpha.120`**. Le pack public reste temporairement en `26.2.0-alpha.210` jusqu'à la publication du correctif. +Module modifié : **Sanctuary `0.0.0-alpha.120`**. Les neuf autres modules conservent leur version issue de l'alpha.211. - corrige le crash client au démarrage provoqué par le mixin du clic molette du Black Market sous Minecraft 26.2 ; - cible désormais la méthode vanilla `pickBlockOrEntity`, sans modifier les données Sanctuary v11 ni le protocole réseau 22. +- remplace le JAR Sanctuary cassé dans Packwiz et le `.mrpack` partagé client/serveur, sans exiger de nouveau monde ni réinitialiser les sauvegardes. ## `26.2.0-alpha.211` diff --git a/README.md b/README.md index a575b2e..4a5bd9b 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,11 @@ Licence : **GNU GPL 3.0 or Later** (`GPL-3.0-or-later`) Les descriptions FR/EN/RU sont déclarées dans chaque `fabric.mod.json` et dans les fichiers de langue. Les images fournies servent d'icônes Fabric de leur module. -Version courante du pack distribué : **`26.2.0-alpha.211`**. Cette release distribue Ambiance **`0.0.0-alpha.15`**, It's Alive **`0.0.0-alpha.36`**, Only Fun **`0.0.0-alpha.24`**, Ouch **`0.0.0-alpha.10`** et Sanctuary **`0.0.0-alpha.119`**. +Version courante du pack distribué : **`26.2.0-alpha.212`**. Cette release corrective distribue Sanctuary **`0.0.0-alpha.120`** ; les neuf autres modules conservent leur version issue de l'alpha.211. La migration [CANA-01 à CANA-09](CANAPLIA.md) porte Canaplia vers Minecraft 26.2. It's Alive **`0.0.0-alpha.35`** enregistre les seize familles, les découvertes, hybridations, résines, effets serveur et le Livre interdit personnel, partageable temporairement sur un pupitre. Ambiance **`0.0.0-alpha.14`** compose les profils visuels bornés avec ses réglages d'accessibilité, et Only Fun **`0.0.0-alpha.21`** exclut explicitement Canaplia et les raccourcis de progression du Shop. -L’alpha.211 restaure l’affichage vanilla du Livre interdit, le clic molette du Black Market et le disque blanc YouTube. Elle réintègre aussi Abjection dans Only Fun et Ouch avec ses commandes, son bloc, sa boule lançable et la touche configurable `J`. Les packs Modrinth, Prism et Packwiz sont mis à jour sans exiger de nouveau monde ni réinitialiser les sauvegardes. +L’alpha.212 corrige le crash client au démarrage du clic molette du Black Market en ciblant la méthode vanilla Minecraft 26.2 correcte. Les packs Modrinth, Prism et Packwiz sont mis à jour sans exiger de nouveau monde ni réinitialiser les sauvegardes. L’alpha.207 rend le stockage du coffre-fort pratiquement illimité : rubis, saphirs et émeraudes utilisent chacun un solde 64 bits. Les 27 anciennes piles sont additionnées automatiquement lors du chargement, le Shop continue de consommer directement ces soldes et les 20 % pillés sont crédités dans le coffre-fort de l’attaquant sans créer des millions d’entités ou de piles d’objets. diff --git a/build.gradle b/build.gradle index fe9311a..376e4a5 100644 --- a/build.gradle +++ b/build.gradle @@ -3437,7 +3437,7 @@ tasks.register("verifyProgressivePauseMenuRelease") { [(locale): new JsonSlurper().parse(file( "sanctuary/src/main/resources/assets/sanctuary/lang/${locale}.json"))] } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.sanctuary_version != "0.0.0-alpha.120" || rootProject.onlyfun_version != "0.0.0-alpha.24" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -3487,7 +3487,7 @@ tasks.register("verifyMirrorLavenderDrawerRelease") { def redStonerRegistry = file( "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/registry/RedStonerRegistries.java").text def drawerRecipe = file("redstoner/src/main/resources/data/redstoner/recipe/drawer.json") - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || rootProject.redstoner_version != "0.0.0-alpha.10" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -4206,7 +4206,7 @@ tasks.register("verifyShopPricingLayoutRelease") { "pack/migrations/26.2.0-alpha.192-shop-pricing-layout-to-alpha.193.json")) def release = new JsonSlurper().parse(file("pack/release.json")) def index = new JsonSlurper().parse(file("pack/prism/modrinth.index.json")) - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.onlyfun_version != "0.0.0-alpha.24" || rootProject.sanctuary_version != "0.0.0-alpha.120" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -4251,7 +4251,7 @@ tasks.register("verifyCuisineCropsRelease") { def climate = file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/ClimateCropForaging.java").text def rice = file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/RiceCropBlock.java").text def bean = file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/BeanCropBlock.java").text - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.itsalive_version != "0.0.0-alpha.36" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.193" @@ -4300,7 +4300,7 @@ tasks.register("verifyShopCsvBossGatesRelease") { def bossGate = file("onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/shop/OnlyFunBossShopGate.java").text def catalog = file("onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/shop/OnlyFunShopCatalog.java").text def offerCatalog = file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopOfferCatalog.java").text - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.onlyfun_version != "0.0.0-alpha.24" || rootProject.sanctuary_version != "0.0.0-alpha.120" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -4346,7 +4346,7 @@ tasks.register("verifyCulinaryMailboxGrappleFixesRelease") { def release = new JsonSlurper().parse(file("pack/release.json")) def prism = new JsonSlurper().parse(file("pack/prism/modrinth.index.json")) def packwiz = file("pack/packwiz/pack.toml").text - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || migration.source?.pack_version != "26.2.0-alpha.195" || migration.target?.pack_version != "26.2.0-alpha.196" || migration.target?.modules != [ @@ -4364,10 +4364,10 @@ tasks.register("verifyCulinaryMailboxGrappleFixesRelease") { || migration.distribution?.jei?.target != "30.26.0.182" || migration.compatibility?.save_migration_required != false || migration.compatibility?.registry_ids_changed != false - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"')) { + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"')) { throw new GradleException("The alpha.196 culinary, mailbox and grapple release contract is incomplete") } } @@ -4392,7 +4392,7 @@ tasks.register("verifyQuestRequestsCauldronBatchesRelease") { def prism = new JsonSlurper().parse(file("pack/prism/modrinth.index.json")) def packwiz = file("pack/packwiz/pack.toml").text def sanctuaryManifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.sanctuary_version != "0.0.0-alpha.120" || migration.source?.pack_version != "26.2.0-alpha.196" @@ -4412,10 +4412,10 @@ tasks.register("verifyQuestRequestsCauldronBatchesRelease") { || migration.distribution?.jei?.target != "30.26.0.186" || migration.compatibility?.sanctuary_target_network_protocol != 19 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 22 - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"')) { + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"')) { throw new GradleException("The alpha.197 quest-request and cauldron-batch release contract is incomplete") } } @@ -4442,7 +4442,7 @@ tasks.register("verifyFermentationBarrelAutomationRelease") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def itsAliveManifest = new JsonSlurper().parse(file("itsalive/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.itsalive_version != "0.0.0-alpha.36" || migration.source?.pack_version != "26.2.0-alpha.197" || migration.target?.pack_version != "26.2.0-alpha.198" @@ -4461,10 +4461,10 @@ tasks.register("verifyFermentationBarrelAutomationRelease") { || migration.distribution?.packwiz_index_refreshed != true || itsAliveManifest.custom?.sanctuary26?.data_version != 3 || itsAliveManifest.custom?.sanctuary26?.network_protocol != 4 - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"') + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.36.jar"')) { throw new GradleException("The alpha.198 fermentation barrel release contract is incomplete") } @@ -4492,7 +4492,7 @@ tasks.register("verifyQuestRequestContractsRelease") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def sanctuaryManifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.sanctuary_version != "0.0.0-alpha.120" || migration.source?.pack_version != "26.2.0-alpha.198" @@ -4506,12 +4506,12 @@ tasks.register("verifyQuestRequestContractsRelease") { || migration.quest_request_contracts?.chat_accept_revalidates_distance_owner_sign_and_claim != true || migration.compatibility?.sanctuary_target_network_protocol != 20 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 22 - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"') + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.36.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.119.jar"')) { + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.120.jar"')) { throw new GradleException("The alpha.199 quest-request contract release is incomplete") } } @@ -4547,7 +4547,7 @@ tasks.register("verifyWeatherTntAmbianceRelease") { def ambianceManifest = new JsonSlurper().parse(file("ambiance/src/main/resources/fabric.mod.json")) def ouchManifest = new JsonSlurper().parse(file("ouch/src/main/resources/fabric.mod.json")) def rootBuild = file("build.gradle").text - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.ambiance_version != "0.0.0-alpha.15" || rootProject.ouch_version != "0.0.0-alpha.10" || migration.source?.pack_version != "26.2.0-alpha.199" @@ -4581,10 +4581,10 @@ tasks.register("verifyWeatherTntAmbianceRelease") { || !weatherTnt.contains("AmbianceDailyWeather.CLEAR") || !weatherTnt.contains("CLEAR_WEATHER_TICKS = 864_000") || weatherTnt.contains("setWeatherParameters") - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"') + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.15.jar"') || !packwizIndex.contains('file = "mods/ouch-0.0.0-alpha.10.jar"')) { throw new GradleException("The alpha.200 Weather TNT and Ambiance release is incomplete") @@ -4613,7 +4613,7 @@ tasks.register("verifyQuestRequestEscrowRelease") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def sanctuaryManifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.sanctuary_version != "0.0.0-alpha.120" || migration.source?.pack_version != "26.2.0-alpha.200" || migration.source?.modules?.sanctuary != "0.0.0-alpha.115" @@ -4628,11 +4628,11 @@ tasks.register("verifyQuestRequestEscrowRelease") { || migration.compatibility?.sanctuary_target_network_protocol != 21 || sanctuaryManifest.custom?.sanctuary26?.data_version != 11 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 22 - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.119.jar"')) { + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.120.jar"')) { throw new GradleException("The alpha.201 quest-request escrow release is incomplete") } } @@ -4667,7 +4667,7 @@ tasks.register("verifyWaystoneShopCulinaryAlpha202Release") { "iliketomoveit/src/main/resources/fabric.mod.json")) def sanctuaryManifest = new JsonSlurper().parse(file( "sanctuary/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.iliketomoveit_version != "0.0.0-alpha.15" @@ -4707,14 +4707,14 @@ tasks.register("verifyWaystoneShopCulinaryAlpha202Release") { || moveItManifest.custom?.sanctuary26?.network_protocol != 5 || sanctuaryManifest.custom?.sanctuary26?.data_version != 11 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 22 - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"') + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.36.jar"') || !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.15.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.119.jar"')) { + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.120.jar"')) { throw new GradleException("The alpha.202 Waystone, Shop and culinary lectern release is incomplete") } } @@ -4827,7 +4827,7 @@ tasks.register("verifySafeVaultFeature") { def image = javax.imageio.ImageIO.read(file("anotherworld/src/main/resources/assets/anotherworld/textures/${path}")) image == null || image.width != size[0] || image.height != size[1] }.keySet() - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || rootProject.sanctuary_version != "0.0.0-alpha.120" || migration.schema_version != 1 @@ -5019,7 +5019,7 @@ tasks.register("verifySafeVaultInterfaceAlpha203Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || migration.source?.pack_version != "26.2.0-alpha.202" || migration.source?.modules != [anotherworld: "0.0.0-alpha.50"] @@ -5037,9 +5037,9 @@ tasks.register("verifySafeVaultInterfaceAlpha203Release") { || migration.distribution?.jei?.modrinth_version_id != "XXTFqqwG" || migration.distribution?.jei?.prism_manifest_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.50.jar"') || jeiFiles.size() != 1 @@ -5065,7 +5065,7 @@ tasks.register("verifySafeVaultFixAlpha204Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || migration.source?.pack_version != "26.2.0-alpha.203" || migration.source?.modules != [anotherworld: "0.0.0-alpha.51"] @@ -5091,9 +5091,9 @@ tasks.register("verifySafeVaultFixAlpha204Release") { || migration.distribution?.jei?.modrinth_version_id != "OcMayhUH" || migration.distribution?.jei?.prism_manifest_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.51.jar"') || jeiFiles.size() != 1 @@ -5119,7 +5119,7 @@ tasks.register("verifySafeVaultCubeAlpha205Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || migration.source?.pack_version != "26.2.0-alpha.204" || migration.source?.modules != [anotherworld: "0.0.0-alpha.52"] @@ -5148,9 +5148,9 @@ tasks.register("verifySafeVaultCubeAlpha205Release") { || migration.distribution?.jei?.modrinth_version_id != "NtfJDMhk" || migration.distribution?.jei?.prism_manifest_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.52.jar"') || jeiFiles.size() != 1 @@ -5177,7 +5177,7 @@ tasks.register("verifySafeVaultCtmAlpha206Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || migration.source?.pack_version != "26.2.0-alpha.205" || migration.source?.modules != [anotherworld: "0.0.0-alpha.53"] @@ -5200,9 +5200,9 @@ tasks.register("verifySafeVaultCtmAlpha206Release") { || migration.compatibility?.pack_release_updated != true || migration.distribution?.packwiz_index_refreshed != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.53.jar"') || jeiFiles.size() != 1 @@ -5229,7 +5229,7 @@ tasks.register("verifySafeVaultUnlimitedAlpha207Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.anotherworld_version != "0.0.0-alpha.55" || migration.source?.pack_version != "26.2.0-alpha.206" || migration.source?.modules != [anotherworld: "0.0.0-alpha.54"] @@ -5259,9 +5259,9 @@ tasks.register("verifySafeVaultUnlimitedAlpha207Release") { || migration.compatibility?.pack_release_updated != true || migration.distribution?.packwiz_index_refreshed != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.54.jar"') || jeiFiles.size() != 1 @@ -5317,7 +5317,7 @@ tasks.register("verifyCanapliaFoundation") { "itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/ItsAliveMod.java").text def visualApiSource = file( "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/api/visual/AmbianceVisualEffectApi.java").text - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.ambiance_version != "0.0.0-alpha.15" || migration.issue != 35 @@ -5385,6 +5385,7 @@ tasks.named("verifyWorkspace") { dependsOn "verifyCanapliaAlpha209Release" dependsOn "verifyAlpha210Release" dependsOn "verifyAlpha211Release" + dependsOn "verifyAlpha212Release" dependsOn tasks.named("verifyWaystoneShopCulinaryAlpha202Release") dependsOn tasks.named("verifySafeVaultFeature") dependsOn tasks.named("verifySafeVaultInterfaceAlpha203Release") @@ -5568,7 +5569,7 @@ tasks.register("verifyCanapliaAlpha209Release") { ambiance: "0.0.0-alpha.14", itsalive: "0.0.0-alpha.33", onlyfun: "0.0.0-alpha.20"] - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.ambiance_version != "0.0.0-alpha.15" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.onlyfun_version != "0.0.0-alpha.24" @@ -5616,9 +5617,9 @@ tasks.register("verifyCanapliaAlpha209Release") { || fixMigration.compatibility?.network_protocol_changed != false || fixMigration.distribution?.pack_release_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.15.jar"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.36.jar"') || !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.24.jar"') @@ -5670,7 +5671,7 @@ tasks.register("verifyAlpha210Release") { itsalive: "0.0.0-alpha.35"] def currentModules = [ ambiance: "0.0.0-alpha.15", - sanctuary: "0.0.0-alpha.119", + sanctuary: "0.0.0-alpha.120", onlyfun: "0.0.0-alpha.24", ouch: "0.0.0-alpha.10", iliketomoveit: "0.0.0-alpha.15", @@ -5686,7 +5687,7 @@ tasks.register("verifyAlpha210Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || rootProject.sanctuary_version != "0.0.0-alpha.120" || rootProject.onlyfun_version != "0.0.0-alpha.24" || rootProject.iliketomoveit_version != expectedTarget.iliketomoveit @@ -5732,10 +5733,10 @@ tasks.register("verifyAlpha210Release") { || manifests.iliketomoveit.custom?.sanctuary26?.network_protocol != 5 || manifests.itsalive.custom?.sanctuary26?.data_version != 3 || manifests.itsalive.custom?.sanctuary26?.network_protocol != 4 - || release.pack_version != "26.2.0-alpha.211" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" - || prism.versionId != "26.2.0-alpha.211" - || !packwiz.contains('version = "26.2.0-alpha.211"') + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || !packwiz.contains('version = "26.2.0-alpha.212"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || jeiFiles.size() != 1 @@ -5793,10 +5794,12 @@ tasks.register("verifyAlpha211Release") { def manifestProtocols = manifests.collectEntries { id, manifest -> [(id): manifest.custom?.sanctuary26?.network_protocol] } - def requiredJars = expectedTarget.collect { id, version -> + def requiredJars = currentModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - def obsoleteJars = expectedSource.collect { id, version -> + def obsoleteJars = expectedTarget.findAll { id, version -> + currentModules[id] != version + }.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } def expectedIds = [ @@ -5804,7 +5807,7 @@ tasks.register("verifyAlpha211Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" } - if (rootProject.pack_version != "26.2.0-alpha.211" + if (rootProject.pack_version != "26.2.0-alpha.212" || currentModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.source?.pack_version != "26.2.0-alpha.210" || migration.source?.modules != expectedSource @@ -5832,9 +5835,9 @@ tasks.register("verifyAlpha211Release") { || migration.distribution?.prism_modrinth_index_updated != true || migration.distribution?.shared_client_server_mrpack != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.211.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.211"') + || !packwiz.contains('version = "26.2.0-alpha.212"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || prism.files?.size() != 5 @@ -5842,12 +5845,77 @@ tasks.register("verifyAlpha211Release") { || jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3" || jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468" || !changelog.contains("## `26.2.0-alpha.211`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.211`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.212`**")) { throw new GradleException("The alpha.211 Abjection and gameplay-polish release is incomplete") } } } +tasks.register("verifyAlpha212Release") { + group = "verification" + description = "Checks the Sanctuary 26.2.0-alpha.212 Black Market startup fix release." + inputs.file(file("pack/migrations/26.2.0-alpha.211-black-market-mixin-fix-to-alpha.212.json")) + inputs.file(file("pack/release.json")) + inputs.file(file("pack/prism/modrinth.index.json")) + inputs.file(file("pack/packwiz/pack.toml")) + inputs.file(file("pack/packwiz/index.toml")) + inputs.file(file("CHANGELOG.md")) + inputs.file(file("README.md")) + inputs.file(file("sanctuary/src/main/resources/fabric.mod.json")) + inputs.file(file( + "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/client/MinecraftMixin.java")) + doLast { + def migration = new JsonSlurper().parse(file( + "pack/migrations/26.2.0-alpha.211-black-market-mixin-fix-to-alpha.212.json")) + def release = new JsonSlurper().parse(file("pack/release.json")) + def prism = new JsonSlurper().parse(file("pack/prism/modrinth.index.json")) + def packwiz = file("pack/packwiz/pack.toml").text + def packwizIndex = file("pack/packwiz/index.toml").text + def changelog = file("CHANGELOG.md").text + def readme = file("README.md").text + def manifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json")) + def minecraftMixin = file( + "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/client/MinecraftMixin.java").text + def jeiFiles = prism.files.findAll { + it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" + } + if (rootProject.pack_version != "26.2.0-alpha.212" + || rootProject.sanctuary_version != "0.0.0-alpha.120" + || migration.source?.pack_version != "26.2.0-alpha.211" + || migration.source?.modules != [sanctuary: "0.0.0-alpha.119"] + || migration.target?.pack_version != "26.2.0-alpha.212" + || migration.target?.modules != [sanctuary: "0.0.0-alpha.120"] + || migration.features?.black_market_middle_click_preserved != true + || migration.features?.minecraft_mixin_target != "pickBlockOrEntity" + || migration.features?.client_startup_crash_fixed != true + || migration.compatibility?.new_world_required != false + || migration.compatibility?.save_reset_required != false + || migration.compatibility?.existing_saves_supported != true + || migration.compatibility?.registry_ids_changed != false + || migration.compatibility?.sanctuary_data_version != 11 + || migration.compatibility?.sanctuary_network_protocol != 22 + || migration.distribution?.pack_release_updated != true + || migration.distribution?.packwiz_index_refreshed != true + || migration.distribution?.prism_modrinth_index_updated != true + || migration.distribution?.shared_client_server_mrpack != true + || manifest.custom?.sanctuary26?.data_version != 11 + || manifest.custom?.sanctuary26?.network_protocol != 22 + || !minecraftMixin.contains('method = "pickBlockOrEntity"') + || release.pack_version != "26.2.0-alpha.212" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.212.mrpack" + || prism.versionId != "26.2.0-alpha.212" + || prism.files?.size() != 5 + || jeiFiles.size() != 1 + || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.120.jar"') + || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.119.jar"') + || !changelog.contains("## `26.2.0-alpha.212`") + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.212`**")) { + throw new GradleException("The alpha.212 Black Market startup-fix release is incomplete") + } + } +} + tasks.named("check") { dependsOn tasks.named("verifyWorkspace") dependsOn tasks.named("verifyTransport") diff --git a/gradle.properties b/gradle.properties index 0c35a20..113ebd9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,5 +30,5 @@ onlyfun_version=0.0.0-alpha.24 onlyfun_lifecycle=active sanctuary_version=0.0.0-alpha.120 sanctuary_lifecycle=active -pack_version=26.2.0-alpha.211 +pack_version=26.2.0-alpha.212 maven_group=fr.koka99cab.sanctuary26 diff --git a/pack/migrations/26.2.0-alpha.211-black-market-mixin-fix-to-alpha.212.json b/pack/migrations/26.2.0-alpha.211-black-market-mixin-fix-to-alpha.212.json new file mode 100644 index 0000000..1b43600 --- /dev/null +++ b/pack/migrations/26.2.0-alpha.211-black-market-mixin-fix-to-alpha.212.json @@ -0,0 +1,34 @@ +{ + "schema_version": 1, + "source": { + "pack_version": "26.2.0-alpha.211", + "modules": { + "sanctuary": "0.0.0-alpha.119" + } + }, + "target": { + "pack_version": "26.2.0-alpha.212", + "modules": { + "sanctuary": "0.0.0-alpha.120" + } + }, + "features": { + "black_market_middle_click_preserved": true, + "minecraft_mixin_target": "pickBlockOrEntity", + "client_startup_crash_fixed": true + }, + "compatibility": { + "new_world_required": false, + "save_reset_required": false, + "existing_saves_supported": true, + "registry_ids_changed": false, + "sanctuary_data_version": 11, + "sanctuary_network_protocol": 22 + }, + "distribution": { + "pack_release_updated": true, + "packwiz_index_refreshed": true, + "prism_modrinth_index_updated": true, + "shared_client_server_mrpack": true + } +} diff --git a/pack/packwiz/index.toml b/pack/packwiz/index.toml index e8d763a..031409d 100644 --- a/pack/packwiz/index.toml +++ b/pack/packwiz/index.toml @@ -14,15 +14,15 @@ hash = "41f4f4c88c71d0a23446d5014f7407d55ad477441847099cad24492b032335a0" [[files]] file = "mods/ambiance-0.0.0-alpha.15.jar" -hash = "9f44adea1973a944afc781b3bf0ad57a154e1d89512b42ba51f2b4f1a0757802" +hash = "384f49a23c3c84912a307a87955ce9c3c6853a1aa50d3e09435aac28f40e84bd" [[files]] file = "mods/anotherworld-0.0.0-alpha.55.jar" -hash = "3a1553ab4f86506e8bab35bada0ebb455bc0b1530c9a09a408fcd530f4344f59" +hash = "577d947c22e2dc7ec803d69db822cdd04bc17d2ec2c853ea547ea7ea7a30fea1" [[files]] file = "mods/events-0.0.0-alpha.0.jar" -hash = "a32ecb24f57efab1a5edc37ca84b314c5a9d71c5e59969b7e6133430422870b8" +hash = "a30b89ea07fb1c3c9c3b73a19fd571c54de3053a4a1a64ce42750725b6a2ea9f" [[files]] file = "mods/fabric-api.pw.toml" @@ -31,7 +31,7 @@ metafile = true [[files]] file = "mods/iliketomoveit-0.0.0-alpha.15.jar" -hash = "9792cfc90c2a84ec7e96f3321d05a60100292cb5678a757e8177cb1dcfb13d61" +hash = "65c9bbc5b954481c15b990ba9940303e50dbe2c584de8828a1612530e6504970" [[files]] file = "mods/iris.pw.toml" @@ -40,7 +40,7 @@ metafile = true [[files]] file = "mods/itsalive-0.0.0-alpha.36.jar" -hash = "c721fc6a22be84426b51b7c1e778b81a360a414a059b9837f1fadcf8f6d1a416" +hash = "53f490e94ccad60cdf3600782c58e9ce70d00b6c8ec2474d11fe83cdba7dc5e9" [[files]] file = "mods/jei.pw.toml" @@ -49,23 +49,23 @@ metafile = true [[files]] file = "mods/masterkey-0.0.0-alpha.8.jar" -hash = "087592530cec71aad0643c5c3b565e6de1cd300303ea88d9986462ef9c105a73" +hash = "cb33d1606f5348466817beabfa8b85b67ee65ef5fc13c419207d2cb07ee8d54a" [[files]] file = "mods/onlyfun-0.0.0-alpha.24.jar" -hash = "7c45842ecf04de46b92a6dc80d671cc13058eb5ad4873a403d8469fd18df2669" +hash = "8020a1b4fa3bad0cde90c9078b09f6b63fbb4e97b63b04819701cbab2d610e30" [[files]] file = "mods/ouch-0.0.0-alpha.10.jar" -hash = "37903995ea735410d0dd16796cd0ba1c362a41b591314ce5461255051d30faff" +hash = "e78edeb2c01fadeb578cb38ccbc28a0cf6b01da2e1432465187de881d7a79b30" [[files]] file = "mods/redstoner-0.0.0-alpha.10.jar" -hash = "76024ea82251943f7ce45e16e5da2d9351cea04b84aa5155d5f97e5c8d347f1d" +hash = "920f7dcb95626d88be96aa02b509acd369b6434fdf4efdaa43e25201a910a149" [[files]] -file = "mods/sanctuary-0.0.0-alpha.119.jar" -hash = "0b02b639b5bf94ebaead8db62d54ac9376b914ab54df4995a6ade7a3bcd060af" +file = "mods/sanctuary-0.0.0-alpha.120.jar" +hash = "63fbc831c12ae6ca92644c1e0800a47fb69ca454356e3cbf3625e7b0044bd0ef" [[files]] file = "mods/simple-voice-chat.pw.toml" diff --git a/pack/packwiz/pack.toml b/pack/packwiz/pack.toml index 35cb04d..0178b44 100644 --- a/pack/packwiz/pack.toml +++ b/pack/packwiz/pack.toml @@ -1,12 +1,12 @@ name = "Sanctuary 26.2" author = "KOKA99CAB" -version = "26.2.0-alpha.211" +version = "26.2.0-alpha.212" pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "59b7147e5636afd414395387459ae596c61b7ac7b2e9b1aa7690b27488c3b66e" +hash = "098c8803eddeaeff930a7aa35ec7a083d2a80efebb1387bcdad046560db010ba" [versions] fabric = "0.19.3" diff --git a/pack/prism/modrinth.index.json b/pack/prism/modrinth.index.json index 30d8ef9..028bd4d 100644 --- a/pack/prism/modrinth.index.json +++ b/pack/prism/modrinth.index.json @@ -3,7 +3,7 @@ "game": "minecraft", "name": "Sanctuary 26.2", "summary": "Sanctuary 26.2 — progression, exploration, worldgen and multiplayer systems by KOKA99CAB.", - "versionId": "26.2.0-alpha.211", + "versionId": "26.2.0-alpha.212", "files": [ { "path": "mods/fabric-api-0.158.0+26.2.jar", diff --git a/pack/release.json b/pack/release.json index 2b205f7..84c7e2a 100644 --- a/pack/release.json +++ b/pack/release.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "pack_version": "26.2.0-alpha.211", + "pack_version": "26.2.0-alpha.212", "release_channel": "alpha", "minecraft_version": "26.2", "fabric_loader_version": "0.19.3", @@ -9,7 +9,7 @@ "project_id": "FgOqyAXd", "project_slug": "sanctuary-koka99", "project_url": "https://modrinth.com/modpack/sanctuary-koka99", - "primary_file": "sanctuary-26.2.0-alpha.211.mrpack", + "primary_file": "sanctuary-26.2.0-alpha.212.mrpack", "shared_client_server_pack": true, "update_owner": "packwiz-installer", "check_on_launch": true, -- 2.54.0