Merge pull request 'release: Sanctuary 26.2.0-alpha.210 — Livre interdit et correctifs' (#71) from release/26.2.0-alpha.210 into main
Verification 26.2 / check (push) Canceled after 0s

Reviewed-on: #71
This commit was merged in pull request #71.
This commit is contained in:
2026-08-29 15:44:14 +00:00
13 changed files with 323 additions and 152 deletions
+1 -1
View File
@@ -57,4 +57,4 @@ Les IDs historiques, les clés et le namespace sont inchangés. L'ancien format
La source historique 2.0.0 demeure **All Rights Reserved**, copyright KOKA99CAB. À la demande explicite du détenteur des droits, ses 224 textures 16×16 ont été restaurées dans l'alpha.209 ; leur provenance est documentée avec les ressources. Aucun fichier Java, modèle, son ou JSON historique n'est copié. Le code d'intégration reste sous GPL-3.0-or-later.
Les inventaires machine sont dans `pack/migrations/canaplia-foundation-alpha32.json` et `pack/migrations/canaplia-gameplay-alpha33.json`. La release `26.2.0-alpha.209` décrit la correction de gameplay et l'import autorisé dans `pack/migrations/26.2.0-alpha.208-canaplia-fixes-to-alpha.209.json`.
Les inventaires machine sont dans `pack/migrations/canaplia-foundation-alpha32.json` et `pack/migrations/canaplia-gameplay-alpha33.json`. La release `26.2.0-alpha.209` décrit la correction de gameplay et l'import autorisé dans `pack/migrations/26.2.0-alpha.208-canaplia-fixes-to-alpha.209.json`; lalpha.210 décrit le Livre interdit et les autres changements distribués dans `pack/migrations/26.2.0-alpha.209-forbidden-book-and-polish-to-alpha.210.json`.
+9 -2
View File
@@ -6,15 +6,22 @@ Ce journal suit les **versions du modpack**. Lorsqu'un seul module change, sa ve
- Depuis `26.2.0-alpha.6`, le pack et les modules ont des versions indépendantes. I Like To Move It et Only Fun deviennent les cinquième et sixième modules actifs dans l'alpha 46.
- Les versions ci-dessous ont été reconstituées à partir des JAR archivés, des packs locaux et du code source actuel. Les dates n'étant pas enregistrées de manière fiable, elles ne sont pas inventées.
## Non distribué
## `26.2.0-alpha.210`
Modules modifiés : **I Like To Move It `0.0.0-alpha.15`** et **It's Alive `0.0.0-alpha.35`**. Le pack distribué reste en `26.2.0-alpha.209` jusqu’à la prochaine release.
Modules modifiés : **Sanctuary `0.0.0-alpha.118`**, **Only Fun `0.0.0-alpha.21`**, **I Like To Move It `0.0.0-alpha.15`** et **It's Alive `0.0.0-alpha.35`**. Les six autres modules conservent leur version issue de lalpha.209.
- sépare le compteur quotidien et le statut de déblocage du Shop pour empêcher leur chevauchement ;
- retire du Shop Only Fun les raccourcis qui contournaient la progression normale ;
- attribue à tous les Zombies vanilla des gamertags déterministes inspirés de la Xbox 360 ;
- resynchronise les capes après une reconnexion avec des tentatives retardées et bornées ;
- réserve les requêtes communautaires aux panneaux dédiés au lieu dintercepter les panneaux ordinaires ;
- double la vitesse de croisière du Happy Ghast lorsquun joueur le pilote, sans accélérer ses déplacements autonomes ;
- conserve les données v3 et le protocole réseau 5, sans migration de sauvegarde ni nouvel ID.
- transforme le Codex Canaplia en « Livre interdit » aux pages noires, sans page d'accueil, et fait découvrir une entrée aléatoire encore inconnue à chaque page consommée ;
- garde les découvertes du Livre interdit personnelles en main et partage temporairement celles du propriétaire uniquement lorsque le livre est posé sur un pupitre ;
- conserve les IDs et les anciennes données partagées, ainsi que les données v3 et le protocole réseau 4 d'It's Alive, sans migration de sauvegarde.
- actualise JEI de `30.28.0.191` à la bêta compatible `30.28.0.193` dans Packwiz et le manifeste Prism/Modrinth ;
- distribue les quatre JAR mis à jour dans Packwiz, Prism et le `.mrpack` partagé client/serveur, sans exiger de nouveau monde.
## `26.2.0-alpha.209`
+4 -4
View File
@@ -1,6 +1,6 @@
# Sanctuary 26.2
Workspace Fabric multi-projet de Sanctuary 2.0. Il construit dix JAR indépendants sur Minecraft 26.2, Fabric Loader 0.19.3, Fabric API 0.155.0+26.2, Loom 1.17, Gradle 9.5.1 et Java 25.
Workspace Fabric multi-projet de Sanctuary 2.0. Il construit dix JAR indépendants sur Minecraft 26.2, Fabric Loader 0.19.3, Fabric API 0.158.0+26.2, Loom 1.17, Gradle 9.5.1 et Java 25.
Auteur : **KOKA99CAB**
Licence : **GNU GPL 3.0 or Later** (`GPL-3.0-or-later`)
@@ -22,11 +22,11 @@ Licence : **GNU GPL 3.0 or Later** (`GPL-3.0-or-later`)
Les descriptions FR/EN/RU sont déclarées dans chaque `fabric.mod.json` et dans les fichiers de langue. Les images fournies servent d'icônes Fabric de leur module.
Version courante du pack distribué : **`26.2.0-alpha.208`**. Cette release distribue Canaplia complet avec It's Alive **`0.0.0-alpha.33`**, Ambiance **`0.0.0-alpha.14`** et Only Fun **`0.0.0-alpha.20`**.
Version courante du pack distribué : **`26.2.0-alpha.210`**. Cette release distribue le Livre interdit Canaplia avec It's Alive **`0.0.0-alpha.35`**, ainsi que Sanctuary **`0.0.0-alpha.118`**, Only Fun **`0.0.0-alpha.21`** et I Like To Move It **`0.0.0-alpha.15`**.
La migration [CANA-01 à CANA-09](CANAPLIA.md) porte Canaplia vers Minecraft 26.2. It's Alive **`0.0.0-alpha.33`** enregistre les seize familles, les découvertes, hybridations, résines, effets serveur et le Codex. 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.20`** exclut explicitement Canaplia du Shop et des récompenses ordinaires. Ces trois modules sont inclus dans l'alpha.208 pour les clients et les serveurs.
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.
Lalpha.208 ajoute Canaplia aux packs Modrinth, Prism et Packwiz sans exiger de nouveau monde. Les sources sauvages fonctionnent dans les chunks existants, tandis que les nouvelles données de compostage et de Codex sont créées ou migrées automatiquement à leur première utilisation.
Lalpha.210 ajoute le Livre interdit, accélère le Happy Ghast piloté, regroupe les corrections du Shop, des requêtes, des capes et des noms de Zombies, puis actualise JEI en **`30.28.0.193`**. Elle met à jour les packs Modrinth, Prism et Packwiz sans exiger de nouveau monde ni réinitialiser les sauvegardes.
Lalpha.207 rend le stockage du coffre-fort pratiquement illimité : rubis, saphirs et émeraudes utilisent chacun un solde 64 bits. Les 27 anciennes piles sont additionnées automatiquement lors du chargement, le Shop continue de consommer directement ces soldes et les 20 % pillés sont crédités dans le coffre-fort de lattaquant sans créer des millions dentités ou de piles dobjets.
+209 -103
View File
@@ -330,7 +330,7 @@ tasks.register("verifyWorkspace") {
}
def progressionJeiMigration = new JsonSlurper().parse(file(
"pack/migrations/26.2.0-alpha.87-progression-jei-audio-to-alpha.88.json"))
def jeiFiles = prismIndex.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.191.jar" }
def jeiFiles = prismIndex.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" }
if (progressionJeiMigration.source?.pack_version != "26.2.0-alpha.87"
|| progressionJeiMigration.target?.pack_version != "26.2.0-alpha.88"
|| progressionJeiMigration.target?.modules?.sanctuary != "0.0.0-alpha.38"
@@ -345,8 +345,8 @@ tasks.register("verifyWorkspace") {
|| progressionJeiMigration.compatibility?.network_protocol != 10
|| progressionJeiMigration.compatibility?.network_protocol_changed != true
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d"
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468"
|| jeiFiles[0].env?.client != "required" || jeiFiles[0].env?.server != "required") {
throw new GradleException("The alpha.88 progression, JEI and Minecrafter audio contract is incomplete")
}
@@ -3428,9 +3428,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.209"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|| rootProject.onlyfun_version != "0.0.0-alpha.20"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| rootProject.onlyfun_version != "0.0.0-alpha.21"
|| 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"]
@@ -3478,7 +3478,7 @@ tasks.register("verifyMirrorLavenderDrawerRelease") {
def redStonerRegistry = file(
"redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/registry/RedStonerRegistries.java").text
def drawerRecipe = file("redstoner/src/main/resources/data/redstoner/recipe/drawer.json")
if (rootProject.pack_version != "26.2.0-alpha.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| rootProject.redstoner_version != "0.0.0-alpha.10"
|| release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version
@@ -3713,7 +3713,7 @@ project(":onlyfun") {
def shopCsvText = shopCsv.getText("UTF-8")
def shopCsvLines = shopCsv.readLines("UTF-8")
if (manifest.custom.sanctuary26.data_version != 2
|| project.version.toString() != "0.0.0-alpha.20"
|| project.version.toString() != "0.0.0-alpha.21"
|| manifest.depends?.sanctuary != "*"
|| !javaText.contains("ANOMALY_DENOMINATOR = 256")
|| !javaText.contains("PITY_START = 24")
@@ -4126,9 +4126,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.209"
|| rootProject.onlyfun_version != "0.0.0-alpha.20"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.onlyfun_version != "0.0.0-alpha.21"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| 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"
@@ -4171,7 +4171,7 @@ tasks.register("verifyCuisineCropsRelease") {
def climate = file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/ClimateCropForaging.java").text
def rice = file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/RiceCropBlock.java").text
def bean = file("itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/agriculture/BeanCropBlock.java").text
if (rootProject.pack_version != "26.2.0-alpha.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version
|| migration.source?.pack_version != "26.2.0-alpha.193"
@@ -4220,9 +4220,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.209"
|| rootProject.onlyfun_version != "0.0.0-alpha.20"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.onlyfun_version != "0.0.0-alpha.21"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| 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"]
@@ -4266,7 +4266,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| migration.source?.pack_version != "26.2.0-alpha.195"
|| migration.target?.pack_version != "26.2.0-alpha.196"
|| migration.target?.modules != [
@@ -4284,10 +4284,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.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')) {
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')) {
throw new GradleException("The alpha.196 culinary, mailbox and grapple release contract is incomplete")
}
}
@@ -4312,9 +4312,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| 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"]
@@ -4332,10 +4332,10 @@ tasks.register("verifyQuestRequestsCauldronBatchesRelease") {
|| migration.distribution?.jei?.target != "30.26.0.186"
|| migration.compatibility?.sanctuary_target_network_protocol != 19
|| sanctuaryManifest.custom?.sanctuary26?.network_protocol != 21
|| release.pack_version != "26.2.0-alpha.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')) {
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')) {
throw new GradleException("The alpha.197 quest-request and cauldron-batch release contract is incomplete")
}
}
@@ -4362,7 +4362,7 @@ tasks.register("verifyFermentationBarrelAutomationRelease") {
def packwiz = file("pack/packwiz/pack.toml").text
def packwizIndex = file("pack/packwiz/index.toml").text
def itsAliveManifest = new JsonSlurper().parse(file("itsalive/src/main/resources/fabric.mod.json"))
if (rootProject.pack_version != "26.2.0-alpha.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| migration.source?.pack_version != "26.2.0-alpha.197"
|| migration.target?.pack_version != "26.2.0-alpha.198"
@@ -4381,11 +4381,11 @@ tasks.register("verifyFermentationBarrelAutomationRelease") {
|| migration.distribution?.packwiz_index_refreshed != true
|| itsAliveManifest.custom?.sanctuary26?.data_version != 3
|| itsAliveManifest.custom?.sanctuary26?.network_protocol != 4
|| release.pack_version != "26.2.0-alpha.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.34.jar"')) {
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.35.jar"')) {
throw new GradleException("The alpha.198 fermentation barrel release contract is incomplete")
}
}
@@ -4412,9 +4412,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| 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"
@@ -4426,12 +4426,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 != 21
|| release.pack_version != "26.2.0-alpha.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.34.jar"')
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.117.jar"')) {
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.35.jar"')
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.118.jar"')) {
throw new GradleException("The alpha.199 quest-request contract release is incomplete")
}
}
@@ -4467,7 +4467,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.ambiance_version != "0.0.0-alpha.14"
|| rootProject.ouch_version != "0.0.0-alpha.9"
|| migration.source?.pack_version != "26.2.0-alpha.199"
@@ -4501,10 +4501,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.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.14.jar"')
|| !packwizIndex.contains('file = "mods/ouch-0.0.0-alpha.9.jar"')) {
throw new GradleException("The alpha.200 Weather TNT and Ambiance release is incomplete")
@@ -4533,8 +4533,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.209"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| 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"
@@ -4548,11 +4548,11 @@ tasks.register("verifyQuestRequestEscrowRelease") {
|| migration.compatibility?.sanctuary_target_network_protocol != 21
|| sanctuaryManifest.custom?.sanctuary26?.data_version != 11
|| sanctuaryManifest.custom?.sanctuary26?.network_protocol != 21
|| release.pack_version != "26.2.0-alpha.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.117.jar"')) {
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.118.jar"')) {
throw new GradleException("The alpha.201 quest-request escrow release is incomplete")
}
}
@@ -4587,11 +4587,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| rootProject.iliketomoveit_version != "0.0.0-alpha.15"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| migration.source?.pack_version != "26.2.0-alpha.201"
|| migration.source?.modules != [
itsalive: "0.0.0-alpha.30",
@@ -4627,14 +4627,14 @@ tasks.register("verifyWaystoneShopCulinaryAlpha202Release") {
|| moveItManifest.custom?.sanctuary26?.network_protocol != 5
|| sanctuaryManifest.custom?.sanctuary26?.data_version != 11
|| sanctuaryManifest.custom?.sanctuary26?.network_protocol != 21
|| release.pack_version != "26.2.0-alpha.209"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.209.mrpack"
|| prism.versionId != "26.2.0-alpha.209"
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.34.jar"')
|| !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.14.jar"')
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.117.jar"')) {
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.35.jar"')
|| !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.15.jar"')
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.118.jar"')) {
throw new GradleException("The alpha.202 Waystone, Shop and culinary lectern release is incomplete")
}
}
@@ -4747,9 +4747,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|| rootProject.sanctuary_version != "0.0.0-alpha.118"
|| migration.schema_version != 1
|| migration.source?.pack_version != "26.2.0-alpha.201"
|| migration.target?.pack_version != "26.2.0-alpha.202"
@@ -4938,8 +4938,8 @@ tasks.register("verifySafeVaultInterfaceAlpha203Release") {
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 jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.191.jar" }
if (rootProject.pack_version != "26.2.0-alpha.209"
def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" }
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| migration.source?.pack_version != "26.2.0-alpha.202"
|| migration.source?.modules != [anotherworld: "0.0.0-alpha.50"]
@@ -4957,14 +4957,14 @@ 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.209.mrpack"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != rootProject.pack_version
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"')
|| packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.50.jar"')
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d") {
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468") {
throw new GradleException("The alpha.203 upright safe-vault interface release is incomplete")
}
}
@@ -4984,8 +4984,8 @@ tasks.register("verifySafeVaultFixAlpha204Release") {
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 jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.191.jar" }
if (rootProject.pack_version != "26.2.0-alpha.209"
def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" }
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| migration.source?.pack_version != "26.2.0-alpha.203"
|| migration.source?.modules != [anotherworld: "0.0.0-alpha.51"]
@@ -5011,14 +5011,14 @@ 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.209.mrpack"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != rootProject.pack_version
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"')
|| packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.51.jar"')
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d") {
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468") {
throw new GradleException("The alpha.204 Safe Block finalization release is incomplete")
}
}
@@ -5038,8 +5038,8 @@ tasks.register("verifySafeVaultCubeAlpha205Release") {
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 jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.191.jar" }
if (rootProject.pack_version != "26.2.0-alpha.209"
def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" }
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| migration.source?.pack_version != "26.2.0-alpha.204"
|| migration.source?.modules != [anotherworld: "0.0.0-alpha.52"]
@@ -5068,14 +5068,14 @@ 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.209.mrpack"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != rootProject.pack_version
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"')
|| packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.52.jar"')
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d") {
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468") {
throw new GradleException("The alpha.205 hollow safe-vault cube release is incomplete")
}
}
@@ -5096,8 +5096,8 @@ tasks.register("verifySafeVaultCtmAlpha206Release") {
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 jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.191.jar" }
if (rootProject.pack_version != "26.2.0-alpha.209"
def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" }
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| migration.source?.pack_version != "26.2.0-alpha.205"
|| migration.source?.modules != [anotherworld: "0.0.0-alpha.53"]
@@ -5120,14 +5120,14 @@ 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.209.mrpack"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != rootProject.pack_version
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"')
|| packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.53.jar"')
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d") {
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468") {
throw new GradleException("The alpha.206 Safe Block CTM column release is incomplete")
}
}
@@ -5148,8 +5148,8 @@ tasks.register("verifySafeVaultUnlimitedAlpha207Release") {
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 jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.191.jar" }
if (rootProject.pack_version != "26.2.0-alpha.209"
def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.28.0.193.jar" }
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.anotherworld_version != "0.0.0-alpha.55"
|| migration.source?.pack_version != "26.2.0-alpha.206"
|| migration.source?.modules != [anotherworld: "0.0.0-alpha.54"]
@@ -5179,14 +5179,14 @@ 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.209.mrpack"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != rootProject.pack_version
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.55.jar"')
|| packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.54.jar"')
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d") {
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468") {
throw new GradleException("The alpha.207 unlimited safe-vault balance release is incomplete")
}
}
@@ -5237,7 +5237,7 @@ tasks.register("verifyCanapliaFoundation") {
"itsalive/src/main/java/fr/koka99cab/sanctuary26/itsalive/ItsAliveMod.java").text
def visualApiSource = file(
"ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/api/visual/AmbianceVisualEffectApi.java").text
if (rootProject.pack_version != "26.2.0-alpha.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| rootProject.ambiance_version != "0.0.0-alpha.14"
|| migration.issue != 35
@@ -5303,6 +5303,7 @@ tasks.register("verifyCanapliaFoundation") {
tasks.named("verifyWorkspace") {
dependsOn "verifyCanapliaGameplay"
dependsOn "verifyCanapliaAlpha209Release"
dependsOn "verifyAlpha210Release"
dependsOn tasks.named("verifyWaystoneShopCulinaryAlpha202Release")
dependsOn tasks.named("verifySafeVaultFeature")
dependsOn tasks.named("verifySafeVaultInterfaceAlpha203Release")
@@ -5476,7 +5477,7 @@ tasks.register("verifyCanapliaAlpha209Release") {
def packwiz = file("pack/packwiz/pack.toml").text
def packwizIndex = file("pack/packwiz/index.toml").text
def jeiFiles = prism.files.findAll {
it.path == "mods/jei-26.2-fabric-30.28.0.191.jar"
it.path == "mods/jei-26.2-fabric-30.28.0.193.jar"
}
def expectedSource = [
ambiance: "0.0.0-alpha.12",
@@ -5486,10 +5487,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.209"
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.ambiance_version != expectedTarget.ambiance
|| rootProject.itsalive_version != "0.0.0-alpha.35"
|| rootProject.onlyfun_version != expectedTarget.onlyfun
|| rootProject.onlyfun_version != "0.0.0-alpha.21"
|| migration.source?.pack_version != "26.2.0-alpha.207"
|| migration.source?.modules != expectedSource
|| migration.target?.pack_version != "26.2.0-alpha.208"
@@ -5534,23 +5535,128 @@ 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.209.mrpack"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != rootProject.pack_version
|| !packwiz.contains('version = "26.2.0-alpha.209"')
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.14.jar"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.34.jar"')
|| !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.20.jar"')
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.35.jar"')
|| !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.21.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"')
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "35353e18b1cf2a61339463447fce1f3e2f716b80"
|| jeiFiles[0].hashes?.sha512 != "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d") {
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468") {
throw new GradleException("The alpha.209 Canaplia correction release is incomplete")
}
}
}
tasks.register("verifyAlpha210Release") {
group = "verification"
description = "Checks the Sanctuary 26.2.0-alpha.210 Forbidden Book and gameplay-polish release."
inputs.file(file("pack/migrations/26.2.0-alpha.209-forbidden-book-and-polish-to-alpha.210.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.files([
file("sanctuary/src/main/resources/fabric.mod.json"),
file("onlyfun/src/main/resources/fabric.mod.json"),
file("iliketomoveit/src/main/resources/fabric.mod.json"),
file("itsalive/src/main/resources/fabric.mod.json")])
doLast {
def migration = new JsonSlurper().parse(file(
"pack/migrations/26.2.0-alpha.209-forbidden-book-and-polish-to-alpha.210.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 manifests = ["sanctuary", "onlyfun", "iliketomoveit", "itsalive"].collectEntries { id ->
[(id): new JsonSlurper().parse(file("${id}/src/main/resources/fabric.mod.json"))]
}
def expectedSource = [
sanctuary: "0.0.0-alpha.117",
onlyfun: "0.0.0-alpha.20",
iliketomoveit: "0.0.0-alpha.14",
itsalive: "0.0.0-alpha.34"]
def expectedTarget = [
sanctuary: "0.0.0-alpha.118",
onlyfun: "0.0.0-alpha.21",
iliketomoveit: "0.0.0-alpha.15",
itsalive: "0.0.0-alpha.35"]
def requiredJars = expectedTarget.collect { id, version ->
"file = \"mods/${id}-${version}.jar\""
}
def obsoleteJars = expectedSource.collect { id, version ->
"file = \"mods/${id}-${version}.jar\""
}
def jeiFiles = prism.files.findAll {
it.path == "mods/jei-26.2-fabric-30.28.0.193.jar"
}
if (rootProject.pack_version != "26.2.0-alpha.210"
|| rootProject.sanctuary_version != expectedTarget.sanctuary
|| rootProject.onlyfun_version != expectedTarget.onlyfun
|| rootProject.iliketomoveit_version != expectedTarget.iliketomoveit
|| rootProject.itsalive_version != expectedTarget.itsalive
|| migration.source?.pack_version != "26.2.0-alpha.209"
|| migration.source?.modules != expectedSource
|| migration.target?.pack_version != "26.2.0-alpha.210"
|| migration.target?.modules != expectedTarget
|| migration.features?.shop_status_layout_separated != true
|| migration.features?.shop_progression_bypasses_removed != true
|| migration.features?.zombie_xbox_360_names != true
|| migration.features?.cape_reconnect_resynchronization != true
|| migration.features?.quest_requests_require_dedicated_signs != true
|| migration.features?.ridden_happy_ghast_cruise_speed_multiplier != 2.0
|| migration.features?.canaplia_codex_name != "Forbidden Book"
|| migration.features?.canaplia_page_learns_random_unknown_entry != true
|| migration.features?.canaplia_handheld_knowledge_personal != true
|| migration.features?.canaplia_lectern_shares_owner_knowledge != true
|| migration.compatibility?.new_world_required != false
|| migration.compatibility?.save_reset_required != false
|| migration.compatibility?.registry_ids_changed != false
|| migration.compatibility?.sanctuary_data_version != 11
|| migration.compatibility?.sanctuary_network_protocol != 21
|| migration.compatibility?.onlyfun_data_version != 2
|| migration.compatibility?.onlyfun_network_protocol != 2
|| migration.compatibility?.iliketomoveit_data_version != 3
|| migration.compatibility?.iliketomoveit_network_protocol != 5
|| migration.compatibility?.itsalive_data_version != 3
|| migration.compatibility?.itsalive_network_protocol != 4
|| migration.distribution?.pack_release_updated != true
|| migration.distribution?.packwiz_index_refreshed != true
|| migration.distribution?.prism_modrinth_index_updated != true
|| migration.distribution?.shared_client_server_mrpack != true
|| migration.distribution?.jei?.source != "30.28.0.191"
|| migration.distribution?.jei?.target != "30.28.0.193"
|| migration.distribution?.jei?.modrinth_version_id != "qaCQ7LGO"
|| migration.distribution?.jei?.packwiz_and_prism_synchronized != true
|| manifests.sanctuary.custom?.sanctuary26?.data_version != 11
|| manifests.sanctuary.custom?.sanctuary26?.network_protocol != 21
|| manifests.onlyfun.custom?.sanctuary26?.data_version != 2
|| manifests.onlyfun.custom?.sanctuary26?.network_protocol != 2
|| manifests.iliketomoveit.custom?.sanctuary26?.data_version != 3
|| manifests.iliketomoveit.custom?.sanctuary26?.network_protocol != 5
|| manifests.itsalive.custom?.sanctuary26?.data_version != 3
|| manifests.itsalive.custom?.sanctuary26?.network_protocol != 4
|| release.pack_version != "26.2.0-alpha.210"
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.210.mrpack"
|| prism.versionId != "26.2.0-alpha.210"
|| !packwiz.contains('version = "26.2.0-alpha.210"')
|| requiredJars.any { !packwizIndex.contains(it) }
|| obsoleteJars.any { packwizIndex.contains(it) }
|| jeiFiles.size() != 1
|| jeiFiles[0].hashes?.sha1 != "494f9dc787d6c9cd9d32793da2784ab16834faf3"
|| jeiFiles[0].hashes?.sha512 != "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468"
|| !changelog.contains("## `26.2.0-alpha.210`")) {
throw new GradleException("The alpha.210 Forbidden Book and gameplay-polish release is incomplete")
}
}
}
tasks.named("check") {
dependsOn tasks.named("verifyWorkspace")
dependsOn tasks.named("verifyTransport")
+3 -3
View File
@@ -26,9 +26,9 @@ masterkey_version=0.0.0-alpha.8
masterkey_lifecycle=active
iliketomoveit_version=0.0.0-alpha.15
iliketomoveit_lifecycle=active
onlyfun_version=0.0.0-alpha.20
onlyfun_version=0.0.0-alpha.21
onlyfun_lifecycle=active
sanctuary_version=0.0.0-alpha.117
sanctuary_version=0.0.0-alpha.118
sanctuary_lifecycle=active
pack_version=26.2.0-alpha.209
pack_version=26.2.0-alpha.210
maven_group=fr.koka99cab.sanctuary26
+1 -1
View File
@@ -2,7 +2,7 @@
It's Alive possède le vivant de Sanctuary. Il enrichit directement le Creeper vanilla et accueille désormais les papillons de Pipallon, les Mooblooms fleuries et les créatures de Real Ghost — baleine volante comprise — sous un référencement unifié `itsalive:*`.
## Version courante — `0.0.0-alpha.20`
## Version courante — `0.0.0-alpha.35`
## Creepers
@@ -0,0 +1,58 @@
{
"schema_version": 1,
"source": {
"pack_version": "26.2.0-alpha.209",
"modules": {
"sanctuary": "0.0.0-alpha.117",
"onlyfun": "0.0.0-alpha.20",
"iliketomoveit": "0.0.0-alpha.14",
"itsalive": "0.0.0-alpha.34"
}
},
"target": {
"pack_version": "26.2.0-alpha.210",
"modules": {
"sanctuary": "0.0.0-alpha.118",
"onlyfun": "0.0.0-alpha.21",
"iliketomoveit": "0.0.0-alpha.15",
"itsalive": "0.0.0-alpha.35"
}
},
"features": {
"shop_status_layout_separated": true,
"shop_progression_bypasses_removed": true,
"zombie_xbox_360_names": true,
"cape_reconnect_resynchronization": true,
"quest_requests_require_dedicated_signs": true,
"ridden_happy_ghast_cruise_speed_multiplier": 2.0,
"canaplia_codex_name": "Forbidden Book",
"canaplia_page_learns_random_unknown_entry": true,
"canaplia_handheld_knowledge_personal": true,
"canaplia_lectern_shares_owner_knowledge": true
},
"compatibility": {
"new_world_required": false,
"save_reset_required": false,
"registry_ids_changed": false,
"sanctuary_data_version": 11,
"sanctuary_network_protocol": 21,
"onlyfun_data_version": 2,
"onlyfun_network_protocol": 2,
"iliketomoveit_data_version": 3,
"iliketomoveit_network_protocol": 5,
"itsalive_data_version": 3,
"itsalive_network_protocol": 4
},
"distribution": {
"pack_release_updated": true,
"packwiz_index_refreshed": true,
"prism_modrinth_index_updated": true,
"shared_client_server_mrpack": true,
"jei": {
"source": "30.28.0.191",
"target": "30.28.0.193",
"modrinth_version_id": "qaCQ7LGO",
"packwiz_and_prism_synchronized": true
}
}
}
+15 -15
View File
@@ -14,15 +14,15 @@ hash = "41f4f4c88c71d0a23446d5014f7407d55ad477441847099cad24492b032335a0"
[[files]]
file = "mods/ambiance-0.0.0-alpha.14.jar"
hash = "733c1b328fffcfc4f692439391b9e54be5c5485fd1c5894f2a94a887b3df2abb"
hash = "a4b2a36e046a3095ada58e3dbf5fd30ab7c8ba42eaf2abcf513b38b8cc2f3e4a"
[[files]]
file = "mods/anotherworld-0.0.0-alpha.55.jar"
hash = "3e8966d914ca20519181aee22b3af701e64f7c57716bd395b32c134e116dba78"
hash = "da7163a34ca71e1c2385a84221cddccc09f0f83d9a00bce0ed6263b19ec519cb"
[[files]]
file = "mods/events-0.0.0-alpha.0.jar"
hash = "cb1334425cd7f4972d30148ff80917ddafc3109d58300b73e711d15d7c23869e"
hash = "7400d63c905d1c87a5290adaa2fe91305fa1f067827ca8f0610a6ae4e17624da"
[[files]]
file = "mods/fabric-api.pw.toml"
@@ -30,8 +30,8 @@ hash = "df032a6b051d0262cf24945c43e0e6b915e8cc1d62af62fe933932e7f35960c4"
metafile = true
[[files]]
file = "mods/iliketomoveit-0.0.0-alpha.14.jar"
hash = "8ad908d29ab282f4e2efffb6ee8960c06d6f0f9f6e253baf90ebd8cb62934d11"
file = "mods/iliketomoveit-0.0.0-alpha.15.jar"
hash = "a084cf25a4afa50086ce220f40b6b3946a06389de105f23c0246df1577deb3c8"
[[files]]
file = "mods/iris.pw.toml"
@@ -39,33 +39,33 @@ hash = "84a3cef87679c0d21dceb4641167dc0368b9a3593698f6a3632485e9b3a8d5da"
metafile = true
[[files]]
file = "mods/itsalive-0.0.0-alpha.34.jar"
hash = "febf235da00540ff365aeb11990b71a790411606b7d24563cb1e333defff01de"
file = "mods/itsalive-0.0.0-alpha.35.jar"
hash = "4a6433abdfc03a0872f7c810fb17016a0f20acda5e223e0fef479dd786cc73ac"
[[files]]
file = "mods/jei.pw.toml"
hash = "a6f7f6eaec2aa5842c54f8c9c4a228b028e99b680eb4e9112291763692027fd4"
hash = "a213ae237f9b3934bdcd0d282119d4166d0ccbb7c7223daa8d7ed956c69a0e3f"
metafile = true
[[files]]
file = "mods/masterkey-0.0.0-alpha.8.jar"
hash = "9fd559ab559fb2ba6d0ae78fa7e48db15462e6f957fb23f1895469435745fe00"
hash = "eaf70f6c5a78ee7ab2d3be498d4f7d67fcba433ed61b65b305e958f03b387d94"
[[files]]
file = "mods/onlyfun-0.0.0-alpha.20.jar"
hash = "043d5c7d864c980329f707f0e16e39d646ea9d346aad1c8853faf42fefefaaa8"
file = "mods/onlyfun-0.0.0-alpha.21.jar"
hash = "7e319a0cc6149d5819ef2359fe3ad4035066a9cddd5ae0a16c12c9db64bc3f6a"
[[files]]
file = "mods/ouch-0.0.0-alpha.9.jar"
hash = "75d64d7260ea351576ad678d1eedde9a65b70e0b208b98abe48f6df345a205d8"
hash = "f3cf2d8c83afa32b1c70e8239dd514be3c74834397f9d09efe177bc8c5ef9ac4"
[[files]]
file = "mods/redstoner-0.0.0-alpha.10.jar"
hash = "fed903b6faad120f5018997bb017b759c0be29013e130db9b9c68492b1440616"
hash = "a9049b9d3a323015545194c92ce9da7a5dca4ff9a28ea26b02bead96748328ab"
[[files]]
file = "mods/sanctuary-0.0.0-alpha.117.jar"
hash = "293032d52220f77f13c4795f6c5293c73e7e7b74c5186d2c56284e5cfe5b228b"
file = "mods/sanctuary-0.0.0-alpha.118.jar"
hash = "1a1319e5f09de941ad8a7561aff9d2fb8c7460a8cd8d2374817d8f39c5682030"
[[files]]
file = "mods/simple-voice-chat.pw.toml"
+4 -4
View File
@@ -1,14 +1,14 @@
name = "Just Enough Items (JEI)"
filename = "jei-26.2-fabric-30.28.0.191.jar"
filename = "jei-26.2-fabric-30.28.0.193.jar"
side = "both"
pin = true
[download]
url = "https://cdn.modrinth.com/data/u6dRKJwZ/versions/FQUVLzeD/jei-26.2-fabric-30.28.0.191.jar"
url = "https://cdn.modrinth.com/data/u6dRKJwZ/versions/qaCQ7LGO/jei-26.2-fabric-30.28.0.193.jar"
hash-format = "sha512"
hash = "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d"
hash = "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468"
[update]
[update.modrinth]
mod-id = "u6dRKJwZ"
version = "FQUVLzeD"
version = "qaCQ7LGO"
+2 -2
View File
@@ -1,12 +1,12 @@
name = "Sanctuary 26.2"
author = "KOKA99CAB"
version = "26.2.0-alpha.209"
version = "26.2.0-alpha.210"
pack-format = "packwiz:1.1.0"
[index]
file = "index.toml"
hash-format = "sha256"
hash = "546e7fd1111ca64d1c7c7d158dc8607c1bcc269ca87d546414282fdf511b5886"
hash = "e20c051f8895ce3164ec72b7764b8904f411e36f63bf1e046b1bcc9108d00a31"
[versions]
fabric = "0.19.3"
+6 -6
View File
@@ -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.209",
"versionId": "26.2.0-alpha.210",
"files": [
{
"path": "mods/fabric-api-0.158.0+26.2.jar",
@@ -21,19 +21,19 @@
"fileSize": 2535765
},
{
"path": "mods/jei-26.2-fabric-30.28.0.191.jar",
"path": "mods/jei-26.2-fabric-30.28.0.193.jar",
"hashes": {
"sha1": "35353e18b1cf2a61339463447fce1f3e2f716b80",
"sha512": "aa7dca89026fea2293a2e25fa4a84faf0eeaa6407b7e84991e69626ff1ee0f9df9ba3a5e096cbf631d08842693b115653c5c8373e5ef3953318a892dbdc0a33d"
"sha1": "494f9dc787d6c9cd9d32793da2784ab16834faf3",
"sha512": "0869f4d5840a732a04bedc7684b40140f087f3d759066c206d9d1ec710007f7c9585e4f5ebb04f10e56bef1cf2eddc6978bb2b2c93541cff5fcf7e1609859468"
},
"env": {
"client": "required",
"server": "required"
},
"downloads": [
"https://cdn.modrinth.com/data/u6dRKJwZ/versions/FQUVLzeD/jei-26.2-fabric-30.28.0.191.jar"
"https://cdn.modrinth.com/data/u6dRKJwZ/versions/qaCQ7LGO/jei-26.2-fabric-30.28.0.193.jar"
],
"fileSize": 1822520
"fileSize": 1822836
},
{
"path": "mods/voicechat-fabric-2.6.22+26.2.jar",
+2 -2
View File
@@ -1,6 +1,6 @@
{
"schema_version": 1,
"pack_version": "26.2.0-alpha.209",
"pack_version": "26.2.0-alpha.210",
"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.209.mrpack",
"primary_file": "sanctuary-26.2.0-alpha.210.mrpack",
"shared_client_server_pack": true,
"update_owner": "packwiz-installer",
"check_on_launch": true,
+9 -9
View File
@@ -2792,7 +2792,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| 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
@@ -2958,7 +2958,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| 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
@@ -2996,7 +2996,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| 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]
@@ -3027,7 +3027,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| migration.target?.pack_version != "26.2.0-alpha.195"
|| migration.target?.modules?.sanctuary != "0.0.0-alpha.111"
|| migration.compatibility?.sanctuary_data_version != 11
@@ -3058,7 +3058,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| migration.target?.modules?.sanctuary != "0.0.0-alpha.112"
|| migration.mailbox?.id != "sanctuary:delivery_box"
|| migration.mailbox?.horizontal_facing != true
@@ -3086,7 +3086,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| !transfer.contains("shouldAppendOverflow")
|| !transfer.contains("isVanillaStorageRange")
|| !transfer.contains("hotbarStart")
@@ -3132,7 +3132,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| migration.target?.modules?.sanctuary != "0.0.0-alpha.113"
|| migration.quest_requests?.save_key != "quest_requests"
|| migration.quest_requests?.data_version != 1
@@ -3190,7 +3190,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| 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"
@@ -3259,7 +3259,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.117"
if (project.version.toString() != "0.0.0-alpha.118"
|| 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"