release: Sanctuary 26.2.0-alpha.202 #15
+10
-4
@@ -6,17 +6,23 @@ 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.
|
||||
|
||||
## En développement — coffre-fort 3 × 3
|
||||
## `26.2.0-alpha.202`
|
||||
|
||||
Modules modifiés : **Another World `0.0.0-alpha.50`** et **Sanctuary `0.0.0-alpha.117`**. Le pack distribué reste en `26.2.0-alpha.201` jusqu’à la préparation d’une release dédiée.
|
||||
Modules modifiés : **Another World `0.0.0-alpha.50`**, **It's Alive `0.0.0-alpha.31`**, **I Like To Move It `0.0.0-alpha.14`** et **Sanctuary `0.0.0-alpha.117`**. Les six autres modules conservent leur version issue de l’alpha.201.
|
||||
|
||||
- ajoute `anotherworld:safe_block`, crafté avec huit blocs d’or autour d’un coffre, et active un unique coffre-fort par joueur lorsque neuf blocs du même propriétaire forment un carré horizontal exact de 3 × 3 ;
|
||||
- conserve 27 emplacements globaux pour rubis, saphirs et émeraudes sous la clé versionnée `anotherworld_safe_vaults`, ce qui garde le solde accessible au Shop lorsque le chunk de la structure est déchargé ;
|
||||
- expose dans Sanctuary une API publique de fournisseurs de monnaie et relie explicitement `Another World → Sanctuary` dans Gradle et Fabric, sans cycle ni copie des règles du Shop ;
|
||||
- ajoute `anotherworld:titanium_drill` avec la texture 16×16 fournie et une recette en titane, redstone, piston, blocs de fer et pioche en diamant ;
|
||||
- ajoute `anotherworld:titanium_drill` avec sa recette en titane, redstone, piston, blocs de fer et pioche en diamant ;
|
||||
- impose un forage serveur continu de 60 secondes sur un coffre ennemi dont le propriétaire est connecté, alerte celui-ci, consomme la foreuse en cas de réussite et transfère 20 % des gemmes au pillard ;
|
||||
- protège le coffre pendant 24 heures après un pillage réussi, bloque les attaques concurrentes et interdit la casse par un tiers ou le démontage d’un coffre rempli ;
|
||||
- porte les données Another World de v1 à v2 pour la nouvelle sauvegarde, sans changer les protocoles Another World 1 et Sanctuary 21 ni exiger de réinitialisation du monde.
|
||||
- autorise la descente directe par un ascenseur de Waystones vers l’étage immédiatement inférieur encore inconnu et le découvre après l’arrivée ;
|
||||
- exige toujours une découverte préalable pour monter par l’ascenseur ou emprunter un trajet Waystone ordinaire ;
|
||||
- compte et consomme les rubis, saphirs et émeraudes du Shop et du marché noir dans toutes les rangées Sanctuary débloquées, y compris les rangées d’overflow, sans compter deux fois une pile visible par plusieurs vues ;
|
||||
- permet de poser le livre de recettes culinaires It’s Alive sur un pupitre vanilla et d’y consulter le catalogue appris par le joueur qui l’a placé ;
|
||||
- efface cette inscription lorsque le livre est retiré ou le pupitre cassé, afin que le livre redevienne personnel dans l’inventaire ;
|
||||
- ajoute l’infobulle FR/EN/RU du livre partageable et le tag vanilla `minecraft:lectern_books` ;
|
||||
- porte les données Another World de v1 à v2 pour la nouvelle sauvegarde et conserve les données It’s Alive v1, I Like To Move It v3 et Sanctuary v11, leurs protocoles 1, 3, 5 et 21 ainsi que les sauvegardes existantes.
|
||||
|
||||
## `26.2.0-alpha.201`
|
||||
|
||||
|
||||
@@ -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.201`**. Le développement du coffre-fort porte Another World en **`0.0.0-alpha.50`** et Sanctuary en **`0.0.0-alpha.117`** sans republier encore le pack.
|
||||
Version courante du pack local : **`26.2.0-alpha.202`**. Another World passe en **`0.0.0-alpha.50`**, It’s Alive en **`0.0.0-alpha.31`**, I Like To Move It en **`0.0.0-alpha.14`** et Sanctuary en **`0.0.0-alpha.117`** ; les six autres modules conservent leur version de l’alpha.201.
|
||||
|
||||
L’alpha.202 permet de descendre par un ascenseur de Waystones vers l’étage immédiatement inférieur encore inconnu, sans ouvrir la montée ni les trajets ordinaires aux destinations non découvertes. Le Shop et le marché noir comptent et consomment désormais les rubis et saphirs de toutes les rangées débloquées, y compris l’overflow. Le livre culinaire peut enfin être posé sur un pupitre vanilla pour partager le catalogue de recettes de son propriétaire ; retiré du pupitre, il redevient personnel.
|
||||
|
||||
Le coffre-fort joueur utilise neuf blocs Another World disposés horizontalement en 3 × 3. Il accepte rubis, saphirs et émeraudes dans 27 emplacements liés au joueur et les rend disponibles aux transactions du Shop même lorsque la structure est déchargée. Une foreuse en titane maintenue pendant 60 secondes permet de piller 20 % du contenu d’un propriétaire connecté, qui reçoit immédiatement une alerte ; une réussite consomme la foreuse et protège ensuite le coffre pendant 24 heures.
|
||||
|
||||
|
||||
+129
-45
@@ -3427,7 +3427,7 @@ tasks.register("verifyProgressivePauseMenuRelease") {
|
||||
[(locale): new JsonSlurper().parse(file(
|
||||
"sanctuary/src/main/resources/assets/sanctuary/lang/${locale}.json"))]
|
||||
}
|
||||
if (rootProject.pack_version != "26.2.0-alpha.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| rootProject.onlyfun_version != "0.0.0-alpha.19"
|
||||
|| release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version
|
||||
@@ -3477,7 +3477,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.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.anotherworld_version != "0.0.0-alpha.50"
|
||||
|| rootProject.redstoner_version != "0.0.0-alpha.10"
|
||||
|| release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version
|
||||
@@ -4123,7 +4123,7 @@ tasks.register("verifyShopPricingLayoutRelease") {
|
||||
"pack/migrations/26.2.0-alpha.192-shop-pricing-layout-to-alpha.193.json"))
|
||||
def release = new JsonSlurper().parse(file("pack/release.json"))
|
||||
def index = new JsonSlurper().parse(file("pack/prism/modrinth.index.json"))
|
||||
if (rootProject.pack_version != "26.2.0-alpha.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.onlyfun_version != "0.0.0-alpha.19"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version
|
||||
@@ -4168,8 +4168,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.201"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.30"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.31"
|
||||
|| 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"]
|
||||
@@ -4217,7 +4217,7 @@ tasks.register("verifyShopCsvBossGatesRelease") {
|
||||
def bossGate = file("onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/shop/OnlyFunBossShopGate.java").text
|
||||
def catalog = file("onlyfun/src/main/java/fr/koka99cab/sanctuary26/onlyfun/shop/OnlyFunShopCatalog.java").text
|
||||
def offerCatalog = file("sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopOfferCatalog.java").text
|
||||
if (rootProject.pack_version != "26.2.0-alpha.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.onlyfun_version != "0.0.0-alpha.19"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version
|
||||
@@ -4263,7 +4263,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.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.195"
|
||||
|| migration.target?.pack_version != "26.2.0-alpha.196"
|
||||
|| migration.target?.modules != [
|
||||
@@ -4281,10 +4281,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.201"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.201.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.201"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.201"')) {
|
||||
|| release.pack_version != "26.2.0-alpha.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')) {
|
||||
throw new GradleException("The alpha.196 culinary, mailbox and grapple release contract is incomplete")
|
||||
}
|
||||
}
|
||||
@@ -4309,8 +4309,8 @@ 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.201"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.30"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.31"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.196"
|
||||
|| migration.target?.pack_version != "26.2.0-alpha.197"
|
||||
@@ -4329,10 +4329,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.201"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.201.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.201"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.201"')) {
|
||||
|| release.pack_version != "26.2.0-alpha.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')) {
|
||||
throw new GradleException("The alpha.197 quest-request and cauldron-batch release contract is incomplete")
|
||||
}
|
||||
}
|
||||
@@ -4359,8 +4359,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.201"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.30"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.31"
|
||||
|| 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"]
|
||||
@@ -4378,11 +4378,11 @@ tasks.register("verifyFermentationBarrelAutomationRelease") {
|
||||
|| migration.distribution?.packwiz_index_refreshed != true
|
||||
|| itsAliveManifest.custom?.sanctuary26?.data_version != 1
|
||||
|| itsAliveManifest.custom?.sanctuary26?.network_protocol != 3
|
||||
|| release.pack_version != "26.2.0-alpha.201"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.201.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.201"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.201"')
|
||||
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.30.jar"')) {
|
||||
|| release.pack_version != "26.2.0-alpha.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')
|
||||
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.31.jar"')) {
|
||||
throw new GradleException("The alpha.198 fermentation barrel release contract is incomplete")
|
||||
}
|
||||
}
|
||||
@@ -4409,8 +4409,8 @@ 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.201"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.30"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.31"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.198"
|
||||
|| migration.source?.modules?.sanctuary != "0.0.0-alpha.114"
|
||||
@@ -4423,12 +4423,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.201"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.201.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.201"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.201"')
|
||||
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.30.jar"')
|
||||
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.116.jar"')) {
|
||||
|| release.pack_version != "26.2.0-alpha.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')
|
||||
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.31.jar"')
|
||||
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.117.jar"')) {
|
||||
throw new GradleException("The alpha.199 quest-request contract release is incomplete")
|
||||
}
|
||||
}
|
||||
@@ -4464,7 +4464,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.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.ambiance_version != "0.0.0-alpha.12"
|
||||
|| rootProject.ouch_version != "0.0.0-alpha.9"
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.199"
|
||||
@@ -4498,10 +4498,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.201"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.201.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.201"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.201"')
|
||||
|| release.pack_version != "26.2.0-alpha.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')
|
||||
|| !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.12.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")
|
||||
@@ -4530,7 +4530,7 @@ tasks.register("verifyQuestRequestEscrowRelease") {
|
||||
def packwiz = file("pack/packwiz/pack.toml").text
|
||||
def packwizIndex = file("pack/packwiz/index.toml").text
|
||||
def sanctuaryManifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json"))
|
||||
if (rootProject.pack_version != "26.2.0-alpha.201"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.200"
|
||||
|| migration.source?.modules?.sanctuary != "0.0.0-alpha.115"
|
||||
@@ -4545,11 +4545,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.201"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.201.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.201"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.201"')
|
||||
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.116.jar"')) {
|
||||
|| release.pack_version != "26.2.0-alpha.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')
|
||||
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.117.jar"')) {
|
||||
throw new GradleException("The alpha.201 quest-request escrow release is incomplete")
|
||||
}
|
||||
}
|
||||
@@ -4559,9 +4559,87 @@ tasks.named("verifyWorkspace") {
|
||||
dependsOn tasks.named("verifyQuestRequestEscrowRelease")
|
||||
}
|
||||
|
||||
tasks.register("verifyWaystoneShopCulinaryAlpha202Release") {
|
||||
group = "verification"
|
||||
description = "Checks the complete Sanctuary 26.2.0-alpha.202 Waystone, Shop and culinary lectern release."
|
||||
inputs.file(file("pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.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.files(file(
|
||||
"itsalive/src/main/resources/fabric.mod.json"), file(
|
||||
"iliketomoveit/src/main/resources/fabric.mod.json"), file(
|
||||
"sanctuary/src/main/resources/fabric.mod.json"))
|
||||
doLast {
|
||||
def migration = new JsonSlurper().parse(file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.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 itsAliveManifest = new JsonSlurper().parse(file(
|
||||
"itsalive/src/main/resources/fabric.mod.json"))
|
||||
def moveItManifest = new JsonSlurper().parse(file(
|
||||
"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.202"
|
||||
|| rootProject.anotherworld_version != "0.0.0-alpha.50"
|
||||
|| rootProject.itsalive_version != "0.0.0-alpha.31"
|
||||
|| rootProject.iliketomoveit_version != "0.0.0-alpha.14"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.201"
|
||||
|| migration.source?.modules != [
|
||||
itsalive: "0.0.0-alpha.30",
|
||||
iliketomoveit: "0.0.0-alpha.13",
|
||||
sanctuary: "0.0.0-alpha.116"]
|
||||
|| migration.target?.pack_version != "26.2.0-alpha.202"
|
||||
|| migration.target?.modules != [
|
||||
itsalive: "0.0.0-alpha.31",
|
||||
iliketomoveit: "0.0.0-alpha.14",
|
||||
sanctuary: "0.0.0-alpha.117"]
|
||||
|| migration.waystone_elevator?.undiscovered_downward_destination_allowed != true
|
||||
|| migration.waystone_elevator?.destination_discovered_after_arrival != true
|
||||
|| migration.waystone_elevator?.undiscovered_upward_destination_allowed != false
|
||||
|| migration.waystone_elevator?.undiscovered_ordinary_destination_allowed != false
|
||||
|| migration.shop_currency_inventory?.all_unlocked_rows_counted != true
|
||||
|| migration.shop_currency_inventory?.overflow_rows_counted != true
|
||||
|| migration.shop_currency_inventory?.duplicate_stack_views_deduplicated != true
|
||||
|| migration.culinary_lectern?.book_tag != "minecraft:lectern_books"
|
||||
|| migration.culinary_lectern?.owner_catalog_shared_while_placed != true
|
||||
|| migration.culinary_lectern?.inscription_removed_when_taken != true
|
||||
|| migration.culinary_lectern?.inscription_removed_when_lectern_broken != true
|
||||
|| migration.compatibility?.itsalive_data_version != 1
|
||||
|| migration.compatibility?.itsalive_network_protocol != 3
|
||||
|| migration.compatibility?.iliketomoveit_data_version != 3
|
||||
|| migration.compatibility?.iliketomoveit_network_protocol != 5
|
||||
|| migration.compatibility?.sanctuary_data_version != 11
|
||||
|| migration.compatibility?.sanctuary_network_protocol != 21
|
||||
|| migration.compatibility?.save_migration_required != false
|
||||
|| migration.compatibility?.registry_ids_changed != false
|
||||
|| itsAliveManifest.custom?.sanctuary26?.data_version != 1
|
||||
|| itsAliveManifest.custom?.sanctuary26?.network_protocol != 3
|
||||
|| moveItManifest.custom?.sanctuary26?.data_version != 3
|
||||
|| 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.202"
|
||||
|| release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.202.mrpack"
|
||||
|| prism.versionId != "26.2.0-alpha.202"
|
||||
|| !packwiz.contains('version = "26.2.0-alpha.202"')
|
||||
|| !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.50.jar"')
|
||||
|| !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.31.jar"')
|
||||
|| !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.14.jar"')
|
||||
|| !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.117.jar"')) {
|
||||
throw new GradleException("The alpha.202 Waystone, Shop and culinary lectern release is incomplete")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("verifySafeVaultFeature") {
|
||||
group = "verification"
|
||||
description = "Checks the unreleased 3x3 player safe, titanium drill and Shop currency-provider contract."
|
||||
description = "Checks the alpha.202 3x3 player safe, titanium drill and Shop currency-provider contract."
|
||||
dependsOn ":anotherworld:generateAnotherWorldResources"
|
||||
inputs.file(file("pack/migrations/anotherworld-safe-vault-data-v2.json"))
|
||||
inputs.file(file("anotherworld/src/main/resources/fabric.mod.json"))
|
||||
@@ -4588,8 +4666,12 @@ 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.anotherworld_version != "0.0.0-alpha.50"
|
||||
if (rootProject.pack_version != "26.2.0-alpha.202"
|
||||
|| rootProject.anotherworld_version != "0.0.0-alpha.50"
|
||||
|| rootProject.sanctuary_version != "0.0.0-alpha.117"
|
||||
|| migration.schema_version != 1
|
||||
|| migration.source?.pack_version != "26.2.0-alpha.201"
|
||||
|| migration.target?.pack_version != "26.2.0-alpha.202"
|
||||
|| migration.source?.modules != [anotherworld: "0.0.0-alpha.49", sanctuary: "0.0.0-alpha.116"]
|
||||
|| migration.target?.modules != [anotherworld: "0.0.0-alpha.50", sanctuary: "0.0.0-alpha.117"]
|
||||
|| migration.safe_vault?.footprint != "3x3_horizontal"
|
||||
@@ -4603,6 +4685,7 @@ tasks.register("verifySafeVaultFeature") {
|
||||
|| migration.compatibility?.anotherworld_target_data_version != 2
|
||||
|| migration.compatibility?.anotherworld_network_protocol != 1
|
||||
|| migration.compatibility?.sanctuary_network_protocol != 21
|
||||
|| migration.compatibility?.pack_release_updated != true
|
||||
|| manifest.depends?.sanctuary != ">=0.0.0-alpha.117"
|
||||
|| manifest.custom?.sanctuary26?.data_version != 2
|
||||
|| !file("build.gradle").text.contains('implementation project(":sanctuary")')
|
||||
@@ -4620,6 +4703,7 @@ tasks.register("verifySafeVaultFeature") {
|
||||
}
|
||||
|
||||
tasks.named("verifyWorkspace") {
|
||||
dependsOn tasks.named("verifyWaystoneShopCulinaryAlpha202Release")
|
||||
dependsOn tasks.named("verifySafeVaultFeature")
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -18,17 +18,17 @@ redstoner_version=0.0.0-alpha.10
|
||||
redstoner_lifecycle=active
|
||||
anotherworld_version=0.0.0-alpha.50
|
||||
anotherworld_lifecycle=active
|
||||
itsalive_version=0.0.0-alpha.30
|
||||
itsalive_version=0.0.0-alpha.31
|
||||
itsalive_lifecycle=active
|
||||
ouch_version=0.0.0-alpha.9
|
||||
ouch_lifecycle=active
|
||||
masterkey_version=0.0.0-alpha.8
|
||||
masterkey_lifecycle=active
|
||||
iliketomoveit_version=0.0.0-alpha.13
|
||||
iliketomoveit_version=0.0.0-alpha.14
|
||||
iliketomoveit_lifecycle=active
|
||||
onlyfun_version=0.0.0-alpha.19
|
||||
onlyfun_lifecycle=active
|
||||
sanctuary_version=0.0.0-alpha.117
|
||||
sanctuary_lifecycle=active
|
||||
pack_version=26.2.0-alpha.201
|
||||
pack_version=26.2.0-alpha.202
|
||||
maven_group=fr.koka99cab.sanctuary26
|
||||
|
||||
@@ -295,7 +295,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.13"
|
||||
if (project.version.toString() != "0.0.0-alpha.14"
|
||||
|| atlasCavernsMigration.target?.pack_version != "26.2.0-alpha.150"
|
||||
|| atlasCavernsMigration.target?.modules?.iliketomoveit != "0.0.0-alpha.9"
|
||||
|| atlasCavernsMigration.portals?.active_routes != [
|
||||
@@ -331,7 +331,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.13"
|
||||
if (project.version.toString() != "0.0.0-alpha.14"
|
||||
|| recipe.pattern != ["PGP", "GCG", "PBP"]
|
||||
|| recipe.key != [B: "anotherworld:silver_block", C: "anotherworld:aircraft_cockpit",
|
||||
G: "anotherworld:silver_gear", P: "anotherworld:silver_plate"]
|
||||
@@ -360,7 +360,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.13"
|
||||
if (project.version.toString() != "0.0.0-alpha.14"
|
||||
|| 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
|
||||
@@ -377,12 +377,44 @@ tasks.register("verifyGrapplePrediction") {
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("verifyWaystoneDescendingRelease") {
|
||||
group = "verification"
|
||||
description = "Checks alpha.14 downward discovery for direct Waystone elevators."
|
||||
inputs.file(rootProject.file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.json"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/waystone/WaystoneElevatorRules.java"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/iliketomoveit/network/WaystoneTeleportation.java"))
|
||||
inputs.file(file("src/test/java/fr/koka99cab/sanctuary26/iliketomoveit/waystone/WaystoneElevatorRulesSmoke.java"))
|
||||
doLast {
|
||||
def migration = new JsonSlurper().parse(rootProject.file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.json"))
|
||||
def rules = file(
|
||||
"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.14"
|
||||
|| 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
|
||||
|| migration.waystone_elevator?.undiscovered_upward_destination_allowed != false
|
||||
|| migration.waystone_elevator?.undiscovered_ordinary_destination_allowed != false
|
||||
|| migration.compatibility?.iliketomoveit_data_version != 3
|
||||
|| migration.compatibility?.iliketomoveit_network_protocol != 5
|
||||
|| !rules.contains("return !upward || targetDiscovered;")
|
||||
|| !rules.contains("elevatorRide && targetY < sourceY")
|
||||
|| !teleportation.contains("discoveries.discover(player.getUUID(), level, target)")) {
|
||||
throw new GradleException("I Like To Move It alpha.14 downward Waystone discovery contract is incomplete")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named("check") {
|
||||
dependsOn tasks.named("grapplePhysicsSmoke")
|
||||
dependsOn tasks.named("waystoneElevatorRulesSmoke")
|
||||
dependsOn tasks.named("verifyWaystones")
|
||||
dependsOn tasks.named("verifyGrappling")
|
||||
dependsOn tasks.named("verifyGrapplePrediction")
|
||||
dependsOn tasks.named("verifyWaystoneDescendingRelease")
|
||||
dependsOn tasks.named("verifyPortals")
|
||||
dependsOn tasks.named("verifySilverAircraft")
|
||||
}
|
||||
|
||||
+54
-4
@@ -417,7 +417,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.30"
|
||||
if (project.version.toString() != "0.0.0-alpha.31"
|
||||
|| climateMigration.target?.pack_version != "26.2.0-alpha.157"
|
||||
|| climateMigration.target?.modules?.itsalive != "0.0.0-alpha.24"
|
||||
|| !climateSource.contains("PlayerBlockBreakEvents.AFTER.register")
|
||||
@@ -1174,7 +1174,7 @@ tasks.register("verifyCulinaryReliability") {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (project.version.toString() != "0.0.0-alpha.30"
|
||||
if (project.version.toString() != "0.0.0-alpha.31"
|
||||
|| 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
|
||||
@@ -1212,7 +1212,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.30"
|
||||
if (project.version.toString() != "0.0.0-alpha.31"
|
||||
|| migration.target?.modules?.itsalive != "0.0.0-alpha.29"
|
||||
|| migration.cauldron_batches?.logical_stack_limit != 64
|
||||
|| migration.cauldron_batches?.identity != "same_item_same_components"
|
||||
@@ -1250,7 +1250,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.30"
|
||||
if (project.version.toString() != "0.0.0-alpha.31"
|
||||
|| 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
|
||||
@@ -1273,11 +1273,61 @@ tasks.register("verifyFermentationBarrelAutomation") {
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("verifyCulinaryLecternRelease") {
|
||||
group = "verification"
|
||||
description = "Checks alpha.31 shared culinary books on vanilla lecterns."
|
||||
inputs.file(rootProject.file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.json"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/knowledge/CulinaryLectern.java"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/knowledge/CulinaryRecipeKnowledge.java"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/itsalive/registry/ItsAliveDataComponents.java"))
|
||||
inputs.file(file("src/main/resources/data/minecraft/tags/item/lectern_books.json"))
|
||||
inputs.files(fileTree("src/main/resources/assets/itsalive/lang") { include "*.json" })
|
||||
doLast {
|
||||
def migration = new JsonSlurper().parse(rootProject.file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.json"))
|
||||
def lectern = file(
|
||||
"src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/knowledge/CulinaryLectern.java").text
|
||||
def knowledge = file(
|
||||
"src/main/java/fr/koka99cab/sanctuary26/itsalive/culinary/knowledge/CulinaryRecipeKnowledge.java").text
|
||||
def components = file(
|
||||
"src/main/java/fr/koka99cab/sanctuary26/itsalive/registry/ItsAliveDataComponents.java").text
|
||||
def lecternBooks = new JsonSlurper().parse(file(
|
||||
"src/main/resources/data/minecraft/tags/item/lectern_books.json"))
|
||||
def locales = ["en_us", "fr_fr", "ru_ru"].collectEntries { locale ->
|
||||
[(locale): new JsonSlurper().parse(file(
|
||||
"src/main/resources/assets/itsalive/lang/${locale}.json"))]
|
||||
}
|
||||
if (project.version.toString() != "0.0.0-alpha.31"
|
||||
|| 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
|
||||
|| migration.culinary_lectern?.inscription_removed_when_taken != true
|
||||
|| migration.culinary_lectern?.inscription_removed_when_lectern_broken != true
|
||||
|| migration.compatibility?.itsalive_data_version != 1
|
||||
|| migration.compatibility?.itsalive_network_protocol != 3
|
||||
|| !lectern.contains("UseBlockCallback.EVENT.register(CulinaryLectern::use)")
|
||||
|| !lectern.contains("PlayerBlockBreakEvents.BEFORE.register")
|
||||
|| !lectern.contains("CulinaryRecipeKnowledge.openBook(serverPlayer, book)")
|
||||
|| !lectern.contains("CulinaryRecipeKnowledge.forgetInscription(taken)")
|
||||
|| !knowledge.contains("stack.set(ItsAliveDataComponents.CULINARY_BOOK")
|
||||
|| !knowledge.contains("stack.remove(ItsAliveDataComponents.CULINARY_BOOK)")
|
||||
|| !components.contains('ItsAliveMod.id("culinary_book")')
|
||||
|| !lecternBooks["values"]?.contains("itsalive:culinary_recipe_book")
|
||||
|| locales.any { locale, values ->
|
||||
!values.containsKey("tooltip.itsalive.culinary_recipe_book.blank")
|
||||
}) {
|
||||
throw new GradleException("It's Alive alpha.31 culinary lectern contract is incomplete")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named("check") {
|
||||
dependsOn tasks.named("verifyItsAlive")
|
||||
dependsOn tasks.named("verifyCulinaryReliability")
|
||||
dependsOn tasks.named("verifyCauldronBatching")
|
||||
dependsOn tasks.named("culinaryBatchingSmoke")
|
||||
dependsOn tasks.named("verifyFermentationBarrelAutomation")
|
||||
dependsOn tasks.named("verifyCulinaryLecternRelease")
|
||||
dependsOn tasks.named("culinaryPartialMatchingSmoke")
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"source": {
|
||||
"pack_version": "26.2.0-alpha.201",
|
||||
"modules": {
|
||||
"itsalive": "0.0.0-alpha.30",
|
||||
"iliketomoveit": "0.0.0-alpha.13",
|
||||
"sanctuary": "0.0.0-alpha.116"
|
||||
}
|
||||
},
|
||||
"target": {
|
||||
"pack_version": "26.2.0-alpha.202",
|
||||
"modules": {
|
||||
"itsalive": "0.0.0-alpha.31",
|
||||
"iliketomoveit": "0.0.0-alpha.14",
|
||||
"sanctuary": "0.0.0-alpha.117"
|
||||
}
|
||||
},
|
||||
"waystone_elevator": {
|
||||
"undiscovered_downward_destination_allowed": true,
|
||||
"destination_discovered_after_arrival": true,
|
||||
"undiscovered_upward_destination_allowed": false,
|
||||
"undiscovered_ordinary_destination_allowed": false,
|
||||
"source_discovery_required": true
|
||||
},
|
||||
"shop_currency_inventory": {
|
||||
"all_unlocked_rows_counted": true,
|
||||
"overflow_rows_counted": true,
|
||||
"offhand_counted": true,
|
||||
"duplicate_stack_views_deduplicated": true,
|
||||
"server_authoritative_removal": true
|
||||
},
|
||||
"culinary_lectern": {
|
||||
"vanilla_lectern_supported": true,
|
||||
"book_tag": "minecraft:lectern_books",
|
||||
"owner_catalog_shared_while_placed": true,
|
||||
"inscription_removed_when_taken": true,
|
||||
"inscription_removed_when_lectern_broken": true,
|
||||
"inventory_book_remains_personal": true,
|
||||
"owner_name_max_length": 32
|
||||
},
|
||||
"distribution": {
|
||||
"prism_instance": "Sanctuary-26.2-dev",
|
||||
"packwiz_index_refreshed": true
|
||||
},
|
||||
"compatibility": {
|
||||
"itsalive_data_version": 1,
|
||||
"itsalive_network_protocol": 3,
|
||||
"iliketomoveit_data_version": 3,
|
||||
"iliketomoveit_network_protocol": 5,
|
||||
"sanctuary_data_version": 11,
|
||||
"sanctuary_network_protocol": 21,
|
||||
"save_migration_required": false,
|
||||
"registry_ids_changed": false
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"source": {
|
||||
"pack_version": "26.2.0-alpha.201",
|
||||
"modules": {
|
||||
@@ -7,7 +8,7 @@
|
||||
}
|
||||
},
|
||||
"target": {
|
||||
"pack_version": "26.2.0-alpha.201",
|
||||
"pack_version": "26.2.0-alpha.202",
|
||||
"modules": {
|
||||
"anotherworld": "0.0.0-alpha.50",
|
||||
"sanctuary": "0.0.0-alpha.117"
|
||||
@@ -71,6 +72,6 @@
|
||||
"anotherworld:titanium_drill"
|
||||
],
|
||||
"existing_world_reset_required": false,
|
||||
"pack_release_updated": false
|
||||
"pack_release_updated": true
|
||||
}
|
||||
}
|
||||
|
||||
+14
-14
@@ -14,15 +14,15 @@ hash = "41f4f4c88c71d0a23446d5014f7407d55ad477441847099cad24492b032335a0"
|
||||
|
||||
[[files]]
|
||||
file = "mods/ambiance-0.0.0-alpha.12.jar"
|
||||
hash = "6d131ff56488ecc6352a86c87e29bef6a198ad672983838ad71941661d6567af"
|
||||
hash = "73f740ddff6db5377b01bb03a211671fdc7a040cafae67c988f97803c7276c21"
|
||||
|
||||
[[files]]
|
||||
file = "mods/anotherworld-0.0.0-alpha.49.jar"
|
||||
hash = "b245c849985c208ca547da3dc41121ce6dd2bc1ffbbb1bfd8f6a7326356cfbdc"
|
||||
file = "mods/anotherworld-0.0.0-alpha.50.jar"
|
||||
hash = "1f3a42f6acc8732c29bccdf7521038dd28161b94325808d59f465144a83f5a79"
|
||||
|
||||
[[files]]
|
||||
file = "mods/events-0.0.0-alpha.0.jar"
|
||||
hash = "d8dac51f88f72bfb1f7cd92279447897ee349e4cbc78b070cb33e99d5acbb965"
|
||||
hash = "612b88ee50fb6251692514983c5a59b57e62a57dd1a639fc8c292aabbf07e3bb"
|
||||
|
||||
[[files]]
|
||||
file = "mods/fabric-api.pw.toml"
|
||||
@@ -30,8 +30,8 @@ hash = "df032a6b051d0262cf24945c43e0e6b915e8cc1d62af62fe933932e7f35960c4"
|
||||
metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "mods/iliketomoveit-0.0.0-alpha.13.jar"
|
||||
hash = "cf3e90860f475f6a7466eb29686d230c95d5629a36fac89c60077fbae4ede865"
|
||||
file = "mods/iliketomoveit-0.0.0-alpha.14.jar"
|
||||
hash = "d9cbfa5c4ced74b9d995c1565ead4acb9a890cc0682c2bccb35c9c31cbf27180"
|
||||
|
||||
[[files]]
|
||||
file = "mods/iris.pw.toml"
|
||||
@@ -39,8 +39,8 @@ hash = "84a3cef87679c0d21dceb4641167dc0368b9a3593698f6a3632485e9b3a8d5da"
|
||||
metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "mods/itsalive-0.0.0-alpha.30.jar"
|
||||
hash = "c311281a771bb8fec63be8e8a0d792be919737e4dfcf3da25ef08c6878662d55"
|
||||
file = "mods/itsalive-0.0.0-alpha.31.jar"
|
||||
hash = "b6054062dc945cb9f6b8f9829d1bd0561de5e84a99a3f3f0737546c43684bffa"
|
||||
|
||||
[[files]]
|
||||
file = "mods/jei.pw.toml"
|
||||
@@ -49,23 +49,23 @@ metafile = true
|
||||
|
||||
[[files]]
|
||||
file = "mods/masterkey-0.0.0-alpha.8.jar"
|
||||
hash = "4fac6589b42df15599915849cbf624d6cb8fbd41f47623357d5d6fa27e6f992f"
|
||||
hash = "8664516f1503b46fb665f9a9ad9984e6c7efff3f5e4d771a56c70591deec64dc"
|
||||
|
||||
[[files]]
|
||||
file = "mods/onlyfun-0.0.0-alpha.19.jar"
|
||||
hash = "cf8f3afb8503ed9689fcce6153ad72c5621f4bb2441af867326d536d347756ed"
|
||||
hash = "9d11ead06edd1defc83d670bcc14822e66f87c1384028721d1f85dd2e3788668"
|
||||
|
||||
[[files]]
|
||||
file = "mods/ouch-0.0.0-alpha.9.jar"
|
||||
hash = "fc0f678eb72354c6594c90c59af78bcc7420190d91e922d1cd74a45f5eaa948e"
|
||||
hash = "bf9bb0cf55c7d8757a9d48ec7f527556f8b9742680e4f7cf33d102eade386042"
|
||||
|
||||
[[files]]
|
||||
file = "mods/redstoner-0.0.0-alpha.10.jar"
|
||||
hash = "6325d6edf66b1b0f102f53152239982c4c0c7011a59848e8d6e569f360b7ff0f"
|
||||
hash = "920ffd7606bcb5576831a2a28668cac5ef0c50dcdd06739d55754b5692f54b49"
|
||||
|
||||
[[files]]
|
||||
file = "mods/sanctuary-0.0.0-alpha.116.jar"
|
||||
hash = "c1f856995a259f6471cf0780e1b02f5f73e487f21d39b0519b5a02299c480516"
|
||||
file = "mods/sanctuary-0.0.0-alpha.117.jar"
|
||||
hash = "519449fa9afd3af907447f4cf412234f3e08dad342fc94edff79a2485552ab4b"
|
||||
|
||||
[[files]]
|
||||
file = "mods/simple-voice-chat.pw.toml"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
name = "Sanctuary 26.2"
|
||||
author = "KOKA99CAB"
|
||||
version = "26.2.0-alpha.201"
|
||||
version = "26.2.0-alpha.202"
|
||||
pack-format = "packwiz:1.1.0"
|
||||
|
||||
[index]
|
||||
file = "index.toml"
|
||||
hash-format = "sha256"
|
||||
hash = "52d4011015ea5b087f0cd0c06fb2f762e83e2cd6d227441984d5d204fb6aedd1"
|
||||
hash = "f1f001d3f2138abf2ef3998542b4616204a35780c7c47cd0f9880c3e2428c89b"
|
||||
|
||||
[versions]
|
||||
fabric = "0.19.3"
|
||||
|
||||
@@ -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.201",
|
||||
"versionId": "26.2.0-alpha.202",
|
||||
"files": [
|
||||
{
|
||||
"path": "mods/fabric-api-0.158.0+26.2.jar",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"pack_version": "26.2.0-alpha.201",
|
||||
"pack_version": "26.2.0-alpha.202",
|
||||
"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.201.mrpack",
|
||||
"primary_file": "sanctuary-26.2.0-alpha.202.mrpack",
|
||||
"shared_client_server_pack": true,
|
||||
"update_owner": "packwiz-installer",
|
||||
"check_on_launch": true,
|
||||
|
||||
@@ -2748,6 +2748,44 @@ tasks.register("verifyCompanionPowerTooltips") {
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register("verifyShopCurrencyRowsRelease") {
|
||||
group = "verification"
|
||||
description = "Checks alpha.117 Shop currency across every unlocked inventory row."
|
||||
inputs.file(rootProject.file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.json"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/inventory/SanctuaryPlayerInventoryView.java"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/BlackMarketService.java"))
|
||||
inputs.file(file("src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/ShopService.java"))
|
||||
doLast {
|
||||
def migration = new JsonSlurper().parse(rootProject.file(
|
||||
"pack/migrations/26.2.0-alpha.201-waystone-shop-culinary-to-alpha.202.json"))
|
||||
def inventory = file(
|
||||
"src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/inventory/SanctuaryPlayerInventoryView.java").text
|
||||
def market = file(
|
||||
"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"
|
||||
|| 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
|
||||
|| migration.shop_currency_inventory?.duplicate_stack_views_deduplicated != true
|
||||
|| migration.shop_currency_inventory?.server_authoritative_removal != true
|
||||
|| migration.compatibility?.sanctuary_data_version != 11
|
||||
|| migration.compatibility?.sanctuary_network_protocol != 21
|
||||
|| !inventory.contains("public static List<SlotReference> unlockedRows(Player player)")
|
||||
|| !inventory.contains("SanctuaryOverflowAccess.of(player)")
|
||||
|| !market.contains("IdentityHashMap<ItemStack, Boolean> seen")
|
||||
|| !market.contains("player.inventoryMenu.slots")
|
||||
|| !market.contains("SanctuaryPlayerInventoryView.unlockedRows(player)")
|
||||
|| !market.contains("SanctuaryPlayerInventoryView.offhand(player)")
|
||||
|| !shop.contains("BlackMarketService.countPlayerItem(player, item)")
|
||||
|| !shop.contains("BlackMarketService.removePlayerItem(player, item, count)")) {
|
||||
throw new GradleException("Sanctuary alpha.117 unlocked-row Shop currency contract is incomplete")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named("verifySanctuary") {
|
||||
dependsOn tasks.named("verifyCompanionPowerTooltips")
|
||||
}
|
||||
@@ -3245,6 +3283,7 @@ tasks.named("check") {
|
||||
dependsOn tasks.named("verifyQuestRequests")
|
||||
dependsOn tasks.named("verifyQuestRequestContracts")
|
||||
dependsOn tasks.named("verifyQuestRequestEscrow")
|
||||
dependsOn tasks.named("verifyShopCurrencyRowsRelease")
|
||||
dependsOn tasks.named("celestialGraphSmoke")
|
||||
dependsOn tasks.named("questRequestModelSmoke")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user