From 90b9eee27eb42fc177358f5715efae7cb530cda2 Mon Sep 17 00:00:00 2001 From: koka Date: Sat, 29 Aug 2026 20:02:22 +0200 Subject: [PATCH] release: prepare 26.2.0-alpha.213 --- CHANGELOG.md | 7 +- README.md | 4 +- build.gradle | 232 ++++++++++++------ gradle.properties | 2 +- ...ambiance-level-event-fix-to-alpha.213.json | 35 +++ pack/packwiz/index.toml | 22 +- pack/packwiz/pack.toml | 4 +- pack/prism/modrinth.index.json | 2 +- pack/release.json | 4 +- 9 files changed, 211 insertions(+), 101 deletions(-) create mode 100644 pack/migrations/26.2.0-alpha.212-ambiance-level-event-fix-to-alpha.213.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 3460945..830df65 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. -## Modifications non distribuées +## `26.2.0-alpha.213` -Module modifié : **Ambiance `0.0.0-alpha.16`**. +Module modifié : **Ambiance `0.0.0-alpha.16`**. Les neuf autres modules conservent leur version issue de l'alpha.212. - corrige le crash client au démarrage d'Ambiance sous Minecraft 26.2 en ciblant le nouveau gestionnaire vanilla `LevelEventHandler` pour l'arrêt du disque blanc ; -- conserve les données Ambiance v2 et le protocole réseau 6, sans migration de sauvegarde. +- conserve les données Ambiance v2 et le protocole réseau 6, sans migration de sauvegarde ; +- remplace le JAR Ambiance cassé dans Packwiz et le `.mrpack` partagé client/serveur, sans exiger de nouveau monde ni réinitialiser les sauvegardes. ## `26.2.0-alpha.212` diff --git a/README.md b/README.md index 4a5bd9b..42ea53d 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.212`**. Cette release corrective distribue Sanctuary **`0.0.0-alpha.120`** ; les neuf autres modules conservent leur version issue de l'alpha.211. +Version courante du pack distribué : **`26.2.0-alpha.213`**. Cette release corrective distribue Ambiance **`0.0.0-alpha.16`** ; les neuf autres modules conservent leur version issue de l'alpha.212. 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.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.213 complète les correctifs de démarrage Minecraft 26.2 : après le clic molette du Black Market corrigé en alpha.212, Ambiance cible désormais `LevelEventHandler` pour arrêter le disque blanc. 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 fbc5206..aac6c21 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.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"')) { + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"')) { 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.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"')) { + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"')) { 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.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"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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,10 +4506,10 @@ 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.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"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.36.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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || rootProject.ambiance_version != "0.0.0-alpha.16" || rootProject.ouch_version != "0.0.0-alpha.10" || migration.source?.pack_version != "26.2.0-alpha.199" @@ -4581,11 +4581,11 @@ tasks.register("verifyWeatherTntAmbianceRelease") { || !weatherTnt.contains("AmbianceDailyWeather.CLEAR") || !weatherTnt.contains("CLEAR_WEATHER_TICKS = 864_000") || weatherTnt.contains("setWeatherParameters") - || 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"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"') + || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.16.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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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,10 +4628,10 @@ 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.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"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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,10 +4707,10 @@ 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.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"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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"') @@ -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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.ambiance_version != "0.0.0-alpha.16" || migration.issue != 35 @@ -5569,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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || rootProject.ambiance_version != "0.0.0-alpha.16" || rootProject.itsalive_version != "0.0.0-alpha.36" || rootProject.onlyfun_version != "0.0.0-alpha.24" @@ -5617,10 +5617,10 @@ 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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') - || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.15.jar"') + || !packwiz.contains('version = "26.2.0-alpha.213"') + || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.16.jar"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.36.jar"') || !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.24.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.12.jar"') @@ -5670,7 +5670,7 @@ tasks.register("verifyAlpha210Release") { iliketomoveit: "0.0.0-alpha.15", itsalive: "0.0.0-alpha.35"] def currentModules = [ - ambiance: "0.0.0-alpha.15", + ambiance: "0.0.0-alpha.16", sanctuary: "0.0.0-alpha.120", onlyfun: "0.0.0-alpha.24", ouch: "0.0.0-alpha.10", @@ -5687,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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || rootProject.sanctuary_version != "0.0.0-alpha.120" || rootProject.onlyfun_version != "0.0.0-alpha.24" || rootProject.iliketomoveit_version != expectedTarget.iliketomoveit @@ -5733,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.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"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || !packwiz.contains('version = "26.2.0-alpha.213"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || jeiFiles.size() != 1 @@ -5782,7 +5782,9 @@ tasks.register("verifyAlpha211Release") { onlyfun: "0.0.0-alpha.24", ouch: "0.0.0-alpha.10", sanctuary: "0.0.0-alpha.119"] - def currentModules = expectedTarget + [sanctuary: "0.0.0-alpha.120"] + def currentModules = expectedTarget + [ + sanctuary: "0.0.0-alpha.120", + ambiance: "0.0.0-alpha.16"] def workspaceModules = currentModules + [ambiance: "0.0.0-alpha.16"] def expectedDataVersions = [ambiance: 2, itsalive: 3, onlyfun: 2, ouch: 1, sanctuary: 11] def expectedProtocols = [ambiance: 6, itsalive: 4, onlyfun: 3, ouch: 1, sanctuary: 22] @@ -5808,7 +5810,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.212" + if (rootProject.pack_version != "26.2.0-alpha.213" || workspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.source?.pack_version != "26.2.0-alpha.210" || migration.source?.modules != expectedSource @@ -5836,9 +5838,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.212.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || prism.files?.size() != 5 @@ -5846,7 +5848,7 @@ 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.212`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.213`**")) { throw new GradleException("The alpha.211 Abjection and gameplay-polish release is incomplete") } } @@ -5880,7 +5882,7 @@ tasks.register("verifyAlpha212Release") { 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" + if (rootProject.pack_version != "26.2.0-alpha.213" || 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"] @@ -5902,21 +5904,93 @@ tasks.register("verifyAlpha212Release") { || 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" + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" || prism.files?.size() != 5 || jeiFiles.size() != 1 - || !packwiz.contains('version = "26.2.0-alpha.212"') + || !packwiz.contains('version = "26.2.0-alpha.213"') || !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`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.213`**")) { throw new GradleException("The alpha.212 Black Market startup-fix release is incomplete") } } } +tasks.register("verifyAlpha213Release") { + group = "verification" + description = "Checks the Sanctuary 26.2.0-alpha.213 Ambiance startup fix release." + inputs.file(file("pack/migrations/26.2.0-alpha.212-ambiance-level-event-fix-to-alpha.213.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("ambiance/src/main/resources/fabric.mod.json")) + inputs.file(file( + "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/mixin/client/LevelEventHandlerMixin.java")) + doLast { + def migration = new JsonSlurper().parse(file( + "pack/migrations/26.2.0-alpha.212-ambiance-level-event-fix-to-alpha.213.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("ambiance/src/main/resources/fabric.mod.json")) + def levelEventMixin = file( + "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/mixin/client/LevelEventHandlerMixin.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.213" + || rootProject.ambiance_version != "0.0.0-alpha.16" + || migration.source?.pack_version != "26.2.0-alpha.212" + || migration.source?.modules != [ambiance: "0.0.0-alpha.15"] + || migration.target?.pack_version != "26.2.0-alpha.213" + || migration.target?.modules != [ambiance: "0.0.0-alpha.16"] + || migration.features?.white_disc_stop_event_preserved != true + || migration.features?.minecraft_mixin_target_class != "LevelEventHandler" + || migration.features?.minecraft_mixin_target_method != "levelEvent" + || 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?.ambiance_data_version != 2 + || migration.compatibility?.ambiance_network_protocol != 6 + || 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 != 2 + || manifest.custom?.sanctuary26?.network_protocol != 6 + || !levelEventMixin.contains('@Mixin(LevelEventHandler.class)') + || !levelEventMixin.contains('@Inject(method = "levelEvent"') + || release.pack_version != "26.2.0-alpha.213" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.213.mrpack" + || prism.versionId != "26.2.0-alpha.213" + || prism.files?.size() != 5 + || jeiFiles.size() != 1 + || !packwiz.contains('version = "26.2.0-alpha.213"') + || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.16.jar"') + || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.15.jar"') + || !changelog.contains("## `26.2.0-alpha.213`") + || changelog.contains("## Modifications non distribuées") + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.213`**")) { + throw new GradleException("The alpha.213 Ambiance startup-fix release is incomplete") + } + } +} + +tasks.named("verifyWorkspace") { + dependsOn tasks.named("verifyAlpha213Release") +} + tasks.named("check") { dependsOn tasks.named("verifyWorkspace") dependsOn tasks.named("verifyTransport") diff --git a/gradle.properties b/gradle.properties index c98c0ad..17830f7 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.212 +pack_version=26.2.0-alpha.213 maven_group=fr.koka99cab.sanctuary26 diff --git a/pack/migrations/26.2.0-alpha.212-ambiance-level-event-fix-to-alpha.213.json b/pack/migrations/26.2.0-alpha.212-ambiance-level-event-fix-to-alpha.213.json new file mode 100644 index 0000000..d7acefe --- /dev/null +++ b/pack/migrations/26.2.0-alpha.212-ambiance-level-event-fix-to-alpha.213.json @@ -0,0 +1,35 @@ +{ + "schema_version": 1, + "source": { + "pack_version": "26.2.0-alpha.212", + "modules": { + "ambiance": "0.0.0-alpha.15" + } + }, + "target": { + "pack_version": "26.2.0-alpha.213", + "modules": { + "ambiance": "0.0.0-alpha.16" + } + }, + "features": { + "white_disc_stop_event_preserved": true, + "minecraft_mixin_target_class": "LevelEventHandler", + "minecraft_mixin_target_method": "levelEvent", + "client_startup_crash_fixed": true + }, + "compatibility": { + "new_world_required": false, + "save_reset_required": false, + "existing_saves_supported": true, + "registry_ids_changed": false, + "ambiance_data_version": 2, + "ambiance_network_protocol": 6 + }, + "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 031409d..316d967 100644 --- a/pack/packwiz/index.toml +++ b/pack/packwiz/index.toml @@ -13,16 +13,16 @@ file = "instance-icon.png" hash = "41f4f4c88c71d0a23446d5014f7407d55ad477441847099cad24492b032335a0" [[files]] -file = "mods/ambiance-0.0.0-alpha.15.jar" -hash = "384f49a23c3c84912a307a87955ce9c3c6853a1aa50d3e09435aac28f40e84bd" +file = "mods/ambiance-0.0.0-alpha.16.jar" +hash = "8d9648e20680eed0a524cd7b2891a4ca0f39aea0085d8e71f99c2ccd52a69f16" [[files]] file = "mods/anotherworld-0.0.0-alpha.55.jar" -hash = "577d947c22e2dc7ec803d69db822cdd04bc17d2ec2c853ea547ea7ea7a30fea1" +hash = "19bcaf776844d2a668d3a897a4649ad879e61928b7b11e26d22235f8c92c23ca" [[files]] file = "mods/events-0.0.0-alpha.0.jar" -hash = "a30b89ea07fb1c3c9c3b73a19fd571c54de3053a4a1a64ce42750725b6a2ea9f" +hash = "23019bd3e8d93a96d5a850621b62198527a62cab9eb2e56a5a55f3fa5f3b5eb3" [[files]] file = "mods/fabric-api.pw.toml" @@ -31,7 +31,7 @@ metafile = true [[files]] file = "mods/iliketomoveit-0.0.0-alpha.15.jar" -hash = "65c9bbc5b954481c15b990ba9940303e50dbe2c584de8828a1612530e6504970" +hash = "e1a2ab1689d7294aa95ae8460e107a115dad2adf7c0f479caa397f9a7c372d29" [[files]] file = "mods/iris.pw.toml" @@ -40,7 +40,7 @@ metafile = true [[files]] file = "mods/itsalive-0.0.0-alpha.36.jar" -hash = "53f490e94ccad60cdf3600782c58e9ce70d00b6c8ec2474d11fe83cdba7dc5e9" +hash = "43c403d65a37e90ba0ffbeb4fc161eeb1f1b9ff2e7de92d1494ca5b605bf0fea" [[files]] file = "mods/jei.pw.toml" @@ -49,23 +49,23 @@ metafile = true [[files]] file = "mods/masterkey-0.0.0-alpha.8.jar" -hash = "cb33d1606f5348466817beabfa8b85b67ee65ef5fc13c419207d2cb07ee8d54a" +hash = "5cc7b4421dbcb0468829f5ac277e55252ccb8b5f31a700dae97d0bead25e44f9" [[files]] file = "mods/onlyfun-0.0.0-alpha.24.jar" -hash = "8020a1b4fa3bad0cde90c9078b09f6b63fbb4e97b63b04819701cbab2d610e30" +hash = "b3db80d88f2c7995bd2442147d64ba1eb421264652ebf64912a4a10cd3892a43" [[files]] file = "mods/ouch-0.0.0-alpha.10.jar" -hash = "e78edeb2c01fadeb578cb38ccbc28a0cf6b01da2e1432465187de881d7a79b30" +hash = "875fe0b421418eafdb3abaf20d2cb73d6dd833decdf3646f86c7cf3bb54c435f" [[files]] file = "mods/redstoner-0.0.0-alpha.10.jar" -hash = "920f7dcb95626d88be96aa02b509acd369b6434fdf4efdaa43e25201a910a149" +hash = "9d775fa8927dacad4d2029720b7bb3c49fb18f51155c312492e9856f8bcaecda" [[files]] file = "mods/sanctuary-0.0.0-alpha.120.jar" -hash = "63fbc831c12ae6ca92644c1e0800a47fb69ca454356e3cbf3625e7b0044bd0ef" +hash = "f5771e8e6c5eb21a7aacb71f20be281d946469d68c3848ecfc25a08824be8576" [[files]] file = "mods/simple-voice-chat.pw.toml" diff --git a/pack/packwiz/pack.toml b/pack/packwiz/pack.toml index 0178b44..58524ae 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.212" +version = "26.2.0-alpha.213" pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "098c8803eddeaeff930a7aa35ec7a083d2a80efebb1387bcdad046560db010ba" +hash = "bb86c998a237d1cfd5d4577ee8c7669618b1af2323b57648f32432d9769b5069" [versions] fabric = "0.19.3" diff --git a/pack/prism/modrinth.index.json b/pack/prism/modrinth.index.json index 028bd4d..d8b7716 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.212", + "versionId": "26.2.0-alpha.213", "files": [ { "path": "mods/fabric-api-0.158.0+26.2.jar", diff --git a/pack/release.json b/pack/release.json index 84c7e2a..3807555 100644 --- a/pack/release.json +++ b/pack/release.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "pack_version": "26.2.0-alpha.212", + "pack_version": "26.2.0-alpha.213", "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.212.mrpack", + "primary_file": "sanctuary-26.2.0-alpha.213.mrpack", "shared_client_server_pack": true, "update_owner": "packwiz-installer", "check_on_launch": true, -- 2.54.0