diff --git a/CHANGELOG.md b/CHANGELOG.md index 11360bb..c735f88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ 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. +## `26.2.0-alpha.225` + +Modules modifiés : **Another World `0.0.0-alpha.56`**, **It's Alive `0.0.0-alpha.38`**, **I Like To Move It `0.0.0-alpha.18`**, **Only Fun `0.0.0-alpha.27`** et **Sanctuary `0.0.0-alpha.129`**. Les cinq autres modules conservent leur version issue de l'alpha.224. + +- exige que l’attaquant possède son propre coffre-fort actif avant de commencer un braquage, revalide cette condition pendant le forage et refuse défensivement tout transfert si le coffre disparaît entre-temps ; +- empêche les familiers temporaires Sanctuary de produire du butin vanilla, de l’expérience ou une lootbox Only Fun, et les exclut des contrats de panneau comme des demandes communautaires ; +- conserve la variante Canaplia des seize graines historiques pendant le placement, la croissance naturelle, la poudre d’os, la création de la partie haute, le rechargement et la récolte, ce qui réactive notamment l’hybridation Tendre + Olive vers Dorée ; +- remplace la laine violette du Magic Carpet par la texture historique 16 × 16 du Totem de Notch, utilisée par l’objet canonique et son alias hérité sans modifier la plateforme 3 × 3 ; +- conserve tous les IDs, sauvegardes et formats de données ; les protocoles réseau restent Another World 2, It's Alive 4, I Like To Move It 5, Only Fun 3 et Sanctuary 23, sans nouveau monde ni réinitialisation. + ## `26.2.0-alpha.224` Modules modifiés : **It's Alive `0.0.0-alpha.37`**, **Ouch `0.0.0-alpha.11`**, **I Like To Move It `0.0.0-alpha.17`**, **Only Fun `0.0.0-alpha.26`**, **Sanctuary `0.0.0-alpha.128`** et **MasterKey `0.0.0-alpha.9`**. diff --git a/README.md b/README.md index 7873cf9..e228b61 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,9 @@ 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.224`**. Cette release distribue It's Alive **`0.0.0-alpha.37`**, Ouch **`0.0.0-alpha.11`**, I Like To Move It **`0.0.0-alpha.17`**, Only Fun **`0.0.0-alpha.26`**, Sanctuary **`0.0.0-alpha.128`** et MasterKey **`0.0.0-alpha.9`** ; les quatre autres modules conservent leur version issue de l'alpha.223. +Version courante du pack distribué : **`26.2.0-alpha.225`**. Cette release distribue Another World **`0.0.0-alpha.56`**, It's Alive **`0.0.0-alpha.38`**, I Like To Move It **`0.0.0-alpha.18`**, Only Fun **`0.0.0-alpha.27`** et Sanctuary **`0.0.0-alpha.129`** ; les cinq autres modules conservent leur version issue de l'alpha.224. + +L’alpha.225 corrige quatre tickets : posséder un coffre-fort devient obligatoire pour en braquer un autre, les familiers temporaires ne donnent plus de butin, d’expérience, de lootbox ni de progression de quête, les seize variantes Canaplia survivent à tout leur cycle de culture, et le Magic Carpet retrouve la texture historique du Totem de Notch à la place de la laine violette. Les IDs, sauvegardes, formats de données et protocoles restent compatibles. 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. diff --git a/anotherworld/build.gradle b/anotherworld/build.gradle index 2b9d65b..031d722 100644 --- a/anotherworld/build.gradle +++ b/anotherworld/build.gradle @@ -1647,6 +1647,7 @@ tasks.register("generateAnotherWorldResources") { "message.anotherworld.safe_vault.empty_before_break": "Videz le coffre-fort et attendez la fin du forage avant de le démonter.", "message.anotherworld.safe_vault.drill_own": "Vous ne pouvez pas forer votre propre coffre-fort.", "message.anotherworld.safe_vault.inactive": "Ce coffre-fort n’est pas actif.", + "message.anotherworld.safe_vault.raid_requires_vault": "Vous devez posséder un coffre-fort actif avant d’en braquer un autre.", "message.anotherworld.safe_vault.empty": "Ce coffre-fort est vide.", "message.anotherworld.safe_vault.owner_offline": "Le propriétaire doit être connecté pour que le coffre-fort soit attaquable.", "message.anotherworld.safe_vault.protected": "Ce coffre-fort reste protégé pendant environ %s minute(s).", @@ -1671,6 +1672,7 @@ tasks.register("generateAnotherWorldResources") { "message.anotherworld.safe_vault.empty_before_break": "Опустошите сейф и дождитесь окончания сверления перед разборкой.", "message.anotherworld.safe_vault.drill_own": "Нельзя сверлить собственный сейф.", "message.anotherworld.safe_vault.inactive": "Этот сейф не активен.", + "message.anotherworld.safe_vault.raid_requires_vault": "Для ограбления чужого сейфа нужен собственный активный сейф.", "message.anotherworld.safe_vault.empty": "Этот сейф пуст.", "message.anotherworld.safe_vault.owner_offline": "Владелец должен быть в сети, чтобы атаковать сейф.", "message.anotherworld.safe_vault.protected": "Сейф защищён ещё примерно %s минут(ы).", @@ -1695,6 +1697,7 @@ tasks.register("generateAnotherWorldResources") { "message.anotherworld.safe_vault.empty_before_break": "Empty the safe and wait for drilling to end before dismantling it.", "message.anotherworld.safe_vault.drill_own": "You cannot drill your own safe.", "message.anotherworld.safe_vault.inactive": "This safe is not active.", + "message.anotherworld.safe_vault.raid_requires_vault": "You need an active safe of your own before raiding another one.", "message.anotherworld.safe_vault.empty": "This safe is empty.", "message.anotherworld.safe_vault.owner_offline": "The owner must be online before the safe can be raided.", "message.anotherworld.safe_vault.protected": "This safe remains protected for about %s minute(s).", @@ -1953,7 +1956,7 @@ tasks.register("verifyAnotherWorldCatalog") { "src/main/resources/assets/redstoner/textures/item/weather_gauge.png", "src/main/resources/data/redstoner/recipe/weather_gauge.json" ] - if (project.version.toString() != "0.0.0-alpha.55" + if (project.version.toString() != "0.0.0-alpha.56" || sulfurMigration.target?.modules?.anotherworld != "0.0.0-alpha.44" || sulfurMigration.sulfur_caves?.sanctuary?.dripstone_cell_period != 2 || !javaText.contains('Identifier.parse("sanctuary:sulfur_caves")') @@ -3270,7 +3273,7 @@ tasks.register("verifyClimateBiomeMixer") { "pack/migrations/26.2.0-alpha.188-beta-climate-provinces-to-alpha.189.json")) def mixer = file( "src/main/java/fr/koka99cab/sanctuary26/anotherworld/mixin/MultiNoiseBiomeSourceParameterListPresetMixin.java").text - if (project.version.toString() != "0.0.0-alpha.55" + if (project.version.toString() != "0.0.0-alpha.56" || migration.source?.pack_version != "26.2.0-alpha.188" || migration.target?.pack_version != "26.2.0-alpha.189" || migration.target?.modules?.anotherworld != "0.0.0-alpha.48" diff --git a/build.gradle b/build.gradle index d82454a..3c106f7 100644 --- a/build.gradle +++ b/build.gradle @@ -117,6 +117,7 @@ tasks.register("verifyWorkspace") { inputs.files(moduleIds.collect { file("${it}/src/main/resources/assets/${it}/icon.png") }) inputs.file(file("pack/release.json")) inputs.file(file("pack/prism/modrinth.index.json")) + inputs.file(file("pack/migrations/26.2.0-alpha.224-four-bug-fixes-to-alpha.225.json")) inputs.file(file("pack/migrations/26.2.0-alpha.35-to-alpha.36.json")) inputs.file(file("pack/migrations/26.1.2-transport-to-26.2.0-alpha.46.json")) inputs.file(file("pack/migrations/26.1.2-waystone-to-26.2.0-alpha.62.json")) @@ -2913,11 +2914,11 @@ tasks.register("verifyNotchEncounter") { def commands = file("masterkey/src/main/java/fr/koka99cab/sanctuary26/masterkey/command/MasterKeyCommands.java").text def texture = file("itsalive/src/main/resources/assets/itsalive/textures/entity/notch.png") def textureHash = MessageDigest.getInstance("SHA-256").digest(texture.bytes).encodeHex().toString() - if (rootProject.itsalive_version != "0.0.0-alpha.37" + if (rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.ouch_version != "0.0.0-alpha.11" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || rootProject.masterkey_version != "0.0.0-alpha.9" - || rootProject.pack_version != "26.2.0-alpha.224" + || rootProject.pack_version != "26.2.0-alpha.225" || manifests.itsalive.custom?.sanctuary26?.data_version != 4 || manifests.sanctuary.custom?.sanctuary26?.data_version != 13 || manifests.ouch.depends?.itsalive != ">=0.0.0-alpha.37" @@ -2982,6 +2983,8 @@ tasks.register("verifyMagicCarpet") { file("iliketomoveit/src/main/resources/assets/iliketomoveit/lang/${it}.json") }) inputs.file(file("iliketomoveit/src/main/resources/assets/portals/items/notch_totem.json")) + inputs.file(file("iliketomoveit/src/main/resources/assets/iliketomoveit/models/item/magic_carpet.json")) + inputs.file(file("iliketomoveit/src/main/resources/assets/iliketomoveit/textures/item/magic_carpet.png")) doLast { def migration = new JsonSlurper().parse(file( @@ -3000,17 +3003,21 @@ tasks.register("verifyMagicCarpet") { def provenance = file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/item/SanctuaryItemProvenance.java").text def gate = file("onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/shop/OnlyFunBossShopGate.java").text def shop = file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopService.java").text - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.iliketomoveit_version != "0.0.0-alpha.17" - || rootProject.onlyfun_version != "0.0.0-alpha.26" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + def carpetModel = new JsonSlurper().parse(file( + "iliketomoveit/src/main/resources/assets/iliketomoveit/models/item/magic_carpet.json")) + def carpetTexture = file( + "iliketomoveit/src/main/resources/assets/iliketomoveit/textures/item/magic_carpet.png") + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.iliketomoveit_version != "0.0.0-alpha.18" + || rootProject.onlyfun_version != "0.0.0-alpha.27" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || manifests.iliketomoveit.custom?.sanctuary26?.data_version != 4 || manifests.iliketomoveit.custom?.sanctuary26?.network_protocol != 5 || manifests.iliketomoveit.depends?.sanctuary != ">=0.0.0-alpha.127" || manifests.onlyfun.custom?.sanctuary26?.data_version != 2 || manifests.onlyfun.custom?.sanctuary26?.network_protocol != 3 || manifests.onlyfun.depends?.iliketomoveit != ">=0.0.0-alpha.17" - || manifests.onlyfun.depends?.sanctuary != ">=0.0.0-alpha.127" + || manifests.onlyfun.depends?.sanctuary != ">=0.0.0-alpha.129" || manifests.sanctuary.custom?.sanctuary26?.data_version != 13 || manifests.sanctuary.custom?.sanctuary26?.network_protocol != 23 || migration.status != "released" @@ -3051,7 +3058,9 @@ tasks.register("verifyMagicCarpet") { || !gate.contains("IMPLEMENTED_MILESTONES") || !shop.contains("SanctuaryItemProvenance.SHOP_PURCHASE") || !shop.contains("reward_recreated=false") - || !provenance.contains('ORIGIN_KEY = "sanctuary_origin"')) { + || !provenance.contains('ORIGIN_KEY = "sanctuary_origin"') + || carpetModel.textures?.layer0 != "iliketomoveit:item/magic_carpet" + || !carpetTexture.isFile()) { throw new GradleException("The CARPET-01 through CARPET-03 contract is incomplete") } ["fr_fr", "en_us", "ru_ru"].each { locale -> @@ -3631,9 +3640,9 @@ 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.224" - || rootProject.sanctuary_version != "0.0.0-alpha.128" - || rootProject.onlyfun_version != "0.0.0-alpha.26" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.sanctuary_version != "0.0.0-alpha.129" + || rootProject.onlyfun_version != "0.0.0-alpha.27" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.modules != [sanctuary: "0.0.0-alpha.108", onlyfun: "0.0.0-alpha.17"] || migration.target?.modules != [sanctuary: "0.0.0-alpha.109", onlyfun: "0.0.0-alpha.17"] @@ -3681,8 +3690,8 @@ 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.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" || rootProject.redstoner_version != "0.0.0-alpha.13" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.191" @@ -3944,8 +3953,8 @@ project(":onlyfun") { def shitCubeRecipe = new JsonSlurper().parse(file( "src/main/resources/data/abjection/recipe/shit_cube.json")) if (manifest.custom.sanctuary26.data_version != 2 - || project.version.toString() != "0.0.0-alpha.26" - || manifest.depends?.sanctuary != ">=0.0.0-alpha.127" + || project.version.toString() != "0.0.0-alpha.27" + || manifest.depends?.sanctuary != ">=0.0.0-alpha.129" || manifest.depends?.iliketomoveit != ">=0.0.0-alpha.17" || manifest.provides != ["abjection"] || manifest.custom.sanctuary26.network_protocol != 3 @@ -4473,9 +4482,9 @@ 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.224" - || rootProject.onlyfun_version != "0.0.0-alpha.26" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.onlyfun_version != "0.0.0-alpha.27" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.192" || migration.target?.pack_version != "26.2.0-alpha.193" @@ -4518,8 +4527,8 @@ 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.224" - || rootProject.itsalive_version != "0.0.0-alpha.37" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.itsalive_version != "0.0.0-alpha.38" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.193" || migration.source?.modules != [itsalive: "0.0.0-alpha.26"] @@ -4567,9 +4576,9 @@ 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.224" - || rootProject.onlyfun_version != "0.0.0-alpha.26" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.onlyfun_version != "0.0.0-alpha.27" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.194" || migration.source?.modules != [onlyfun: "0.0.0-alpha.18", sanctuary: "0.0.0-alpha.110"] @@ -4614,7 +4623,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.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || migration.source?.pack_version != "26.2.0-alpha.195" || migration.target?.pack_version != "26.2.0-alpha.196" || migration.target?.modules != [ @@ -4632,10 +4641,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.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"')) { + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"')) { throw new GradleException("The alpha.196 culinary, mailbox and grapple release contract is incomplete") } } @@ -4660,9 +4669,9 @@ 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.224" - || rootProject.itsalive_version != "0.0.0-alpha.37" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.itsalive_version != "0.0.0-alpha.38" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.196" || migration.target?.pack_version != "26.2.0-alpha.197" || migration.target?.modules != [itsalive: "0.0.0-alpha.29", sanctuary: "0.0.0-alpha.113"] @@ -4680,10 +4689,10 @@ tasks.register("verifyQuestRequestsCauldronBatchesRelease") { || migration.distribution?.jei?.target != "30.26.0.186" || migration.compatibility?.sanctuary_target_network_protocol != 19 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 23 - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"')) { + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"')) { throw new GradleException("The alpha.197 quest-request and cauldron-batch release contract is incomplete") } } @@ -4710,8 +4719,8 @@ 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.224" - || rootProject.itsalive_version != "0.0.0-alpha.37" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.itsalive_version != "0.0.0-alpha.38" || migration.source?.pack_version != "26.2.0-alpha.197" || migration.target?.pack_version != "26.2.0-alpha.198" || migration.target?.modules != [itsalive: "0.0.0-alpha.30", sanctuary: "0.0.0-alpha.114"] @@ -4729,11 +4738,11 @@ tasks.register("verifyFermentationBarrelAutomationRelease") { || migration.distribution?.packwiz_index_refreshed != true || itsAliveManifest.custom?.sanctuary26?.data_version != 4 || itsAliveManifest.custom?.sanctuary26?.network_protocol != 4 - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.37.jar"')) { + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"')) { throw new GradleException("The alpha.198 fermentation barrel release contract is incomplete") } } @@ -4760,9 +4769,9 @@ 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.224" - || rootProject.itsalive_version != "0.0.0-alpha.37" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.itsalive_version != "0.0.0-alpha.38" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.198" || migration.source?.modules?.sanctuary != "0.0.0-alpha.114" || migration.target?.pack_version != "26.2.0-alpha.199" @@ -4774,12 +4783,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 != 23 - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.37.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.128.jar"')) { + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.jar"')) { throw new GradleException("The alpha.199 quest-request contract release is incomplete") } } @@ -4815,7 +4824,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.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || rootProject.ouch_version != "0.0.0-alpha.11" || migration.source?.pack_version != "26.2.0-alpha.199" @@ -4849,10 +4858,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.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || !packwizIndex.contains('file = "mods/ouch-0.0.0-alpha.11.jar"')) { throw new GradleException("The alpha.200 Weather TNT and Ambiance release is incomplete") @@ -4881,8 +4890,8 @@ 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.224" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.200" || migration.source?.modules?.sanctuary != "0.0.0-alpha.115" || migration.target?.pack_version != "26.2.0-alpha.201" @@ -4896,11 +4905,11 @@ tasks.register("verifyQuestRequestEscrowRelease") { || migration.compatibility?.sanctuary_target_network_protocol != 21 || sanctuaryManifest.custom?.sanctuary26?.data_version != 13 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 23 - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.128.jar"')) { + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.jar"')) { throw new GradleException("The alpha.201 quest-request escrow release is incomplete") } } @@ -4935,11 +4944,11 @@ 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.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" - || rootProject.itsalive_version != "0.0.0-alpha.37" - || rootProject.iliketomoveit_version != "0.0.0-alpha.17" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" + || rootProject.itsalive_version != "0.0.0-alpha.38" + || rootProject.iliketomoveit_version != "0.0.0-alpha.18" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.201" || migration.source?.modules != [ itsalive: "0.0.0-alpha.30", @@ -4975,14 +4984,14 @@ tasks.register("verifyWaystoneShopCulinaryAlpha202Release") { || moveItManifest.custom?.sanctuary26?.network_protocol != 5 || sanctuaryManifest.custom?.sanctuary26?.data_version != 13 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 23 - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') - || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.37.jar"') - || !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.17.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.128.jar"')) { + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') + || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"') + || !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.18.jar"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.jar"')) { throw new GradleException("The alpha.202 Waystone, Shop and culinary lectern release is incomplete") } } @@ -5095,9 +5104,9 @@ 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.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.schema_version != 1 || migration.source?.pack_version != "26.2.0-alpha.201" || migration.target?.pack_version != "26.2.0-alpha.202" @@ -5287,8 +5296,8 @@ 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.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" || migration.source?.pack_version != "26.2.0-alpha.202" || migration.source?.modules != [anotherworld: "0.0.0-alpha.50"] || migration.target?.pack_version != "26.2.0-alpha.203" @@ -5305,10 +5314,10 @@ 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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.50.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" @@ -5333,8 +5342,8 @@ 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.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" || migration.source?.pack_version != "26.2.0-alpha.203" || migration.source?.modules != [anotherworld: "0.0.0-alpha.51"] || migration.target?.pack_version != "26.2.0-alpha.204" @@ -5359,10 +5368,10 @@ 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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.51.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" @@ -5387,8 +5396,8 @@ 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.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" || migration.source?.pack_version != "26.2.0-alpha.204" || migration.source?.modules != [anotherworld: "0.0.0-alpha.52"] || migration.target?.pack_version != "26.2.0-alpha.205" @@ -5416,10 +5425,10 @@ 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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.52.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" @@ -5445,8 +5454,8 @@ 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.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" || migration.source?.pack_version != "26.2.0-alpha.205" || migration.source?.modules != [anotherworld: "0.0.0-alpha.53"] || migration.target?.pack_version != "26.2.0-alpha.206" @@ -5468,10 +5477,10 @@ 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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.53.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" @@ -5497,8 +5506,8 @@ 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.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.anotherworld_version != "0.0.0-alpha.55" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.anotherworld_version != "0.0.0-alpha.56" || migration.source?.pack_version != "26.2.0-alpha.206" || migration.source?.modules != [anotherworld: "0.0.0-alpha.54"] || migration.target?.pack_version != "26.2.0-alpha.207" @@ -5527,10 +5536,10 @@ 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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"') + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.54.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" @@ -5585,8 +5594,8 @@ 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.224" - || rootProject.itsalive_version != "0.0.0-alpha.37" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.issue != 35 || migration.source?.fabric_id != "canaplia" @@ -5837,10 +5846,10 @@ 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.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" - || rootProject.itsalive_version != "0.0.0-alpha.37" - || rootProject.onlyfun_version != "0.0.0-alpha.26" + || rootProject.itsalive_version != "0.0.0-alpha.38" + || rootProject.onlyfun_version != "0.0.0-alpha.27" || migration.source?.pack_version != "26.2.0-alpha.207" || migration.source?.modules != expectedSource || migration.target?.pack_version != "26.2.0-alpha.208" @@ -5885,12 +5894,12 @@ 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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') - || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.37.jar"') - || !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.26.jar"') + || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"') + || !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.27.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.12.jar"') || packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.33.jar"') || packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.19.jar"') @@ -5939,12 +5948,12 @@ tasks.register("verifyAlpha210Release") { itsalive: "0.0.0-alpha.35"] def currentModules = [ ambiance: "0.0.0-alpha.22", - sanctuary: "0.0.0-alpha.128", - onlyfun: "0.0.0-alpha.26", + sanctuary: "0.0.0-alpha.129", + onlyfun: "0.0.0-alpha.27", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9", - iliketomoveit: "0.0.0-alpha.17", - itsalive: "0.0.0-alpha.37"] + iliketomoveit: "0.0.0-alpha.18", + itsalive: "0.0.0-alpha.38"] def requiredJars = currentModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } @@ -5956,11 +5965,11 @@ tasks.register("verifyAlpha210Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.sanctuary_version != "0.0.0-alpha.128" - || rootProject.onlyfun_version != "0.0.0-alpha.26" - || rootProject.iliketomoveit_version != "0.0.0-alpha.17" - || rootProject.itsalive_version != "0.0.0-alpha.37" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.sanctuary_version != "0.0.0-alpha.129" + || rootProject.onlyfun_version != "0.0.0-alpha.27" + || rootProject.iliketomoveit_version != "0.0.0-alpha.18" + || rootProject.itsalive_version != "0.0.0-alpha.38" || migration.source?.pack_version != "26.2.0-alpha.209" || migration.source?.modules != expectedSource || migration.target?.pack_version != "26.2.0-alpha.210" @@ -6002,10 +6011,10 @@ tasks.register("verifyAlpha210Release") { || manifests.iliketomoveit.custom?.sanctuary26?.network_protocol != 5 || manifests.itsalive.custom?.sanctuary26?.data_version != 4 || manifests.itsalive.custom?.sanctuary26?.network_protocol != 4 - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || jeiFiles.size() != 1 @@ -6052,11 +6061,11 @@ tasks.register("verifyAlpha211Release") { ouch: "0.0.0-alpha.10", sanctuary: "0.0.0-alpha.119"] def currentModules = expectedTarget + [ - sanctuary: "0.0.0-alpha.128", - onlyfun: "0.0.0-alpha.26", + sanctuary: "0.0.0-alpha.129", + onlyfun: "0.0.0-alpha.27", ambiance: "0.0.0-alpha.22", - iliketomoveit: "0.0.0-alpha.17", - itsalive: "0.0.0-alpha.37", + iliketomoveit: "0.0.0-alpha.18", + itsalive: "0.0.0-alpha.38", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] def workspaceModules = currentModules @@ -6086,7 +6095,7 @@ tasks.register("verifyAlpha211Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || workspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.source?.pack_version != "26.2.0-alpha.210" || migration.source?.modules != expectedSource @@ -6114,9 +6123,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.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || prism.files?.size() != 5 @@ -6124,7 +6133,7 @@ tasks.register("verifyAlpha211Release") { || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" || jeiFiles[0].hashes?.sha512 != "06131c9528549840e07ddc9634e23454cd454380d7749a23d818f0efe0dacc02874e967ceb74a24ee82efb13e0fe2df4026f988a68f54f890586967e91dcaa5b" || !changelog.contains("## `26.2.0-alpha.211`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.211 Abjection and gameplay-polish release is incomplete") } } @@ -6158,8 +6167,8 @@ tasks.register("verifyAlpha212Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || 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" @@ -6180,16 +6189,16 @@ tasks.register("verifyAlpha212Release") { || manifest.custom?.sanctuary26?.data_version != 13 || manifest.custom?.sanctuary26?.network_protocol != 23 || !minecraftMixin.contains('method = "pickBlockOrEntity"') - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" || prism.files?.size() != 5 || jeiFiles.size() != 1 - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.128.jar"') + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.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.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.212 Black Market startup-fix release is incomplete") } } @@ -6223,7 +6232,7 @@ tasks.register("verifyAlpha213Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.212" || migration.source?.modules != [ambiance: "0.0.0-alpha.15"] @@ -6247,16 +6256,16 @@ tasks.register("verifyAlpha213Release") { || manifest.custom?.sanctuary26?.network_protocol != 6 || !levelEventMixin.contains('@Mixin(LevelEventHandler.class)') || !levelEventMixin.contains('@Inject(method = "levelEvent"') - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" || prism.files?.size() != 5 || jeiFiles.size() != 1 - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.15.jar"') || !changelog.contains("## `26.2.0-alpha.213`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.213 Ambiance startup-fix release is incomplete") } } @@ -6291,7 +6300,7 @@ tasks.register("verifyAlpha214Release") { "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscAudioPlayer.java").text def urlSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/white_disc/WhiteDiscUrlSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.213" || migration.source?.modules != [ambiance: "0.0.0-alpha.16"] @@ -6320,16 +6329,16 @@ tasks.register("verifyAlpha214Release") { || !audioPlayer.contains('message.ambiance.white_disc.loading') || !audioPlayer.contains('message.ambiance.white_disc.failed') || !urlSmoke.contains("https://youtu.be/Ue5ZBe-GzSM?si=78LSbtBQzUYzhA2Y") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.16.jar"') || !changelog.contains("## `26.2.0-alpha.214`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.214 white-disc solo synchronization release is incomplete") } } @@ -6370,7 +6379,7 @@ tasks.register("verifyAlpha215Release") { "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/client/audio/LavaplayerAudioStream.java").text def playbackSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscPlaybackSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.214" || migration.source?.modules != [ambiance: "0.0.0-alpha.17"] @@ -6410,16 +6419,16 @@ tasks.register("verifyAlpha215Release") { || !playbackSmoke.contains("https://www.youtube.com/watch?v=Ue5ZBe-GzSM") || !playbackSmoke.contains("stream.paddedSilenceBytes() != 0L") || !playbackSmoke.contains("stream.decodedTimelineMillis() != 4_000L") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.17.jar"') || !changelog.contains("## `26.2.0-alpha.215`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.215 resilient white-disc playback release is incomplete") } } @@ -6464,7 +6473,7 @@ tasks.register("verifyAlpha216Release") { "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/LavaplayerAudioStreamSmoke.java").text def playbackSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscPlaybackSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.215" || migration.source?.modules != [ambiance: "0.0.0-alpha.18"] @@ -6508,16 +6517,16 @@ tasks.register("verifyAlpha216Release") { || !playbackSmoke.contains("stream.paddedSilenceBytes() != 0L") || !playbackSmoke.contains("stream.decodedTimelineMillis() != 4_000L") || !playbackSmoke.contains("LavaplayerAudioStream.SAMPLE_RATE * 2 * 4") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.18.jar"') || !changelog.contains("## `26.2.0-alpha.216`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.216 white-disc audio-quality release is incomplete") } } @@ -6552,7 +6561,7 @@ tasks.register("verifyAlpha217Release") { "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscAudioPlayer.java").text def streamSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/LavaplayerAudioStreamSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.216" || migration.source?.modules != [ambiance: "0.0.0-alpha.19"] @@ -6583,16 +6592,16 @@ tasks.register("verifyAlpha217Release") { || !audioPlayer.contains("PLAYBACK_PITCH = 1.0F") || audioPlayer.count("channel.setPitch(PLAYBACK_PITCH)") != 2 || !streamSmoke.contains("WhiteDiscAudioPlayer.PLAYBACK_PITCH - 1.0F") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.19.jar"') || !changelog.contains("## `26.2.0-alpha.217`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.217 white-disc pitch release is incomplete") } } @@ -6640,25 +6649,25 @@ tasks.register("verifyAlpha218Release") { def targetModules = [ redstoner: "0.0.0-alpha.11", onlyfun: "0.0.0-alpha.25", sanctuary: "0.0.0-alpha.121"] def currentModules = targetModules + [redstoner: "0.0.0-alpha.13", - sanctuary: "0.0.0-alpha.128", onlyfun: "0.0.0-alpha.26", - iliketomoveit: "0.0.0-alpha.17", ambiance: "0.0.0-alpha.22", - itsalive: "0.0.0-alpha.37", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] + sanctuary: "0.0.0-alpha.129", onlyfun: "0.0.0-alpha.27", + iliketomoveit: "0.0.0-alpha.18", ambiance: "0.0.0-alpha.22", + itsalive: "0.0.0-alpha.38", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] def requiredJars = currentModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } def obsoleteJars = sourceModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.redstoner_version != "0.0.0-alpha.13" || currentModules.findAll { id, version -> id != "redstoner" && id != "sanctuary" && id != "onlyfun" && id != "iliketomoveit" }.any { id, version -> rootProject.property("${id}_version") != version } - || rootProject.onlyfun_version != "0.0.0-alpha.26" - || rootProject.iliketomoveit_version != "0.0.0-alpha.17" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + || rootProject.onlyfun_version != "0.0.0-alpha.27" + || rootProject.iliketomoveit_version != "0.0.0-alpha.18" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.217" || migration.source?.modules != sourceModules || migration.target?.pack_version != "26.2.0-alpha.218" @@ -6690,13 +6699,13 @@ tasks.register("verifyAlpha218Release") { || !onlyFunPolicy.contains('namespace.equals("redstoner") && path.equals("storage_terminal")') || !blackMarketPolicy.contains('namespace.equals("redstoner") && path.equals("storage_terminal")') || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !changelog.contains("## `26.2.0-alpha.218`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.218 Storage Terminal release is incomplete") } } @@ -6741,9 +6750,9 @@ tasks.register("verifyAlpha219Release") { def targetModules = [ sanctuary: "0.0.0-alpha.122", iliketomoveit: "0.0.0-alpha.16", ambiance: "0.0.0-alpha.21"] def currentModules = targetModules + [ - ambiance: "0.0.0-alpha.22", sanctuary: "0.0.0-alpha.128", - iliketomoveit: "0.0.0-alpha.17", onlyfun: "0.0.0-alpha.26", - itsalive: "0.0.0-alpha.37", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] + ambiance: "0.0.0-alpha.22", sanctuary: "0.0.0-alpha.129", + iliketomoveit: "0.0.0-alpha.18", onlyfun: "0.0.0-alpha.27", + itsalive: "0.0.0-alpha.38", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] def workspaceModules = currentModules def requiredJars = currentModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" @@ -6759,7 +6768,7 @@ tasks.register("verifyAlpha219Release") { include "**/*golden*days*.zip", "**/*golden*days*.jar" exclude "**/build/**", "**/.gradle/**", "**/.git/**" }.files - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || workspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.source?.pack_version != "26.2.0-alpha.218" || migration.source?.modules != sourceModules @@ -6791,15 +6800,15 @@ tasks.register("verifyAlpha219Release") { || manifests.ambiance.custom?.sanctuary26?.data_version != 2 || manifests.ambiance.custom?.sanctuary26?.network_protocol != 6 || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version || prism.files.any { it.path.toLowerCase().contains("golden-days") } - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !forbiddenGoldenArchives.isEmpty() || !changelog.contains("## `26.2.0-alpha.219`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.219 finite Alpha/Indev release is incomplete") } } @@ -6838,7 +6847,7 @@ tasks.register("verifyAlpha220Release") { "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java").text def networking = file( "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/network/RedStonerNetworking.java").text - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.redstoner_version != "0.0.0-alpha.13" || migration.source?.pack_version != "26.2.0-alpha.219" || migration.source?.modules != [redstoner: "0.0.0-alpha.11"] @@ -6879,13 +6888,13 @@ tasks.register("verifyAlpha220Release") { || networking.contains("storage_terminal_snapshot") || networking.contains("storage_terminal_action") || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.13.jar"') || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.11.jar"') || !changelog.contains("## `26.2.0-alpha.220`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.220 Storage Terminal menu release is incomplete") } } @@ -6933,7 +6942,7 @@ tasks.register("verifyAlpha221Release") { def playbackSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscPlaybackSmoke.java").text def contract = migration.white_disc_native_rate - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.220" || migration.source?.modules != [ambiance: "0.0.0-alpha.21"] @@ -6982,13 +6991,13 @@ tasks.register("verifyAlpha221Release") { || !playbackSmoke.contains("PCM cadence: 100%% speed") || !whiteDiscDocumentation.contains("48 000 Hz") || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.224"') + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.21.jar"') || !changelog.contains("## `26.2.0-alpha.221`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.221 native-rate white-disc release is incomplete") } } @@ -7067,9 +7076,9 @@ tasks.register("verifyAlpha222Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" + if (rootProject.pack_version != "26.2.0-alpha.225" || rootProject.redstoner_version != "0.0.0-alpha.13" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.221" || migration.source?.modules != [ redstoner: "0.0.0-alpha.12", sanctuary: "0.0.0-alpha.122"] @@ -7142,12 +7151,12 @@ tasks.register("verifyAlpha222Release") { || !questEditor.contains("QuestIdSuggestions.suggest") || !suggestions.contains("Normalizer.Form.NFD") || !suggestions.contains("public static final int LIMIT = 5") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.13.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.128.jar"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.jar"') || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.12.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.122.jar"') || !packwizJei.contains('filename = "jei-26.2-fabric-30.29.0.198.jar"') @@ -7156,7 +7165,7 @@ tasks.register("verifyAlpha222Release") { || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" || jeiFiles[0].hashes?.sha512 != "06131c9528549840e07ddc9634e23454cd454380d7749a23d818f0efe0dacc02874e967ceb74a24ee82efb13e0fe2df4026f988a68f54f890586967e91dcaa5b" || !changelog.contains("## `26.2.0-alpha.222`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.222 terminal-search and quest-tracker release is incomplete") } } @@ -7226,8 +7235,8 @@ tasks.register("verifyAlpha223Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || rootProject.sanctuary_version != "0.0.0-alpha.128" + if (rootProject.pack_version != "26.2.0-alpha.225" + || rootProject.sanctuary_version != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.222" || migration.source?.modules != [sanctuary: "0.0.0-alpha.124"] || migration.target?.pack_version != "26.2.0-alpha.223" @@ -7291,11 +7300,11 @@ tasks.register("verifyAlpha223Release") { || !questSync.contains("case EMERALD -> 2") || !inventorySmoke.contains("Hotbar snapshot must remain untouched") || !displaySmoke.contains("QuestTrackerDisplayMode.PANEL.next()") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.128.jar"') + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.124.jar"') || !packwizJei.contains('filename = "jei-26.2-fabric-30.29.0.198.jar"') || !packwizJei.contains('version = "67Dvn8sL"') @@ -7303,7 +7312,7 @@ tasks.register("verifyAlpha223Release") { || jeiFiles[0].hashes?.sha1 != "652e964c71a699fdfdd96cda265ea703b13c6ef4" || jeiFiles[0].hashes?.sha512 != "06131c9528549840e07ddc9634e23454cd454380d7749a23d818f0efe0dacc02874e967ceb74a24ee82efb13e0fe2df4026f988a68f54f890586967e91dcaa5b" || !changelog.contains("## `26.2.0-alpha.223`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.223 inventory-sort and quest-tracker display release is incomplete") } } @@ -7345,6 +7354,9 @@ tasks.register("verifyAlpha224Release") { def targetModules = [ itsalive: "0.0.0-alpha.37", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9", iliketomoveit: "0.0.0-alpha.17", onlyfun: "0.0.0-alpha.26", sanctuary: "0.0.0-alpha.128"] + def currentModules = targetModules + [ + itsalive: "0.0.0-alpha.38", iliketomoveit: "0.0.0-alpha.18", + onlyfun: "0.0.0-alpha.27", sanctuary: "0.0.0-alpha.129"] def inventorySort = file( "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/gameplay/SanctuaryInventorySort.java").text def clientProgress = file( @@ -7353,14 +7365,18 @@ tasks.register("verifyAlpha224Release") { "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/network/SortInventoryPayload.java").text def networking = file( "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/network/SanctuaryNetworking.java").text - def requiredJars = targetModules.collect { id, version -> + def requiredJars = currentModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } def obsoleteJars = sourceModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" + } + targetModules.findAll { id, version -> + currentModules[id] != version + }.collect { id, version -> + "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.224" - || targetModules.any { id, version -> rootProject.property("${id}_version") != version } + if (rootProject.pack_version != "26.2.0-alpha.225" + || currentModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.status != "released" || migration.source?.pack_version != "26.2.0-alpha.223" || migration.source?.modules != sourceModules @@ -7402,19 +7418,170 @@ tasks.register("verifyAlpha224Release") { || !sortPayload.contains("buffer.writeBoolean(container)") || !sortPayload.contains("buffer.readBoolean()") || !networking.contains("PROTOCOL_VERSION = 23") - || release.pack_version != "26.2.0-alpha.224" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.224.mrpack" - || prism.versionId != "26.2.0-alpha.224" - || !packwiz.contains('version = "26.2.0-alpha.224"') + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !changelog.contains("## `26.2.0-alpha.224`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.224`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { throw new GradleException("The alpha.224 Notch, Magic Carpet and container-sort release is incomplete") } } } +tasks.register("verifyAlpha225Release") { + group = "verification" + description = "Checks the Sanctuary 26.2.0-alpha.225 four-ticket bug-fix release." + inputs.file(file("pack/migrations/26.2.0-alpha.224-four-bug-fixes-to-alpha.225.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.files(["anotherworld", "itsalive", "iliketomoveit", "onlyfun", "sanctuary"].collect { + file("${it}/src/main/resources/fabric.mod.json") + }) + inputs.files( + file("anotherworld/src/main/java/fr/koka99cab/sanctuary26/anotherworld/vault/VaultData.java"), + file("anotherworld/src/main/java/fr/koka99cab/sanctuary26/anotherworld/vault/VaultDrillingService.java"), + file("anotherworld/src/test/java/fr/koka99cab/sanctuary26/anotherworld/vault/VaultRulesSmoke.java"), + file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/canaplia/CanapliaVariantLifecycle.java"), + file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/canaplia/block/CanapliaHempCropBlock.java"), + file("itsalive/src/test/java/fr/koka99cab/sanctuary26/itsalive/canaplia/CanapliaGameplaySmoke.java"), + file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/entity/SanctuaryEntityPolicy.java"), + file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/LivingEntityCompanionMixin.java"), + file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardService.java"), + file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestRequestService.java"), + file("onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/loot/OnlyFunLootboxDrops.java"), + file("iliketomoveit/src/main/resources/assets/iliketomoveit/models/item/magic_carpet.json"), + file("iliketomoveit/src/main/resources/assets/iliketomoveit/textures/item/magic_carpet.png")) + + doLast { + def migration = new JsonSlurper().parse(file( + "pack/migrations/26.2.0-alpha.224-four-bug-fixes-to-alpha.225.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 sourceModules = [ + anotherworld: "0.0.0-alpha.55", itsalive: "0.0.0-alpha.37", + iliketomoveit: "0.0.0-alpha.17", onlyfun: "0.0.0-alpha.26", + sanctuary: "0.0.0-alpha.128"] + def targetModules = [ + anotherworld: "0.0.0-alpha.56", itsalive: "0.0.0-alpha.38", + iliketomoveit: "0.0.0-alpha.18", onlyfun: "0.0.0-alpha.27", + sanctuary: "0.0.0-alpha.129"] + def workspaceModules = moduleIds.collectEntries { id -> + [(id): project(":${id}").version.toString()] + } + def requiredJars = workspaceModules.collect { id, version -> + "file = \"mods/${id}-${version}.jar\"" + } + def obsoleteJars = sourceModules.collect { id, version -> + "file = \"mods/${id}-${version}.jar\"" + } + def manifests = targetModules.collectEntries { id, version -> + [(id): new JsonSlurper().parse(file("${id}/src/main/resources/fabric.mod.json"))] + } + def vaultData = file( + "anotherworld/src/main/java/fr/koka99cab/sanctuary26/anotherworld/vault/VaultData.java").text + def drilling = file( + "anotherworld/src/main/java/fr/koka99cab/sanctuary26/anotherworld/vault/VaultDrillingService.java").text + def vaultSmoke = file( + "anotherworld/src/test/java/fr/koka99cab/sanctuary26/anotherworld/vault/VaultRulesSmoke.java").text + def variantLifecycle = file( + "itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/canaplia/CanapliaVariantLifecycle.java").text + def crop = file( + "itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/canaplia/block/CanapliaHempCropBlock.java").text + def canapliaSmoke = file( + "itsalive/src/test/java/fr/koka99cab/sanctuary26/itsalive/canaplia/CanapliaGameplaySmoke.java").text + def entityPolicy = file( + "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/entity/SanctuaryEntityPolicy.java").text + def companionMixin = file( + "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/LivingEntityCompanionMixin.java").text + def questBoard = file( + "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardService.java").text + def questRequests = file( + "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestRequestService.java").text + def lootboxes = file( + "onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/loot/OnlyFunLootboxDrops.java").text + def carpetModel = new JsonSlurper().parse(file( + "iliketomoveit/src/main/resources/assets/iliketomoveit/models/item/magic_carpet.json")) + def carpetTexture = file( + "iliketomoveit/src/main/resources/assets/iliketomoveit/textures/item/magic_carpet.png") + def carpetTextureHash = MessageDigest.getInstance("SHA-256") + .digest(carpetTexture.bytes).encodeHex().toString() + if (rootProject.pack_version != "26.2.0-alpha.225" + || targetModules.any { id, version -> rootProject.property("${id}_version") != version } + || migration.status != "released" + || migration.source?.pack_version != "26.2.0-alpha.224" + || migration.source?.modules != sourceModules + || migration.target?.pack_version != "26.2.0-alpha.225" + || migration.target?.modules != targetModules + || migration.fixed_issues != [105, 116, 123, 124] + || migration.safe_vault_raid?.attacker_requires_registered_vault != true + || migration.safe_vault_raid?.validated_when_drilling_starts != true + || migration.safe_vault_raid?.revalidated_during_drilling != true + || migration.safe_vault_raid?.revalidated_before_balance_transfer != true + || migration.temporary_companions?.public_policy_api != "SanctuaryEntityPolicy" + || migration.temporary_companions?.vanilla_loot_suppressed != true + || migration.temporary_companions?.experience_suppressed != true + || migration.temporary_companions?.quest_board_progress_suppressed != true + || migration.temporary_companions?.community_request_progress_suppressed != true + || migration.temporary_companions?.onlyfun_lootboxes_suppressed != true + || migration.canaplia_variants?.historical_seed_ids_preserved != 16 + || migration.canaplia_variants?.natural_growth_preserves_variant != true + || migration.canaplia_variants?.block_state_persistence_preserves_variant != true + || migration.canaplia_variants?.tender_plus_olive_can_produce_gold != true + || migration.magic_carpet_texture?.texture != "iliketomoveit:item/magic_carpet" + || migration.magic_carpet_texture?.historical_totem_art_restored != true + || migration.magic_carpet_texture?.purple_wool_reference_removed != true + || migration.compatibility?.existing_saves_supported != true + || migration.compatibility?.new_world_required != false + || migration.compatibility?.save_reset_required != false + || migration.compatibility?.persistent_data_formats_changed != false + || migration.compatibility?.network_protocols_changed != false + || migration.compatibility?.client_server_update_required != true + || migration.distribution?.pack_release_updated != true + || migration.distribution?.packwiz_index_refreshed != true + || migration.distribution?.prism_modrinth_index_updated != true + || manifests.onlyfun.depends?.sanctuary != ">=0.0.0-alpha.129" + || !vaultData.contains("hasRegisteredVault") + || !vaultData.contains("canReceiveRaidLoot") + || drilling.count("hasRegisteredVault(attacker.getUUID())") < 2 + || !drilling.contains("data.transferRaid(session.owner(), attacker.getUUID())") + || !vaultSmoke.contains("an attacker without a registered vault cannot receive raid loot") + || !variantLifecycle.contains("fromPersistedKey") + || crop.contains("super.randomTick") + || !crop.contains("CanapliaVariantLifecycle.afterGrowth") + || !canapliaSmoke.contains("CanapliaVariantKey.values()") + || !canapliaSmoke.contains("CanapliaVariantKey.GOLD") + || !entityPolicy.contains('TEMPORARY_COMPANION_TAG = "sanctuary_companion"') + || !companionMixin.contains('method = "dropAllDeathLoot"') + || !companionMixin.contains("ci.cancel()") + || !questBoard.contains("SanctuaryEntityPolicy.isTemporaryCompanion") + || !questRequests.contains("SanctuaryEntityPolicy.isTemporaryCompanion") + || !lootboxes.contains("SanctuaryEntityPolicy.isTemporaryCompanion") + || carpetModel.textures?.layer0 != "iliketomoveit:item/magic_carpet" + || carpetTextureHash != "3e4527d24a37f0632b27d2c857b047c581db07eaa41befaffbf28043a8ed86cc" + || release.pack_version != "26.2.0-alpha.225" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.225.mrpack" + || prism.versionId != "26.2.0-alpha.225" + || !packwiz.contains('version = "26.2.0-alpha.225"') + || requiredJars.any { !packwizIndex.contains(it) } + || obsoleteJars.any { packwizIndex.contains(it) } + || !changelog.contains("## `26.2.0-alpha.225`") + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.225`**")) { + throw new GradleException("The alpha.225 four-ticket bug-fix release is incomplete") + } + } +} + tasks.named("verifyWorkspace") { dependsOn tasks.named("verifyAlpha213Release") dependsOn tasks.named("verifyAlpha214Release") @@ -7428,6 +7595,7 @@ tasks.named("verifyWorkspace") { dependsOn tasks.named("verifyAlpha222Release") dependsOn tasks.named("verifyAlpha223Release") dependsOn tasks.named("verifyAlpha224Release") + dependsOn tasks.named("verifyAlpha225Release") } tasks.named("check") { diff --git a/gradle.properties b/gradle.properties index d28358b..5e09187 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,19 +16,19 @@ ambiance_version=0.0.0-alpha.22 ambiance_lifecycle=active redstoner_version=0.0.0-alpha.13 redstoner_lifecycle=active -anotherworld_version=0.0.0-alpha.55 +anotherworld_version=0.0.0-alpha.56 anotherworld_lifecycle=active -itsalive_version=0.0.0-alpha.37 +itsalive_version=0.0.0-alpha.38 itsalive_lifecycle=active ouch_version=0.0.0-alpha.11 ouch_lifecycle=active masterkey_version=0.0.0-alpha.9 masterkey_lifecycle=active -iliketomoveit_version=0.0.0-alpha.17 +iliketomoveit_version=0.0.0-alpha.18 iliketomoveit_lifecycle=active -onlyfun_version=0.0.0-alpha.26 +onlyfun_version=0.0.0-alpha.27 onlyfun_lifecycle=active -sanctuary_version=0.0.0-alpha.128 +sanctuary_version=0.0.0-alpha.129 sanctuary_lifecycle=active -pack_version=26.2.0-alpha.224 +pack_version=26.2.0-alpha.225 maven_group=fr.koka99cab.sanctuary26 diff --git a/iliketomoveit/build.gradle b/iliketomoveit/build.gradle index f9edd7d..21701da 100644 --- a/iliketomoveit/build.gradle +++ b/iliketomoveit/build.gradle @@ -321,7 +321,7 @@ tasks.register("verifyPortals") { } def atlasCavernsMigration = new JsonSlurper().parse(rootProject.file( "pack/migrations/26.2.0-alpha.149-atlas-caverns-to-alpha.150.json")) - if (project.version.toString() != "0.0.0-alpha.17" + if (project.version.toString() != "0.0.0-alpha.18" || atlasCavernsMigration.target?.pack_version != "26.2.0-alpha.150" || atlasCavernsMigration.target?.modules?.iliketomoveit != "0.0.0-alpha.9" || atlasCavernsMigration.portals?.active_routes != [ @@ -357,7 +357,7 @@ tasks.register("verifySilverAircraft") { def manifest = new JsonSlurper().parse(file("src/main/resources/fabric.mod.json")) def migration = new JsonSlurper().parse(rootProject.file( "pack/migrations/26.2.0-alpha.184-silver-engineering-to-alpha.185.json")) - if (project.version.toString() != "0.0.0-alpha.17" + if (project.version.toString() != "0.0.0-alpha.18" || recipe.pattern != ["PGP", "GCG", "PBP"] || recipe.key != [B: "anotherworld:silver_block", C: "anotherworld:aircraft_cockpit", G: "anotherworld:silver_gear", P: "anotherworld:silver_plate"] @@ -386,7 +386,7 @@ tasks.register("verifyGrapplePrediction") { def payload = file("src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/network/GrappleStatePayload.java").text def controller = file("src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/grapple/GrappleController.java").text def prediction = file("src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/client/grapple/ClientGrapplePrediction.java").text - if (project.version.toString() != "0.0.0-alpha.17" + if (project.version.toString() != "0.0.0-alpha.18" || migration.target?.modules?.iliketomoveit != "0.0.0-alpha.13" || migration.grappling?.owner_prediction_payload != "iliketomoveit:s2c/grapple_state" || migration.compatibility?.iliketomoveit_source_network_protocol != 4 @@ -418,7 +418,7 @@ tasks.register("verifyWaystoneDescendingRelease") { "src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/waystone/WaystoneElevatorRules.java").text def teleportation = file( "src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/network/WaystoneTeleportation.java").text - if (project.version.toString() != "0.0.0-alpha.17" + if (project.version.toString() != "0.0.0-alpha.18" || migration.target?.modules?.iliketomoveit != "0.0.0-alpha.14" || migration.waystone_elevator?.undiscovered_downward_destination_allowed != true || migration.waystone_elevator?.destination_discovered_after_arrival != true @@ -452,7 +452,7 @@ tasks.register("verifyAlphaPortal") { def locales = ["fr_fr", "en_us", "ru_ru"].collect { new JsonSlurper().parse(file("src/main/resources/assets/iliketomoveit/lang/${it}.json")) } - if (project.version.toString() != "0.0.0-alpha.17" + if (project.version.toString() != "0.0.0-alpha.18" || route.schema_version != 2 || route.source_dimension != "minecraft:overworld" || route.destination_dimension != "sanctuary:alpha" || route.destination_resolver != "fixed" diff --git a/itsalive/build.gradle b/itsalive/build.gradle index d5b38b3..5ffaf89 100644 --- a/itsalive/build.gradle +++ b/itsalive/build.gradle @@ -565,7 +565,7 @@ tasks.register("verifyItsAlive") { def climateSource = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/ClimateCropForaging.java").text def pineappleSource = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/PineappleItem.java").text def worldgenSource = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/ItsAliveAgricultureWorldGeneration.java").text - if (project.version.toString() != "0.0.0-alpha.37" + if (project.version.toString() != "0.0.0-alpha.38" || climateMigration.target?.pack_version != "26.2.0-alpha.157" || climateMigration.target?.modules?.itsalive != "0.0.0-alpha.24" || !climateSource.contains("PlayerBlockBreakEvents.AFTER.register") @@ -1322,7 +1322,7 @@ tasks.register("verifyCulinaryReliability") { } } } - if (project.version.toString() != "0.0.0-alpha.37" + if (project.version.toString() != "0.0.0-alpha.38" || migration.target?.modules?.itsalive != "0.0.0-alpha.28" || migration.culinary_fixes?.food_press_contents_destroyed_on_break != true || migration.culinary_fixes?.comparator_contract?.blocks?.size() != 6 @@ -1360,7 +1360,7 @@ tasks.register("verifyCauldronBatching") { def recipe = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/recipe/CulinaryProcessRecipe.java").text def cauldron = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/block/entity/CookingCauldronBlockEntity.java").text def timed = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/block/entity/AbstractTimedCulinaryBlockEntity.java").text - if (project.version.toString() != "0.0.0-alpha.37" + if (project.version.toString() != "0.0.0-alpha.38" || migration.target?.modules?.itsalive != "0.0.0-alpha.29" || migration.cauldron_batches?.logical_stack_limit != 64 || migration.cauldron_batches?.identity != "same_item_same_components" @@ -1398,7 +1398,7 @@ tasks.register("verifyFermentationBarrelAutomation") { def partialMatching = file("src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/recipe/CulinaryPartialMatching.java").text def blockstate = new JsonSlurper().parse( file("src/main/resources/assets/itsalive/blockstates/fermentation_barrel.json")) - if (project.version.toString() != "0.0.0-alpha.37" + if (project.version.toString() != "0.0.0-alpha.38" || migration.source?.modules?.itsalive != "0.0.0-alpha.29" || migration.target?.modules?.itsalive != "0.0.0-alpha.30" || migration.fermentation_barrel?.maximum_units_per_input_slot != 1 @@ -1446,7 +1446,7 @@ tasks.register("verifyCulinaryLecternRelease") { [(locale): new JsonSlurper().parse(file( "src/main/resources/assets/itsalive/lang/${locale}.json"))] } - if (project.version.toString() != "0.0.0-alpha.37" + if (project.version.toString() != "0.0.0-alpha.38" || migration.target?.modules?.itsalive != "0.0.0-alpha.31" || migration.culinary_lectern?.book_tag != "minecraft:lectern_books" || migration.culinary_lectern?.owner_catalog_shared_while_placed != true @@ -1509,7 +1509,7 @@ tasks.register("verifyCanapliaForbiddenBook") { fr_fr: "Livre interdit", en_us: "Forbidden Book", ru_ru: "Запретная книга"] - if (project.version.toString() != "0.0.0-alpha.37" + if (project.version.toString() != "0.0.0-alpha.38" || !pageItem.contains("CanapliaKnowledge.learnRandomUnknown(serverPlayer)") || !knowledge.contains("unknownVariants(data.personal(player.getUUID()))") || !knowledge.contains("data.personal(inscription.ownerId())") diff --git a/onlyfun/src/main/resources/fabric.mod.json b/onlyfun/src/main/resources/fabric.mod.json index 73a91c7..49f24b8 100644 --- a/onlyfun/src/main/resources/fabric.mod.json +++ b/onlyfun/src/main/resources/fabric.mod.json @@ -27,7 +27,7 @@ "java": ">=25", "fabric-api": ">=0.154.2+26.2", "iliketomoveit": ">=0.0.0-alpha.17", - "sanctuary": ">=0.0.0-alpha.127" + "sanctuary": ">=0.0.0-alpha.129" }, "custom": { "sanctuary26": { diff --git a/pack/migrations/26.2.0-alpha.224-four-bug-fixes-to-alpha.225.json b/pack/migrations/26.2.0-alpha.224-four-bug-fixes-to-alpha.225.json new file mode 100644 index 0000000..e5288c4 --- /dev/null +++ b/pack/migrations/26.2.0-alpha.224-four-bug-fixes-to-alpha.225.json @@ -0,0 +1,87 @@ +{ + "schema_version": 1, + "status": "released", + "source": { + "pack_version": "26.2.0-alpha.224", + "modules": { + "anotherworld": "0.0.0-alpha.55", + "itsalive": "0.0.0-alpha.37", + "iliketomoveit": "0.0.0-alpha.17", + "onlyfun": "0.0.0-alpha.26", + "sanctuary": "0.0.0-alpha.128" + } + }, + "target": { + "pack_version": "26.2.0-alpha.225", + "modules": { + "anotherworld": "0.0.0-alpha.56", + "itsalive": "0.0.0-alpha.38", + "iliketomoveit": "0.0.0-alpha.18", + "onlyfun": "0.0.0-alpha.27", + "sanctuary": "0.0.0-alpha.129" + } + }, + "fixed_issues": [105, 116, 123, 124], + "safe_vault_raid": { + "owner": "anotherworld", + "attacker_requires_registered_vault": true, + "validated_when_drilling_starts": true, + "revalidated_during_drilling": true, + "revalidated_before_balance_transfer": true + }, + "temporary_companions": { + "owner": "sanctuary", + "public_policy_api": "SanctuaryEntityPolicy", + "vanilla_loot_suppressed": true, + "experience_suppressed": true, + "quest_board_progress_suppressed": true, + "community_request_progress_suppressed": true, + "onlyfun_lootboxes_suppressed": true + }, + "canaplia_variants": { + "owner": "itsalive", + "historical_seed_ids_preserved": 16, + "placement_preserves_variant": true, + "natural_growth_preserves_variant": true, + "bonemeal_preserves_variant": true, + "upper_crop_preserves_variant": true, + "block_state_persistence_preserves_variant": true, + "harvest_and_break_drops_preserve_variant": true, + "mature_neighbors_preserve_variant": true, + "tender_plus_olive_can_produce_gold": true + }, + "magic_carpet_texture": { + "owner": "iliketomoveit", + "canonical_item": "iliketomoveit:magic_carpet", + "legacy_item": "portals:notch_totem", + "texture": "iliketomoveit:item/magic_carpet", + "historical_totem_art_restored": true, + "purple_wool_reference_removed": true, + "platform_behavior_changed": false + }, + "compatibility": { + "existing_saves_supported": true, + "new_world_required": false, + "save_reset_required": false, + "registry_ids_changed": false, + "persistent_data_formats_changed": false, + "network_protocols_changed": false, + "client_server_update_required": true, + "anotherworld_data_version": 5, + "anotherworld_network_protocol": 2, + "itsalive_data_version": 4, + "itsalive_network_protocol": 4, + "iliketomoveit_data_version": 4, + "iliketomoveit_network_protocol": 5, + "onlyfun_data_version": 2, + "onlyfun_network_protocol": 3, + "sanctuary_data_version": 13, + "sanctuary_network_protocol": 23 + }, + "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 cb357fb..e518c1d 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.22.jar" -hash = "20f1b31b773c7cea9c5cbe01161c2c7e541eaca714213752a8d6227bae85c9b9" +hash = "d6c44f09ddc455ae0cec02a1568e07036f11a3b2d105659e9aa14289357ddb47" [[files]] -file = "mods/anotherworld-0.0.0-alpha.55.jar" -hash = "2c01fb018cce49b8ef5ff6de1f2c4d0218243c23581333675c60dfe4ab48dfde" +file = "mods/anotherworld-0.0.0-alpha.56.jar" +hash = "ede131b654d26110af8c7e64238c1b5f99634c3e1307346953ad6ab622ccfedc" [[files]] file = "mods/events-0.0.0-alpha.0.jar" -hash = "5bc52d22c93203c6c3881cd9086db5a1166feb6b31a67af8e761c9c0d0b87f37" +hash = "9ccc30733117ab9984df3d69b98ab82d731578a6c35116595c96f2362ea22b76" [[files]] file = "mods/fabric-api.pw.toml" @@ -30,8 +30,8 @@ hash = "df032a6b051d0262cf24945c43e0e6b915e8cc1d62af62fe933932e7f35960c4" metafile = true [[files]] -file = "mods/iliketomoveit-0.0.0-alpha.17.jar" -hash = "4aa2f5394f4e12301d13026c7b542660334f7c4e4f8057ea3d36dd04dfe461b6" +file = "mods/iliketomoveit-0.0.0-alpha.18.jar" +hash = "f0ccb5a3f411cb01bcf328a139a1f90e8357587c549778f98354d910d69b2616" [[files]] file = "mods/iris.pw.toml" @@ -39,8 +39,8 @@ hash = "84a3cef87679c0d21dceb4641167dc0368b9a3593698f6a3632485e9b3a8d5da" metafile = true [[files]] -file = "mods/itsalive-0.0.0-alpha.37.jar" -hash = "926803c09b2247f42363d1042346bff9798b982aaeafa96800711e259c48039d" +file = "mods/itsalive-0.0.0-alpha.38.jar" +hash = "6dab7b2dca11cc1cd9789ed66cc8403b849cb73227d965d979eeebcf5c201309" [[files]] file = "mods/jei.pw.toml" @@ -49,23 +49,23 @@ metafile = true [[files]] file = "mods/masterkey-0.0.0-alpha.9.jar" -hash = "3069c9e784f425f59189c255638648ca51598c8626e340df9bf72a2c06f31753" +hash = "ab0241386a0958505622487318c2e2e269e57e793ef873ed71dac8e0f420338b" [[files]] -file = "mods/onlyfun-0.0.0-alpha.26.jar" -hash = "5d2915c761e87cd94f4d4075c85ebb71f021b59b92ced5eba6b5da8bb1413519" +file = "mods/onlyfun-0.0.0-alpha.27.jar" +hash = "15dbc6a9c3d4fef699c1f62f989c1d47e366cc781747c76640f5de668ea00510" [[files]] file = "mods/ouch-0.0.0-alpha.11.jar" -hash = "0e26e6e386781e2e258ef01eecad0129c00eec11783f182a34226213ea5f252e" +hash = "5bc1e244309a8835ef1d7869225201179cbee12853fb2f2390bfd47f2fcc3c4a" [[files]] file = "mods/redstoner-0.0.0-alpha.13.jar" -hash = "2e9519b8f8092883616fdce4e5b4ab427b7875565423ea18a90adb40df751878" +hash = "d913aac62b6e7152c5751ea0ddc820a98a0b74c3864f4c0bdbfc3b44eeaa3417" [[files]] -file = "mods/sanctuary-0.0.0-alpha.128.jar" -hash = "9ac5e370509e0d0be77222aca227b698d449cfbcdde70ebc58fee2cec05e6a7e" +file = "mods/sanctuary-0.0.0-alpha.129.jar" +hash = "0b67c37680e5004b7f08ac9de32b501fc8f2025fe5a7649858948f14a5d8f5f5" [[files]] file = "mods/simple-voice-chat.pw.toml" diff --git a/pack/packwiz/pack.toml b/pack/packwiz/pack.toml index c9fc692..594a73d 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.224" +version = "26.2.0-alpha.225" pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "0073565d9342eae7a811696a273094f157b9a6ec113c8282c3e92714c8fe921a" +hash = "19d66dcd7dbbc8e1a9471dcb259a9c9aad727acbc8428f114a48c05c2fd1d8de" [versions] fabric = "0.19.3" diff --git a/pack/prism/modrinth.index.json b/pack/prism/modrinth.index.json index 4528a20..8593c1f 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.224", + "versionId": "26.2.0-alpha.225", "files": [ { "path": "mods/fabric-api-0.158.0+26.2.jar", diff --git a/pack/release.json b/pack/release.json index ee8e3dc..8e51c3a 100644 --- a/pack/release.json +++ b/pack/release.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "pack_version": "26.2.0-alpha.224", + "pack_version": "26.2.0-alpha.225", "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.224.mrpack", + "primary_file": "sanctuary-26.2.0-alpha.225.mrpack", "shared_client_server_pack": true, "update_owner": "packwiz-installer", "check_on_launch": true, diff --git a/sanctuary/build.gradle b/sanctuary/build.gradle index 743ba1d..9d22301 100644 --- a/sanctuary/build.gradle +++ b/sanctuary/build.gradle @@ -124,6 +124,14 @@ tasks.register("inventorySortSmoke", JavaExec) { mainClass = "fr.koka99cab.sanctuary26.sanctuary.gameplay.SanctuaryInventorySortSmoke" } +tasks.register("entityPolicySmoke", JavaExec) { + group = "verification" + description = "Checks that only tagged temporary companions are excluded from loot and quests." + dependsOn tasks.named("testClasses") + classpath = sourceSets.test.runtimeClasspath + mainClass = "fr.koka99cab.sanctuary26.sanctuary.api.entity.SanctuaryEntityPolicySmoke" +} + tasks.register("alphaIndevGeneratorSmoke", JavaExec) { group = "verification" description = "Checks deterministic finite Indev islands, residences and safe portal arrivals." @@ -175,7 +183,7 @@ tasks.register("verifyBlackMarket") { def questData = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardData.java").text def quests = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardService.java").text def inventoryView = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/inventory/SanctuaryPlayerInventoryView.java").text - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || !data.contains('SAVE_KEY = "black_market"') || !data.contains("DATA_VERSION = 2") || !data.contains("ItemStack.CODEC.fieldOf(\"item\")") || !data.contains("replaceListing") || !service.contains("LISTING_FEE_RUBIES = 1") || !service.contains("COMMISSION_PERCENT = 5") @@ -2891,7 +2899,7 @@ tasks.register("verifyShopCurrencyRowsRelease") { "src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/BlackMarketService.java").text def shop = file( "src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopService.java").text - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.modules?.sanctuary != "0.0.0-alpha.117" || migration.shop_currency_inventory?.all_unlocked_rows_counted != true || migration.shop_currency_inventory?.overflow_rows_counted != true @@ -3057,7 +3065,7 @@ tasks.register("verifyProgressivePauseMenu") { "pack/migrations/26.2.0-alpha.190-progressive-pause-menu-to-alpha.191.json")) def pauseMenu = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/client/PauseScreenMixin.java").text def costs = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/progression/SanctuaryProgressionCosts.java").text - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.pack_version != "26.2.0-alpha.191" || migration.target?.modules?.sanctuary != "0.0.0-alpha.109" || migration.pause_menu?.progression_full_width != true @@ -3095,7 +3103,7 @@ tasks.register("verifyShopPricingLayout") { "pack/migrations/26.2.0-alpha.192-shop-pricing-layout-to-alpha.193.json")) def screen = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/client/SanctuaryShopScreen.java").text def progression = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopProgression.java").text - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.modules?.sanctuary != "0.0.0-alpha.110" || migration.shop_layout?.locked_offer_buttons != 6 || migration.shop_layout?.button_slots != [4, 5, 6, 7, 8, 9] @@ -3126,7 +3134,7 @@ tasks.register("verifyShopCsvBossGates") { "pack/migrations/26.2.0-alpha.194-shop-csv-boss-gates-to-alpha.195.json")) def provider = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopCatalogProvider.java").text def catalog = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopOfferCatalog.java").text - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.pack_version != "26.2.0-alpha.195" || migration.target?.modules?.sanctuary != "0.0.0-alpha.111" || migration.compatibility?.sanctuary_data_version != 11 @@ -3157,7 +3165,7 @@ tasks.register("verifyDeliveryBoxOrientation") { def blockstate = new JsonSlurper().parse( file("src/main/resources/assets/sanctuary/blockstates/delivery_box.json")) def expectedVariants = ["facing=north", "facing=east", "facing=south", "facing=west"].toSet() - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.modules?.sanctuary != "0.0.0-alpha.112" || migration.mailbox?.id != "sanctuary:delivery_box" || migration.mailbox?.horizontal_facing != true @@ -3185,7 +3193,7 @@ tasks.register("verifyInventoryShiftClick") { def mixin = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/AbstractContainerMenuMixin.java").text def screen = file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/mixin/client/AbstractContainerScreenMixin.java").text def gui = file("INVENTORY_GUI.md").text - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || !transfer.contains("shouldAppendOverflow") || !transfer.contains("isVanillaStorageRange") || !transfer.contains("hotbarStart") @@ -3231,7 +3239,7 @@ tasks.register("verifyQuestRequests") { new JsonSlurper().parse(file("src/main/resources/data/sanctuary/loot_table/blocks/${path}.json")) .pools[0].entries[0].name } - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.modules?.sanctuary != "0.0.0-alpha.113" || migration.quest_requests?.save_key != "quest_requests" || migration.quest_requests?.data_version != 1 @@ -3289,7 +3297,7 @@ tasks.register("verifyQuestRequestContracts") { def locales = ["fr_fr", "en_us", "ru_ru"].collectEntries { locale -> [(locale): new JsonSlurper().parse(file("src/main/resources/assets/sanctuary/lang/${locale}.json"))] } - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.198" || migration.source?.modules?.sanctuary != "0.0.0-alpha.114" || migration.target?.pack_version != "26.2.0-alpha.199" @@ -3358,7 +3366,7 @@ tasks.register("verifyQuestRequestEscrow") { def locales = ["fr_fr", "en_us", "ru_ru"].collectEntries { locale -> [(locale): new JsonSlurper().parse(file("src/main/resources/assets/sanctuary/lang/${locale}.json"))] } - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.source?.pack_version != "26.2.0-alpha.200" || migration.source?.modules?.sanctuary != "0.0.0-alpha.115" || migration.target?.pack_version != "26.2.0-alpha.201" @@ -3430,7 +3438,7 @@ tasks.register("verifyAlphaIndev") { def locales = ["fr_fr", "en_us", "ru_ru"].collect { new JsonSlurper().parse(file("src/main/resources/assets/sanctuary/lang/${it}.json")) } - if (project.version.toString() != "0.0.0-alpha.128" + if (project.version.toString() != "0.0.0-alpha.129" || migration.target?.modules?.sanctuary != "0.0.0-alpha.122" || migration.alpha_world?.dimension != "sanctuary:alpha" || migration.alpha_world?.legacy_dimension != "portals:alpha" @@ -3468,5 +3476,6 @@ tasks.named("check") { dependsOn tasks.named("alphaIndevGeneratorSmoke") dependsOn tasks.named("capeJoinSyncSmoke") dependsOn tasks.named("inventorySortSmoke") + dependsOn tasks.named("entityPolicySmoke") dependsOn tasks.named("verifyAlphaIndev") }