From ddaf71c7cd19291b3c0e317e9e3649e51047d6aa Mon Sep 17 00:00:00 2001 From: koka Date: Thu, 3 Sep 2026 02:22:46 +0200 Subject: [PATCH] release: prepare Sanctuary 26.2.0-alpha.232 --- CHANGELOG.md | 10 +- README.md | 4 +- anotherworld/build.gradle | 15 +- .../canon/client/CanonScreenshotFiles.java | 38 ++ .../canon/client/ClientPhotoCapture.java | 70 ++ .../resources/assets/canon/lang/en_us.json | 2 + .../resources/assets/canon/lang/fr_fr.json | 2 + .../resources/assets/canon/lang/ru_ru.json | 2 + .../client/CanonScreenshotFilesSmoke.java | 33 + build.gradle | 604 +++++++++++------- gradle.properties | 4 +- ...a.231-camera-screenshots-to-alpha.232.json | 58 ++ ...pha231-follow-up-cape-terminal-trophy.json | 3 +- pack/packwiz/index.toml | 26 +- pack/packwiz/pack.toml | 4 +- pack/prism/modrinth.index.json | 2 +- pack/release.json | 4 +- 17 files changed, 620 insertions(+), 261 deletions(-) create mode 100644 anotherworld/src/main/java/fr/koka99cab/canon/client/CanonScreenshotFiles.java create mode 100644 anotherworld/src/test/java/fr/koka99cab/canon/client/CanonScreenshotFilesSmoke.java create mode 100644 pack/migrations/26.2.0-alpha.231-camera-screenshots-to-alpha.232.json diff --git a/CHANGELOG.md b/CHANGELOG.md index c6a12c2..3cee3e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,15 @@ Ce journal suit les **versions du modpack**. Lorsqu'un seul module change, sa ve ## Non publié -Modules modifiés : **Sanctuary `0.0.0-alpha.138`** et **Red-Stoner `0.0.0-alpha.19`**. +Aucun changement non publié. + +## `26.2.0-alpha.232` + +Modules modifiés : **Another World `0.0.0-alpha.58`**, **Sanctuary `0.0.0-alpha.138`** et **Red-Stoner `0.0.0-alpha.19`**. + +- ferme le ticket #146 en enregistrant chaque cliché pris avec un appareil Canon dans le dossier `screenshots` de l’instance, à côté des captures F2 ; +- exporte le carré cadré à sa résolution native avec le filtre de la pellicule, sans le réduire aux 128 × 128 pixels de la carte en jeu ; +- écrit le PNG hors du thread de rendu et réserve un nom horodaté unique afin d’éviter les freezes comme les écrasements lors de plusieurs clichés rapprochés ; - remplace le volume de la cape à motifs par les deux faces opposées de l’îlot UV exact du bouclier, redimensionnées aux proportions 10 × 16 de la cape, afin de corriger la projection et le culling sans afficher le manche ni l’épaisseur du bouclier ; - laisse la touche d’inventaire fermer le terminal tant que la recherche n’est pas focalisée, mais la traite comme du texte dans le champ de recherche afin que la lettre `E` ne ferme plus l’écran ; diff --git a/README.md b/README.md index a1ba200..6e36bb2 100644 --- a/README.md +++ b/README.md @@ -22,9 +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.231`**. Cette release distribue Sanctuary **`0.0.0-alpha.137`** et Red-Stoner **`0.0.0-alpha.18`** ; les huit autres modules conservent leur version issue de l'alpha.230. +Version courante du pack distribué : **`26.2.0-alpha.232`**. Cette release distribue Another World **`0.0.0-alpha.58`**, Sanctuary **`0.0.0-alpha.138`** et Red-Stoner **`0.0.0-alpha.19`** ; les sept autres modules conservent leur version issue de l'alpha.231. -Les prochains modules Sanctuary **`0.0.0-alpha.138`** et Red-Stoner **`0.0.0-alpha.19`** corrigent la cape blanche décorée avec deux faces planes utilisant l’UV exact du bouclier, empêchent la touche `E` de fermer le terminal pendant une recherche et étendent le panneau de trophées à huit lignes. Chaque statistique y possède une page de noms puis une page de valeurs ; un œuf d’apparition ajoute directement le classement des créatures correspondantes tuées. Les sauvegardes restent en données Sanctuary v15 et Red-Stoner v4 ; le snapshot du panneau passant à sept entrées, le protocole Red-Stoner passe à 8. +L’alpha.232 enregistre automatiquement chaque cliché Canon dans le dossier `screenshots` de l’instance, à côté des captures F2. Le PNG conserve le carré réellement cadré, sa résolution et le filtre de la pellicule ; l’écriture asynchrone et les noms uniques évitent les freezes et les écrasements. Cette release corrige aussi la cape blanche décorée, la touche `E` du terminal et étend le panneau de trophées à huit lignes. Chaque statistique y possède une page de noms puis une page de valeurs ; un œuf d’apparition ajoute directement le classement des créatures correspondantes tuées. Les sauvegardes restent en données Another World v5, Sanctuary v15 et Red-Stoner v4 ; le snapshot du panneau passant à sept entrées, le protocole Red-Stoner passe à 8. L’alpha.231 rend les sorties et le butin de la Backroom réellement trouvables sur ses cinq niveaux. Chaque niveau garantit désormais un coffre et un lit de sortie par cellule de 3 × 3 chunks dans les nouveaux chunks, sans ajouter de livres au butin. Le panneau de trophées devient une plaque verticale de chêne avec quatre lignes lisibles : titre et numéro de page, puis les trois places du podium. Un clic droit avance d’une page et `Maj` + clic droit revient à la précédente. JEI passe à la bêta Fabric `30.29.0.201`, qui corrige un crash lié à l’atlas de textures. Les sauvegardes et les chunks déjà générés restent compatibles ; Sanctuary conserve les données v15/protocole 24 et Red-Stoner les données v4/protocole 7. diff --git a/anotherworld/build.gradle b/anotherworld/build.gradle index 45ce88a..e6dba08 100644 --- a/anotherworld/build.gradle +++ b/anotherworld/build.gradle @@ -15,6 +15,14 @@ tasks.register("vaultRulesSmoke", JavaExec) { mainClass = "fr.koka99cab.sanctuary26.anotherworld.vault.VaultRulesSmoke" } +tasks.register("canonScreenshotFilesSmoke", JavaExec) { + group = "verification" + description = "Checks Canon photo exports use the vanilla screenshots directory and collision-safe names." + dependsOn tasks.named("testClasses") + classpath = sourceSets.test.runtimeClasspath + mainClass = "fr.koka99cab.canon.client.CanonScreenshotFilesSmoke" +} + tasks.named("test") { failOnNoDiscoveredTests = false } @@ -1956,7 +1964,7 @@ tasks.register("verifyAnotherWorldCatalog") { "src/main/resources/assets/redstoner/textures/item/weather_gauge.png", "src/main/resources/data/redstoner/recipe/weather_gauge.json" ] - if (project.version.toString() != "0.0.0-alpha.57" + if (project.version.toString() != "0.0.0-alpha.58" || sulfurMigration.target?.modules?.anotherworld != "0.0.0-alpha.44" || sulfurMigration.sulfur_caves?.sanctuary?.dripstone_cell_period != 2 || !javaText.contains('Identifier.parse("sanctuary:sulfur_caves")') @@ -3261,6 +3269,7 @@ tasks.register("verifyAnotherWorldCatalog") { tasks.named("check") { dependsOn tasks.named("verifyAnotherWorldCatalog") dependsOn tasks.named("vaultRulesSmoke") + dependsOn tasks.named("canonScreenshotFilesSmoke") } tasks.register("verifyClimateBiomeMixer") { @@ -3273,7 +3282,7 @@ tasks.register("verifyClimateBiomeMixer") { "pack/migrations/26.2.0-alpha.188-beta-climate-provinces-to-alpha.189.json")) def mixer = file( "src/main/java/fr/koka99cab/sanctuary26/anotherworld/mixin/MultiNoiseBiomeSourceParameterListPresetMixin.java").text - if (project.version.toString() != "0.0.0-alpha.57" + if (project.version.toString() != "0.0.0-alpha.58" || migration.source?.pack_version != "26.2.0-alpha.188" || migration.target?.pack_version != "26.2.0-alpha.189" || migration.target?.modules?.anotherworld != "0.0.0-alpha.48" @@ -3315,7 +3324,7 @@ tasks.register("verifyBackroomMaterialIntegration") { "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/api/backroom/BackroomMaterialApi.java").text def rootBuild = rootProject.file("build.gradle").text def manifest = new JsonSlurper().parse(file("src/main/resources/fabric.mod.json")) - if (project.version.toString() != "0.0.0-alpha.57" + if (project.version.toString() != "0.0.0-alpha.58" || !initializer.contains("BackroomMaterialApi.registerAnomalyMaterial(AnotherWorldBlocks.TURQUOISE_MOSS)") || !blocks.contains('"turquoise_moss"') || !api.contains("public static void registerAnomalyMaterial") diff --git a/anotherworld/src/main/java/fr/koka99cab/canon/client/CanonScreenshotFiles.java b/anotherworld/src/main/java/fr/koka99cab/canon/client/CanonScreenshotFiles.java new file mode 100644 index 0000000..7c5f5c9 --- /dev/null +++ b/anotherworld/src/main/java/fr/koka99cab/canon/client/CanonScreenshotFiles.java @@ -0,0 +1,38 @@ +package fr.koka99cab.canon.client; + +import java.io.IOException; +import java.nio.file.FileAlreadyExistsException; +import java.nio.file.Files; +import java.nio.file.Path; + +final class CanonScreenshotFiles { + private static final String SCREENSHOT_DIRECTORY = "screenshots"; + private static final int MAX_SUFFIX = 10_000; + + private CanonScreenshotFiles() { + } + + static Path reserve(Path gameDirectory, String timestamp) throws IOException { + Path screenshots = gameDirectory.resolve(SCREENSHOT_DIRECTORY); + Files.createDirectories(screenshots); + for (int suffix = 1; suffix <= MAX_SUFFIX; suffix++) { + Path candidate = screenshots.resolve(fileName(timestamp, suffix)); + try { + return Files.createFile(candidate); + } catch (FileAlreadyExistsException ignored) { + // Keep the vanilla timestamp readable while avoiding same-second collisions. + } + } + throw new IOException("Could not reserve a unique Canon screenshot filename"); + } + + static String fileName(String timestamp, int suffix) { + if (timestamp == null || timestamp.isBlank()) { + throw new IllegalArgumentException("timestamp must not be blank"); + } + if (suffix < 1) { + throw new IllegalArgumentException("suffix must be positive"); + } + return timestamp + "-canon" + (suffix == 1 ? "" : "_" + suffix) + ".png"; + } +} diff --git a/anotherworld/src/main/java/fr/koka99cab/canon/client/ClientPhotoCapture.java b/anotherworld/src/main/java/fr/koka99cab/canon/client/ClientPhotoCapture.java index 9de3acf..089f39b 100644 --- a/anotherworld/src/main/java/fr/koka99cab/canon/client/ClientPhotoCapture.java +++ b/anotherworld/src/main/java/fr/koka99cab/canon/client/ClientPhotoCapture.java @@ -8,12 +8,15 @@ import fr.koka99cab.canon.network.CapturePhotoPayload; import fr.koka99cab.canon.photo.PhotoMapPalette; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.platform.Window; +import java.nio.file.Files; +import java.nio.file.Path; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.minecraft.client.Minecraft; import net.minecraft.client.Screenshot; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; import net.minecraft.util.ARGB; +import net.minecraft.util.Util; import net.minecraft.world.item.ItemStack; public final class ClientPhotoCapture { @@ -65,6 +68,7 @@ public final class ClientPhotoCapture { ClientPlayNetworking.send(new CapturePhotoPayload(colors)); client.player.getCooldowns().addCooldown(capture.cameraStack(), CanonConstants.CAMERA_COOLDOWN_TICKS); client.player.playSound(SoundEvents.SPYGLASS_USE, 0.7F, 1.35F); + exportScreenshot(client, screenshot, capture.style(), offsetX, offsetY, cropWidth, cropHeight); } catch (Exception exception) { CanonMod.LOGGER.warn("Failed to capture photo", exception); if (client.player != null) { @@ -74,6 +78,72 @@ public final class ClientPhotoCapture { }); } + private static void exportScreenshot( + Minecraft client, + NativeImage screenshot, + PhotoStyle style, + int offsetX, + int offsetY, + int cropWidth, + int cropHeight + ) { + NativeImage exported = null; + Path target = null; + try { + exported = new NativeImage(cropWidth, cropHeight, false); + screenshot.copyRect(exported, offsetX, offsetY, 0, 0, cropWidth, cropHeight, false, false); + target = CanonScreenshotFiles.reserve(client.gameDirectory.toPath(), Util.getFilenameFormattedDateTime()); + } catch (Exception exception) { + if (exported != null) exported.close(); + if (target != null) deleteReservedFile(target); + notifyScreenshotFailure(client, exception); + return; + } + + NativeImage image = exported; + Path output = target; + Util.ioPool().execute(() -> { + try (image) { + applyStyle(image, style); + image.writeToFile(output); + client.execute(() -> { + if (client.player != null) { + client.player.sendSystemMessage(Component.translatable( + "message.canon.camera.screenshot_saved", output.getFileName().toString())); + } + }); + } catch (Exception exception) { + deleteReservedFile(output); + notifyScreenshotFailure(client, exception); + } + }); + } + + private static void applyStyle(NativeImage image, PhotoStyle style) { + for (int y = 0; y < image.getHeight(); y++) { + for (int x = 0; x < image.getWidth(); x++) { + image.setPixel(x, y, style.applyFilter(image.getPixel(x, y))); + } + } + } + + private static void notifyScreenshotFailure(Minecraft client, Exception exception) { + CanonMod.LOGGER.warn("Failed to save Canon photo in the screenshots directory", exception); + client.execute(() -> { + if (client.player != null) { + client.player.sendSystemMessage(Component.translatable("message.canon.camera.screenshot_failed")); + } + }); + } + + private static void deleteReservedFile(Path target) { + try { + Files.deleteIfExists(target); + } catch (Exception cleanupException) { + CanonMod.LOGGER.debug("Could not remove incomplete Canon screenshot {}", target, cleanupException); + } + } + private static int clamp(int value, int min, int max) { return Math.max(min, Math.min(max, value)); } diff --git a/anotherworld/src/main/resources/assets/canon/lang/en_us.json b/anotherworld/src/main/resources/assets/canon/lang/en_us.json index 24b8a82..3798247 100644 --- a/anotherworld/src/main/resources/assets/canon/lang/en_us.json +++ b/anotherworld/src/main/resources/assets/canon/lang/en_us.json @@ -24,6 +24,8 @@ "message.canon.camera.full": "The camera is already full.", "message.canon.camera.captured": "Photo captured.", "message.canon.camera.capture_failed": "Could not capture the current frame.", + "message.canon.camera.screenshot_saved": "Photo saved to screenshots: %s", + "message.canon.camera.screenshot_failed": "The in-game photo was captured, but its PNG could not be saved to screenshots.", "style.canon.white": "Neutral", "style.canon.white.effect": "Neutral stock with soft paper whites.", "style.canon.light_gray": "Matte", diff --git a/anotherworld/src/main/resources/assets/canon/lang/fr_fr.json b/anotherworld/src/main/resources/assets/canon/lang/fr_fr.json index 5a66333..66de229 100644 --- a/anotherworld/src/main/resources/assets/canon/lang/fr_fr.json +++ b/anotherworld/src/main/resources/assets/canon/lang/fr_fr.json @@ -24,6 +24,8 @@ "message.canon.camera.full": "L'appareil photo est deja plein.", "message.canon.camera.captured": "Photo prise.", "message.canon.camera.capture_failed": "Impossible de capturer l'image actuelle.", + "message.canon.camera.screenshot_saved": "Photo sauvegardee dans screenshots : %s", + "message.canon.camera.screenshot_failed": "La photo en jeu est prise, mais son PNG n'a pas pu etre sauvegarde dans screenshots.", "style.canon.white": "Neutre", "style.canon.white.effect": "Rendu neutre avec des blancs doux.", "style.canon.light_gray": "Mat", diff --git a/anotherworld/src/main/resources/assets/canon/lang/ru_ru.json b/anotherworld/src/main/resources/assets/canon/lang/ru_ru.json index 4a1551e..e9ce086 100644 --- a/anotherworld/src/main/resources/assets/canon/lang/ru_ru.json +++ b/anotherworld/src/main/resources/assets/canon/lang/ru_ru.json @@ -24,6 +24,8 @@ "message.canon.camera.full": "Фотоаппарат уже полностью заряжен.", "message.canon.camera.captured": "Фотография сделана.", "message.canon.camera.capture_failed": "Не удалось снять текущий кадр.", + "message.canon.camera.screenshot_saved": "Фотография сохранена в screenshots: %s", + "message.canon.camera.screenshot_failed": "Снимок в игре сделан, но PNG не удалось сохранить в screenshots.", "style.canon.white": "Нейтральный", "style.canon.white.effect": "Нейтральная плёнка с мягкими белыми тонами.", "style.canon.light_gray": "Матовый", diff --git a/anotherworld/src/test/java/fr/koka99cab/canon/client/CanonScreenshotFilesSmoke.java b/anotherworld/src/test/java/fr/koka99cab/canon/client/CanonScreenshotFilesSmoke.java new file mode 100644 index 0000000..9cf36b1 --- /dev/null +++ b/anotherworld/src/test/java/fr/koka99cab/canon/client/CanonScreenshotFilesSmoke.java @@ -0,0 +1,33 @@ +package fr.koka99cab.canon.client; + +import java.nio.file.Files; +import java.nio.file.Path; + +public final class CanonScreenshotFilesSmoke { + private CanonScreenshotFilesSmoke() { + } + + public static void main(String[] args) throws Exception { + String timestamp = "2026-09-03_01.23.45"; + require(CanonScreenshotFiles.fileName(timestamp, 1).equals("2026-09-03_01.23.45-canon.png"), + "first screenshot filename"); + require(CanonScreenshotFiles.fileName(timestamp, 2).equals("2026-09-03_01.23.45-canon_2.png"), + "same-second screenshot filename"); + + Path gameDirectory = Files.createTempDirectory("canon-screenshot-smoke-"); + Path first = CanonScreenshotFiles.reserve(gameDirectory, timestamp); + Path second = CanonScreenshotFiles.reserve(gameDirectory, timestamp); + require(first.getParent().equals(gameDirectory.resolve("screenshots")), + "screenshots directory"); + require(first.getFileName().toString().equals("2026-09-03_01.23.45-canon.png"), + "first reserved screenshot"); + require(second.getFileName().toString().equals("2026-09-03_01.23.45-canon_2.png"), + "collision-safe screenshot"); + require(Files.isRegularFile(first) && Files.isRegularFile(second), + "reserved screenshot files"); + } + + private static void require(boolean condition, String contract) { + if (!condition) throw new IllegalStateException("Invalid Canon screenshot contract: " + contract); + } +} diff --git a/build.gradle b/build.gradle index 34913eb..98ad119 100644 --- a/build.gradle +++ b/build.gradle @@ -2918,7 +2918,7 @@ tasks.register("verifyNotchEncounter") { || rootProject.ouch_version != "0.0.0-alpha.11" || rootProject.sanctuary_version != "0.0.0-alpha.138" || rootProject.masterkey_version != "0.0.0-alpha.9" - || rootProject.pack_version != "26.2.0-alpha.231" + || rootProject.pack_version != "26.2.0-alpha.232" || manifests.itsalive.custom?.sanctuary26?.data_version != 4 || manifests.sanctuary.custom?.sanctuary26?.data_version != 15 || manifests.ouch.depends?.itsalive != ">=0.0.0-alpha.37" @@ -3007,7 +3007,7 @@ tasks.register("verifyMagicCarpet") { "iliketomoveit/src/main/resources/assets/iliketomoveit/models/item/magic_carpet.json")) def carpetTexture = file( "iliketomoveit/src/main/resources/assets/iliketomoveit/textures/item/magic_carpet.png") - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.iliketomoveit_version != "0.0.0-alpha.18" || rootProject.onlyfun_version != "0.0.0-alpha.27" || rootProject.sanctuary_version != "0.0.0-alpha.138" @@ -3640,7 +3640,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || rootProject.onlyfun_version != "0.0.0-alpha.27" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -3690,8 +3690,8 @@ tasks.register("verifyMirrorLavenderDrawerRelease") { def redStonerRegistry = file( "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/registry/RedStonerRegistries.java").text def drawerRecipe = file("redstoner/src/main/resources/data/redstoner/recipe/drawer.json") - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || rootProject.redstoner_version != "0.0.0-alpha.19" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.191" @@ -4262,7 +4262,8 @@ project(":redstoner") { || migration.migration?.vanilla_statistics_imported_once != true || migration.compatibility?.existing_saves_supported != true || migration.compatibility?.network_protocols_changed != false - || followUp.status != "unreleased" + || followUp.status != "released" + || followUp.released_in != "26.2.0-alpha.232" || followUp.modules?.sanctuary?.target_module_version != "0.0.0-alpha.138" || followUp.modules?.redstoner?.target_module_version != "0.0.0-alpha.19" || followUp.modules?.redstoner?.target_network_protocol != 8 @@ -4606,7 +4607,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.onlyfun_version != "0.0.0-alpha.27" || rootProject.sanctuary_version != "0.0.0-alpha.138" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -4651,7 +4652,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.itsalive_version != "0.0.0-alpha.38" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.193" @@ -4700,7 +4701,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.onlyfun_version != "0.0.0-alpha.27" || rootProject.sanctuary_version != "0.0.0-alpha.138" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version @@ -4747,7 +4748,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || migration.source?.pack_version != "26.2.0-alpha.195" || migration.target?.pack_version != "26.2.0-alpha.196" || migration.target?.modules != [ @@ -4765,10 +4766,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.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"')) { + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"')) { throw new GradleException("The alpha.196 culinary, mailbox and grapple release contract is incomplete") } } @@ -4793,7 +4794,7 @@ tasks.register("verifyQuestRequestsCauldronBatchesRelease") { def prism = new JsonSlurper().parse(file("pack/prism/modrinth.index.json")) def packwiz = file("pack/packwiz/pack.toml").text def sanctuaryManifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.source?.pack_version != "26.2.0-alpha.196" @@ -4813,10 +4814,10 @@ tasks.register("verifyQuestRequestsCauldronBatchesRelease") { || migration.distribution?.jei?.target != "30.26.0.186" || migration.compatibility?.sanctuary_target_network_protocol != 19 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 24 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"')) { + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"')) { throw new GradleException("The alpha.197 quest-request and cauldron-batch release contract is incomplete") } } @@ -4843,7 +4844,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.itsalive_version != "0.0.0-alpha.38" || migration.source?.pack_version != "26.2.0-alpha.197" || migration.target?.pack_version != "26.2.0-alpha.198" @@ -4862,10 +4863,10 @@ tasks.register("verifyFermentationBarrelAutomationRelease") { || migration.distribution?.packwiz_index_refreshed != true || itsAliveManifest.custom?.sanctuary26?.data_version != 4 || itsAliveManifest.custom?.sanctuary26?.network_protocol != 4 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"')) { throw new GradleException("The alpha.198 fermentation barrel release contract is incomplete") } @@ -4893,7 +4894,7 @@ tasks.register("verifyQuestRequestContractsRelease") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def sanctuaryManifest = new JsonSlurper().parse(file("sanctuary/src/main/resources/fabric.mod.json")) - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.source?.pack_version != "26.2.0-alpha.198" @@ -4907,12 +4908,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 != 24 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"')) { + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"')) { throw new GradleException("The alpha.199 quest-request contract release is incomplete") } } @@ -4948,7 +4949,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || rootProject.ouch_version != "0.0.0-alpha.11" || migration.source?.pack_version != "26.2.0-alpha.199" @@ -4982,10 +4983,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.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || !packwizIndex.contains('file = "mods/ouch-0.0.0-alpha.11.jar"')) { throw new GradleException("The alpha.200 Weather TNT and Ambiance release is incomplete") @@ -5014,7 +5015,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.source?.pack_version != "26.2.0-alpha.200" || migration.source?.modules?.sanctuary != "0.0.0-alpha.115" @@ -5029,11 +5030,11 @@ tasks.register("verifyQuestRequestEscrowRelease") { || migration.compatibility?.sanctuary_target_network_protocol != 21 || sanctuaryManifest.custom?.sanctuary26?.data_version != 15 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 24 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"')) { + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"')) { throw new GradleException("The alpha.201 quest-request escrow release is incomplete") } } @@ -5068,8 +5069,8 @@ 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.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.iliketomoveit_version != "0.0.0-alpha.18" || rootProject.sanctuary_version != "0.0.0-alpha.138" @@ -5108,14 +5109,14 @@ tasks.register("verifyWaystoneShopCulinaryAlpha202Release") { || moveItManifest.custom?.sanctuary26?.network_protocol != 5 || sanctuaryManifest.custom?.sanctuary26?.data_version != 15 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 24 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"') || !packwizIndex.contains('file = "mods/iliketomoveit-0.0.0-alpha.18.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"')) { + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"')) { throw new GradleException("The alpha.202 Waystone, Shop and culinary lectern release is incomplete") } } @@ -5228,8 +5229,8 @@ 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.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.schema_version != 1 || migration.source?.pack_version != "26.2.0-alpha.201" @@ -5420,8 +5421,8 @@ tasks.register("verifySafeVaultInterfaceAlpha203Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || migration.source?.pack_version != "26.2.0-alpha.202" || migration.source?.modules != [anotherworld: "0.0.0-alpha.50"] || migration.target?.pack_version != "26.2.0-alpha.203" @@ -5438,10 +5439,10 @@ tasks.register("verifySafeVaultInterfaceAlpha203Release") { || migration.distribution?.jei?.modrinth_version_id != "XXTFqqwG" || migration.distribution?.jei?.prism_manifest_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.50.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" @@ -5466,8 +5467,8 @@ tasks.register("verifySafeVaultFixAlpha204Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || migration.source?.pack_version != "26.2.0-alpha.203" || migration.source?.modules != [anotherworld: "0.0.0-alpha.51"] || migration.target?.pack_version != "26.2.0-alpha.204" @@ -5492,10 +5493,10 @@ tasks.register("verifySafeVaultFixAlpha204Release") { || migration.distribution?.jei?.modrinth_version_id != "OcMayhUH" || migration.distribution?.jei?.prism_manifest_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.51.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" @@ -5520,8 +5521,8 @@ tasks.register("verifySafeVaultCubeAlpha205Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || migration.source?.pack_version != "26.2.0-alpha.204" || migration.source?.modules != [anotherworld: "0.0.0-alpha.52"] || migration.target?.pack_version != "26.2.0-alpha.205" @@ -5549,10 +5550,10 @@ tasks.register("verifySafeVaultCubeAlpha205Release") { || migration.distribution?.jei?.modrinth_version_id != "NtfJDMhk" || migration.distribution?.jei?.prism_manifest_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.52.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" @@ -5578,8 +5579,8 @@ tasks.register("verifySafeVaultCtmAlpha206Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || migration.source?.pack_version != "26.2.0-alpha.205" || migration.source?.modules != [anotherworld: "0.0.0-alpha.53"] || migration.target?.pack_version != "26.2.0-alpha.206" @@ -5601,10 +5602,10 @@ tasks.register("verifySafeVaultCtmAlpha206Release") { || migration.compatibility?.pack_release_updated != true || migration.distribution?.packwiz_index_refreshed != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.53.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" @@ -5630,8 +5631,8 @@ tasks.register("verifySafeVaultUnlimitedAlpha207Release") { def packwiz = file("pack/packwiz/pack.toml").text def packwizIndex = file("pack/packwiz/index.toml").text def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || migration.source?.pack_version != "26.2.0-alpha.206" || migration.source?.modules != [anotherworld: "0.0.0-alpha.54"] || migration.target?.pack_version != "26.2.0-alpha.207" @@ -5660,10 +5661,10 @@ tasks.register("verifySafeVaultUnlimitedAlpha207Release") { || migration.compatibility?.pack_release_updated != true || migration.distribution?.packwiz_index_refreshed != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"') || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.54.jar"') || jeiFiles.size() != 1 || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" @@ -5718,7 +5719,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.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.issue != 35 @@ -5970,7 +5971,7 @@ tasks.register("verifyCanapliaAlpha209Release") { ambiance: "0.0.0-alpha.14", itsalive: "0.0.0-alpha.33", onlyfun: "0.0.0-alpha.20"] - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || rootProject.itsalive_version != "0.0.0-alpha.38" || rootProject.onlyfun_version != "0.0.0-alpha.27" @@ -6018,9 +6019,9 @@ tasks.register("verifyCanapliaAlpha209Release") { || fixMigration.compatibility?.network_protocol_changed != false || fixMigration.distribution?.pack_release_updated != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || !packwizIndex.contains('file = "mods/itsalive-0.0.0-alpha.38.jar"') || !packwizIndex.contains('file = "mods/onlyfun-0.0.0-alpha.27.jar"') @@ -6072,7 +6073,7 @@ tasks.register("verifyAlpha210Release") { itsalive: "0.0.0-alpha.35"] def currentModules = [ ambiance: "0.0.0-alpha.22", - sanctuary: "0.0.0-alpha.137", + sanctuary: "0.0.0-alpha.138", onlyfun: "0.0.0-alpha.27", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9", @@ -6089,7 +6090,7 @@ tasks.register("verifyAlpha210Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || rootProject.onlyfun_version != "0.0.0-alpha.27" || rootProject.iliketomoveit_version != "0.0.0-alpha.18" @@ -6135,10 +6136,10 @@ tasks.register("verifyAlpha210Release") { || manifests.iliketomoveit.custom?.sanctuary26?.network_protocol != 5 || manifests.itsalive.custom?.sanctuary26?.data_version != 4 || manifests.itsalive.custom?.sanctuary26?.network_protocol != 4 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || jeiFiles.size() != 1 @@ -6185,7 +6186,7 @@ tasks.register("verifyAlpha211Release") { ouch: "0.0.0-alpha.10", sanctuary: "0.0.0-alpha.119"] def currentModules = expectedTarget + [ - sanctuary: "0.0.0-alpha.137", + sanctuary: "0.0.0-alpha.138", onlyfun: "0.0.0-alpha.27", ambiance: "0.0.0-alpha.22", iliketomoveit: "0.0.0-alpha.18", @@ -6219,7 +6220,7 @@ tasks.register("verifyAlpha211Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || workspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.source?.pack_version != "26.2.0-alpha.210" || migration.source?.modules != expectedSource @@ -6247,9 +6248,9 @@ tasks.register("verifyAlpha211Release") { || migration.distribution?.prism_modrinth_index_updated != true || migration.distribution?.shared_client_server_mrpack != true || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || prism.files?.size() != 5 @@ -6257,7 +6258,7 @@ tasks.register("verifyAlpha211Release") { || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" || jeiFiles[0].hashes?.sha512 != "2279cb0ec4e41d9eebad80c2ecac76d19c8bc8e5aac69ba13f35b77494625c70d66edc74d59959116012bfb2f464b55806dd69fbf6387f25679b1553953e329a" || !changelog.contains("## `26.2.0-alpha.211`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.211 Abjection and gameplay-polish release is incomplete") } } @@ -6291,7 +6292,7 @@ tasks.register("verifyAlpha212Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.source?.pack_version != "26.2.0-alpha.211" || migration.source?.modules != [sanctuary: "0.0.0-alpha.119"] @@ -6313,16 +6314,16 @@ tasks.register("verifyAlpha212Release") { || manifest.custom?.sanctuary26?.data_version != 15 || manifest.custom?.sanctuary26?.network_protocol != 24 || !minecraftMixin.contains('method = "pickBlockOrEntity"') - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" || prism.files?.size() != 5 || jeiFiles.size() != 1 - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.119.jar"') || !changelog.contains("## `26.2.0-alpha.212`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.212 Black Market startup-fix release is incomplete") } } @@ -6356,7 +6357,7 @@ tasks.register("verifyAlpha213Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.212" || migration.source?.modules != [ambiance: "0.0.0-alpha.15"] @@ -6380,16 +6381,16 @@ tasks.register("verifyAlpha213Release") { || manifest.custom?.sanctuary26?.network_protocol != 6 || !levelEventMixin.contains('@Mixin(LevelEventHandler.class)') || !levelEventMixin.contains('@Inject(method = "levelEvent"') - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" || prism.files?.size() != 5 || jeiFiles.size() != 1 - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.15.jar"') || !changelog.contains("## `26.2.0-alpha.213`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.213 Ambiance startup-fix release is incomplete") } } @@ -6424,7 +6425,7 @@ tasks.register("verifyAlpha214Release") { "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscAudioPlayer.java").text def urlSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/white_disc/WhiteDiscUrlSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.213" || migration.source?.modules != [ambiance: "0.0.0-alpha.16"] @@ -6453,16 +6454,16 @@ tasks.register("verifyAlpha214Release") { || !audioPlayer.contains('message.ambiance.white_disc.loading') || !audioPlayer.contains('message.ambiance.white_disc.failed') || !urlSmoke.contains("https://youtu.be/Ue5ZBe-GzSM?si=78LSbtBQzUYzhA2Y") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.16.jar"') || !changelog.contains("## `26.2.0-alpha.214`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.214 white-disc solo synchronization release is incomplete") } } @@ -6503,7 +6504,7 @@ tasks.register("verifyAlpha215Release") { "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/client/audio/LavaplayerAudioStream.java").text def playbackSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscPlaybackSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.214" || migration.source?.modules != [ambiance: "0.0.0-alpha.17"] @@ -6543,16 +6544,16 @@ tasks.register("verifyAlpha215Release") { || !playbackSmoke.contains("https://www.youtube.com/watch?v=Ue5ZBe-GzSM") || !playbackSmoke.contains("stream.paddedSilenceBytes() != 0L") || !playbackSmoke.contains("stream.decodedTimelineMillis() != 4_000L") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.17.jar"') || !changelog.contains("## `26.2.0-alpha.215`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.215 resilient white-disc playback release is incomplete") } } @@ -6597,7 +6598,7 @@ tasks.register("verifyAlpha216Release") { "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/LavaplayerAudioStreamSmoke.java").text def playbackSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscPlaybackSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.215" || migration.source?.modules != [ambiance: "0.0.0-alpha.18"] @@ -6641,16 +6642,16 @@ tasks.register("verifyAlpha216Release") { || !playbackSmoke.contains("stream.paddedSilenceBytes() != 0L") || !playbackSmoke.contains("stream.decodedTimelineMillis() != 4_000L") || !playbackSmoke.contains("LavaplayerAudioStream.SAMPLE_RATE * 2 * 4") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.18.jar"') || !changelog.contains("## `26.2.0-alpha.216`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.216 white-disc audio-quality release is incomplete") } } @@ -6685,7 +6686,7 @@ tasks.register("verifyAlpha217Release") { "ambiance/src/main/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscAudioPlayer.java").text def streamSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/LavaplayerAudioStreamSmoke.java").text - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.216" || migration.source?.modules != [ambiance: "0.0.0-alpha.19"] @@ -6716,16 +6717,16 @@ tasks.register("verifyAlpha217Release") { || !audioPlayer.contains("PLAYBACK_PITCH = 1.0F") || audioPlayer.count("channel.setPitch(PLAYBACK_PITCH)") != 2 || !streamSmoke.contains("WhiteDiscAudioPlayer.PLAYBACK_PITCH - 1.0F") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" || prism.files?.size() != 5 - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.19.jar"') || !changelog.contains("## `26.2.0-alpha.217`") || changelog.contains("## Modifications non distribuées") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.217 white-disc pitch release is incomplete") } } @@ -6772,8 +6773,8 @@ tasks.register("verifyAlpha218Release") { redstoner: "0.0.0-alpha.10", onlyfun: "0.0.0-alpha.24", sanctuary: "0.0.0-alpha.120"] def targetModules = [ redstoner: "0.0.0-alpha.11", onlyfun: "0.0.0-alpha.25", sanctuary: "0.0.0-alpha.121"] - def currentModules = targetModules + [redstoner: "0.0.0-alpha.18", - sanctuary: "0.0.0-alpha.137", onlyfun: "0.0.0-alpha.27", + def currentModules = targetModules + [redstoner: "0.0.0-alpha.19", + sanctuary: "0.0.0-alpha.138", onlyfun: "0.0.0-alpha.27", iliketomoveit: "0.0.0-alpha.18", ambiance: "0.0.0-alpha.22", itsalive: "0.0.0-alpha.38", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] def requiredJars = currentModules.collect { id, version -> @@ -6782,7 +6783,7 @@ tasks.register("verifyAlpha218Release") { def obsoleteJars = sourceModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.redstoner_version != "0.0.0-alpha.19" || currentModules.findAll { id, version -> id != "redstoner" && id != "sanctuary" && id != "onlyfun" && id != "iliketomoveit" @@ -6823,13 +6824,13 @@ tasks.register("verifyAlpha218Release") { || !onlyFunPolicy.contains('namespace.equals("redstoner") && path.equals("storage_terminal")') || !blackMarketPolicy.contains('namespace.equals("redstoner") && path.equals("storage_terminal")') || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !changelog.contains("## `26.2.0-alpha.218`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.218 Storage Terminal release is incomplete") } } @@ -6874,7 +6875,7 @@ tasks.register("verifyAlpha219Release") { def targetModules = [ sanctuary: "0.0.0-alpha.122", iliketomoveit: "0.0.0-alpha.16", ambiance: "0.0.0-alpha.21"] def currentModules = targetModules + [ - ambiance: "0.0.0-alpha.22", sanctuary: "0.0.0-alpha.137", + ambiance: "0.0.0-alpha.22", sanctuary: "0.0.0-alpha.138", iliketomoveit: "0.0.0-alpha.18", onlyfun: "0.0.0-alpha.27", itsalive: "0.0.0-alpha.38", ouch: "0.0.0-alpha.11", masterkey: "0.0.0-alpha.9"] def workspaceModules = currentModules + [sanctuary: "0.0.0-alpha.138"] @@ -6892,7 +6893,7 @@ tasks.register("verifyAlpha219Release") { include "**/*golden*days*.zip", "**/*golden*days*.jar" exclude "**/build/**", "**/.gradle/**", "**/.git/**" }.files - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || workspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.source?.pack_version != "26.2.0-alpha.218" || migration.source?.modules != sourceModules @@ -6924,15 +6925,15 @@ tasks.register("verifyAlpha219Release") { || manifests.ambiance.custom?.sanctuary26?.data_version != 2 || manifests.ambiance.custom?.sanctuary26?.network_protocol != 6 || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version || prism.files.any { it.path.toLowerCase().contains("golden-days") } - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !forbiddenGoldenArchives.isEmpty() || !changelog.contains("## `26.2.0-alpha.219`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.219 finite Alpha/Indev release is incomplete") } } @@ -6971,7 +6972,7 @@ tasks.register("verifyAlpha220Release") { "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java").text def networking = file( "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/network/RedStonerNetworking.java").text - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.redstoner_version != "0.0.0-alpha.19" || migration.source?.pack_version != "26.2.0-alpha.219" || migration.source?.modules != [redstoner: "0.0.0-alpha.11"] @@ -7012,13 +7013,13 @@ tasks.register("verifyAlpha220Release") { || networking.contains("storage_terminal_snapshot") || networking.contains("storage_terminal_action") || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.18.jar"') + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.19.jar"') || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.11.jar"') || !changelog.contains("## `26.2.0-alpha.220`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.220 Storage Terminal menu release is incomplete") } } @@ -7066,7 +7067,7 @@ tasks.register("verifyAlpha221Release") { def playbackSmoke = file( "ambiance/src/test/java/fr/koka99cab/sanctuary26/ambiance/client/audio/WhiteDiscPlaybackSmoke.java").text def contract = migration.white_disc_native_rate - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.ambiance_version != "0.0.0-alpha.22" || migration.source?.pack_version != "26.2.0-alpha.220" || migration.source?.modules != [ambiance: "0.0.0-alpha.21"] @@ -7115,13 +7116,13 @@ tasks.register("verifyAlpha221Release") { || !playbackSmoke.contains("PCM cadence: 100%% speed") || !whiteDiscDocumentation.contains("48 000 Hz") || release.pack_version != rootProject.pack_version - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" || prism.versionId != rootProject.pack_version - || !packwiz.contains('version = "26.2.0-alpha.231"') + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.22.jar"') || packwizIndex.contains('file = "mods/ambiance-0.0.0-alpha.21.jar"') || !changelog.contains("## `26.2.0-alpha.221`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.221 native-rate white-disc release is incomplete") } } @@ -7200,7 +7201,7 @@ tasks.register("verifyAlpha222Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.redstoner_version != "0.0.0-alpha.19" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.source?.pack_version != "26.2.0-alpha.221" @@ -7274,12 +7275,12 @@ tasks.register("verifyAlpha222Release") { || !questEditor.contains("QuestIdSuggestions.suggest") || !suggestions.contains("Normalizer.Form.NFD") || !suggestions.contains("public static final int LIMIT = 5") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.18.jar"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.19.jar"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"') || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.12.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.122.jar"') || !packwizJei.contains('filename = "jei-26.2-fabric-30.29.0.201.jar"') @@ -7288,7 +7289,7 @@ tasks.register("verifyAlpha222Release") { || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" || jeiFiles[0].hashes?.sha512 != "2279cb0ec4e41d9eebad80c2ecac76d19c8bc8e5aac69ba13f35b77494625c70d66edc74d59959116012bfb2f464b55806dd69fbf6387f25679b1553953e329a" || !changelog.contains("## `26.2.0-alpha.222`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.222 terminal-search and quest-tracker release is incomplete") } } @@ -7419,7 +7420,7 @@ tasks.register("verifyAlpha223Release") { def jeiFiles = prism.files.findAll { it.path == "mods/jei-26.2-fabric-30.29.0.201.jar" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.source?.pack_version != "26.2.0-alpha.222" || migration.source?.modules != [sanctuary: "0.0.0-alpha.124"] @@ -7484,11 +7485,11 @@ tasks.register("verifyAlpha223Release") { || !questSync.contains("case EMERALD -> 2") || !inventorySmoke.contains("Hotbar snapshot must remain untouched") || !displaySmoke.contains("QuestTrackerDisplayMode.PANEL.next()") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.124.jar"') || !packwizJei.contains('filename = "jei-26.2-fabric-30.29.0.201.jar"') || !packwizJei.contains('version = "d3HeviSL"') @@ -7496,7 +7497,7 @@ tasks.register("verifyAlpha223Release") { || jeiFiles[0].hashes?.sha1 != "e82447aff07e87a372cf817bc9c28b0d77b6f55c" || jeiFiles[0].hashes?.sha512 != "2279cb0ec4e41d9eebad80c2ecac76d19c8bc8e5aac69ba13f35b77494625c70d66edc74d59959116012bfb2f464b55806dd69fbf6387f25679b1553953e329a" || !changelog.contains("## `26.2.0-alpha.223`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.223 inventory-sort and quest-tracker display release is incomplete") } } @@ -7540,7 +7541,7 @@ tasks.register("verifyAlpha224Release") { iliketomoveit: "0.0.0-alpha.17", onlyfun: "0.0.0-alpha.26", sanctuary: "0.0.0-alpha.128"] def currentModules = targetModules + [ itsalive: "0.0.0-alpha.38", iliketomoveit: "0.0.0-alpha.18", - onlyfun: "0.0.0-alpha.27", sanctuary: "0.0.0-alpha.137"] + onlyfun: "0.0.0-alpha.27", sanctuary: "0.0.0-alpha.138"] def workspaceModules = currentModules + [sanctuary: "0.0.0-alpha.138"] def inventorySort = file( "sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/gameplay/SanctuaryInventorySort.java").text @@ -7560,7 +7561,7 @@ tasks.register("verifyAlpha224Release") { }.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || workspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.status != "released" || migration.source?.pack_version != "26.2.0-alpha.223" @@ -7603,14 +7604,14 @@ tasks.register("verifyAlpha224Release") { || !sortPayload.contains("buffer.writeBoolean(container)") || !sortPayload.contains("buffer.readBoolean()") || !networking.contains("PROTOCOL_VERSION = 24") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !changelog.contains("## `26.2.0-alpha.224`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.224 Notch, Magic Carpet and container-sort release is incomplete") } } @@ -7661,14 +7662,13 @@ tasks.register("verifyAlpha225Release") { anotherworld: "0.0.0-alpha.56", itsalive: "0.0.0-alpha.38", iliketomoveit: "0.0.0-alpha.18", onlyfun: "0.0.0-alpha.27", sanctuary: "0.0.0-alpha.129"] - def currentModules = targetModules + [sanctuary: "0.0.0-alpha.137"] + def currentModules = targetModules + [sanctuary: "0.0.0-alpha.138"] def currentWorkspaceModules = currentModules + [ - anotherworld: "0.0.0-alpha.57", sanctuary: "0.0.0-alpha.138"] + anotherworld: "0.0.0-alpha.58", sanctuary: "0.0.0-alpha.138"] def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } @@ -7706,7 +7706,7 @@ tasks.register("verifyAlpha225Release") { "iliketomoveit/src/main/resources/assets/iliketomoveit/textures/item/magic_carpet.png") def carpetTextureHash = MessageDigest.getInstance("SHA-256") .digest(carpetTexture.bytes).encodeHex().toString() - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || currentWorkspaceModules.any { id, version -> rootProject.property("${id}_version") != version } || migration.status != "released" || migration.source?.pack_version != "26.2.0-alpha.224" @@ -7759,14 +7759,14 @@ tasks.register("verifyAlpha225Release") { || !lootboxes.contains("SanctuaryEntityPolicy.isTemporaryCompanion") || carpetModel.textures?.layer0 != "iliketomoveit:item/magic_carpet" || carpetTextureHash != "3e4527d24a37f0632b27d2c857b047c581db07eaa41befaffbf28043a8ed86cc" - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || obsoleteJars.any { packwizIndex.contains(it) } || !changelog.contains("## `26.2.0-alpha.225`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.225 four-ticket bug-fix release is incomplete") } } @@ -7828,12 +7828,11 @@ tasks.register("verifyAlpha226Release") { def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.status != "released" || migration.source?.pack_version != "26.2.0-alpha.225" @@ -7876,14 +7875,14 @@ tasks.register("verifyAlpha226Release") { || !renderer.contains("LivingEntityRenderLayerRegistrationCallback") || !avatarMixin.contains("appearance.bannerCape()") || onlyFun.contains('"white_cape"') - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.129.jar"') || !changelog.contains("## `26.2.0-alpha.226`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.226 craftable banner cape release is incomplete") } } @@ -7920,13 +7919,12 @@ tasks.register("verifyAlpha227Release") { def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.231" - || rootProject.anotherworld_version != "0.0.0-alpha.57" + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.status != "released" || migration.source?.pack_version != "26.2.0-alpha.226" @@ -7965,15 +7963,15 @@ tasks.register("verifyAlpha227Release") { || anotherWorldManifest.custom?.sanctuary26?.network_protocol != 2 || sanctuaryManifest.custom?.sanctuary26?.data_version != 15 || sanctuaryManifest.custom?.sanctuary26?.network_protocol != 24 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.56.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.130.jar"') || !changelog.contains("## `26.2.0-alpha.227`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.227 persistent Backroom release is incomplete") } } @@ -8019,12 +8017,11 @@ tasks.register("verifyAlpha228Release") { def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.redstoner_version != "0.0.0-alpha.19" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.status != "released" @@ -8071,15 +8068,15 @@ tasks.register("verifyAlpha228Release") { || !backroomLayout.contains("WORLD_MAX_Y_EXCLUSIVE = 384") || !backroomLayout.contains("LEVEL_4(-64, 27)") || !backroomLayout.contains("mazeConnected") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.13.jar"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.131.jar"') || !changelog.contains("## `26.2.0-alpha.228`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.228 five-level Backroom and terminal release is incomplete") } } @@ -8125,8 +8122,7 @@ tasks.register("verifyAlpha229Release") { def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } @@ -8135,7 +8131,7 @@ tasks.register("verifyAlpha229Release") { "screen.redstoner.storage_terminal.sort.alphabetical", "screen.redstoner.storage_terminal.sort.count_ascending", "screen.redstoner.storage_terminal.sort.count_descending"] - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.redstoner_version != "0.0.0-alpha.19" || rootProject.sanctuary_version != "0.0.0-alpha.138" || migration.status != "released" @@ -8173,14 +8169,14 @@ tasks.register("verifyAlpha229Release") { || !screen.contains("sortMode = sortMode.next()") || !smoke.contains("verifySorting()") || !smoke.contains("periodic quantity refresh") - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || requiredJars.any { !packwizIndex.contains(it) } || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.15.jar"') || !changelog.contains("## `26.2.0-alpha.229`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.229 storage-terminal sorting release is incomplete") } } @@ -8214,14 +8210,13 @@ tasks.register("verifyAlpha230Release") { def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } def indexHash = java.security.MessageDigest.getInstance("SHA-256") .digest(packwizIndexFile.bytes).encodeHex().toString() - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || rootProject.redstoner_version != "0.0.0-alpha.19" || migration.schema_version != 1 @@ -8256,18 +8251,18 @@ tasks.register("verifyAlpha230Release") { || manifests.sanctuary.custom?.sanctuary26?.network_protocol != 24 || manifests.redstoner.custom?.sanctuary26?.data_version != 4 || manifests.redstoner.custom?.sanctuary26?.network_protocol != 8 - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwiz.contains("hash = \"${indexHash}\"") || requiredJars.any { !packwizIndex.contains(it) } - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"\nhash = "0c217a1632413e0af12e39f5096fd057d2dceaf6f437ca7044571c3635414d44"') - || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.18.jar"\nhash = "f89076b3d1fa06b17813d350e6ecd53674d19a6c7b5b9f5fc61ed65d6bcb2830"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"\nhash = "233c84a9ba7ffb172618e541ab3635f3b675a858bacf80c4712feb329069c99c"') + || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.19.jar"\nhash = "0891d96adb71c3843028dfe704ab33cac8470712277cef8f9527131f9c02e471"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.132.jar"') || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.16.jar"') || !changelog.contains("## `26.2.0-alpha.230`") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.230 Sanctuary polish release is incomplete") } } @@ -8321,14 +8316,13 @@ tasks.register("verifyAlpha231Release") { def workspaceModules = moduleIds.collectEntries { id -> [(id): project(":${id}").version.toString()] } - def releasedModules = workspaceModules + [ - sanctuary: "0.0.0-alpha.137", redstoner: "0.0.0-alpha.18"] + def releasedModules = workspaceModules def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } def indexHash = java.security.MessageDigest.getInstance("SHA-256") .digest(packwizIndexFile.bytes).encodeHex().toString() - if (rootProject.pack_version != "26.2.0-alpha.231" + if (rootProject.pack_version != "26.2.0-alpha.232" || rootProject.sanctuary_version != "0.0.0-alpha.138" || rootProject.redstoner_version != "0.0.0-alpha.19" || migration.schema_version != 1 @@ -8392,24 +8386,165 @@ tasks.register("verifyAlpha231Release") { || jeiFiles[0].hashes?.sha512 != "2279cb0ec4e41d9eebad80c2ecac76d19c8bc8e5aac69ba13f35b77494625c70d66edc74d59959116012bfb2f464b55806dd69fbf6387f25679b1553953e329a" || jeiFiles[0].fileSize != 1_860_103 || !packwizJei.contains('filename = "jei-26.2-fabric-30.29.0.201.jar"') - || release.pack_version != "26.2.0-alpha.231" - || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.231.mrpack" - || prism.versionId != "26.2.0-alpha.231" - || !packwiz.contains('version = "26.2.0-alpha.231"') + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') || !packwiz.contains("hash = \"${indexHash}\"") || requiredJars.any { !packwizIndex.contains(it) } - || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"\nhash = "0c217a1632413e0af12e39f5096fd057d2dceaf6f437ca7044571c3635414d44"') - || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.18.jar"\nhash = "f89076b3d1fa06b17813d350e6ecd53674d19a6c7b5b9f5fc61ed65d6bcb2830"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"\nhash = "233c84a9ba7ffb172618e541ab3635f3b675a858bacf80c4712feb329069c99c"') + || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.19.jar"\nhash = "0891d96adb71c3843028dfe704ab33cac8470712277cef8f9527131f9c02e471"') || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.136.jar"') || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.17.jar"') || !changelog.contains("## `26.2.0-alpha.231`") - || !readme.contains("Red-Stoner **`0.0.0-alpha.18`**") - || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.231`**")) { + || !readme.contains("Red-Stoner **`0.0.0-alpha.19`**") + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**")) { throw new GradleException("The alpha.231 Backroom and trophy-panel release is incomplete") } } } +tasks.register("verifyAlpha232Release") { + group = "verification" + description = "Checks the Sanctuary 26.2.0-alpha.232 Canon screenshot and alpha.231 follow-up release." + inputs.file(file("pack/migrations/26.2.0-alpha.231-camera-screenshots-to-alpha.232.json")) + inputs.file(file("pack/migrations/alpha231-follow-up-cape-terminal-trophy.json")) + inputs.file(file("pack/release.json")) + inputs.file(file("pack/prism/modrinth.index.json")) + inputs.file(file("pack/packwiz/pack.toml")) + inputs.file(file("pack/packwiz/index.toml")) + inputs.file(file("CHANGELOG.md")) + inputs.file(file("README.md")) + inputs.files(["anotherworld", "sanctuary", "redstoner"].collect { + file("${it}/src/main/resources/fabric.mod.json") + }) + inputs.file(file("anotherworld/src/main/java/fr/koka99cab/canon/client/ClientPhotoCapture.java")) + inputs.file(file("anotherworld/src/main/java/fr/koka99cab/canon/client/CanonScreenshotFiles.java")) + inputs.file(file("anotherworld/src/test/java/fr/koka99cab/canon/client/CanonScreenshotFilesSmoke.java")) + inputs.files(["en_us", "fr_fr", "ru_ru"].collect { + file("anotherworld/src/main/resources/assets/canon/lang/${it}.json") + }) + doLast { + def migration = new JsonSlurper().parse(file( + "pack/migrations/26.2.0-alpha.231-camera-screenshots-to-alpha.232.json")) + def followUp = new JsonSlurper().parse(file( + "pack/migrations/alpha231-follow-up-cape-terminal-trophy.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 packwizIndexFile = file("pack/packwiz/index.toml") + def packwizIndex = packwizIndexFile.text + def changelog = file("CHANGELOG.md").text + def readme = file("README.md").text + def capture = file( + "anotherworld/src/main/java/fr/koka99cab/canon/client/ClientPhotoCapture.java").text + def screenshotFiles = file( + "anotherworld/src/main/java/fr/koka99cab/canon/client/CanonScreenshotFiles.java").text + def screenshotSmoke = file( + "anotherworld/src/test/java/fr/koka99cab/canon/client/CanonScreenshotFilesSmoke.java").text + def manifests = ["anotherworld", "sanctuary", "redstoner"].collectEntries { id -> + [(id): new JsonSlurper().parse(file("${id}/src/main/resources/fabric.mod.json"))] + } + def languages = ["en_us", "fr_fr", "ru_ru"].collectEntries { locale -> + [(locale): new JsonSlurper().parse(file( + "anotherworld/src/main/resources/assets/canon/lang/${locale}.json"))] + } + def sourceModules = [ + anotherworld: "0.0.0-alpha.57", + sanctuary: "0.0.0-alpha.137", + redstoner: "0.0.0-alpha.18"] + def targetModules = [ + anotherworld: "0.0.0-alpha.58", + sanctuary: "0.0.0-alpha.138", + redstoner: "0.0.0-alpha.19"] + def workspaceModules = moduleIds.collectEntries { id -> + [(id): project(":${id}").version.toString()] + } + def requiredJars = workspaceModules.collect { id, version -> + "file = \"mods/${id}-${version}.jar\"" + } + def indexHash = MessageDigest.getInstance("SHA-256") + .digest(packwizIndexFile.bytes).encodeHex().toString() + if (rootProject.pack_version != "26.2.0-alpha.232" + || rootProject.anotherworld_version != "0.0.0-alpha.58" + || rootProject.sanctuary_version != "0.0.0-alpha.138" + || rootProject.redstoner_version != "0.0.0-alpha.19" + || migration.schema_version != 1 + || migration.status != "released" + || migration.source?.pack_version != "26.2.0-alpha.231" + || migration.source?.modules != sourceModules + || migration.target?.pack_version != "26.2.0-alpha.232" + || migration.target?.modules != targetModules + || migration.fixed_issues != [146] + || migration.canon_photo_screenshots?.directory != "screenshots" + || migration.canon_photo_screenshots?.viewfinder_crop_only != true + || migration.canon_photo_screenshots?.film_filter_preserved != true + || migration.canon_photo_screenshots?.full_crop_resolution != true + || migration.canon_photo_screenshots?.asynchronous_png_write != true + || migration.canon_photo_screenshots?.collision_safe_names != true + || migration.alpha231_follow_up?.migration != "alpha231-follow-up-cape-terminal-trophy.json" + || migration.alpha231_follow_up?.banner_cape_fixed != true + || migration.alpha231_follow_up?.terminal_inventory_key_fixed != true + || migration.alpha231_follow_up?.trophy_panel_visible_lines != 8 + || migration.alpha231_follow_up?.trophy_panel_entries_per_view != 7 + || migration.alpha231_follow_up?.spawn_egg_kill_ranking != true + || migration.compatibility?.existing_saves_supported != true + || migration.compatibility?.new_world_required != false + || migration.compatibility?.save_reset_required != false + || migration.compatibility?.persistent_data_formats_changed != false + || migration.compatibility?.network_protocols_changed != true + || migration.compatibility?.anotherworld_data_version != 5 + || migration.compatibility?.anotherworld_network_protocol != 2 + || migration.compatibility?.sanctuary_data_version != 15 + || migration.compatibility?.sanctuary_network_protocol != 24 + || migration.compatibility?.redstoner_data_version != 4 + || migration.compatibility?.redstoner_source_network_protocol != 7 + || migration.compatibility?.redstoner_target_network_protocol != 8 + || migration.compatibility?.client_server_update_required != true + || migration.distribution?.pack_release_updated != true + || migration.distribution?.packwiz_index_refreshed != true + || migration.distribution?.prism_modrinth_index_updated != true + || migration.distribution?.shared_client_server_mrpack != true + || followUp.status != "released" + || followUp.released_in != "26.2.0-alpha.232" + || manifests.anotherworld.custom?.sanctuary26?.data_version != 5 + || manifests.anotherworld.custom?.sanctuary26?.network_protocol != 2 + || manifests.sanctuary.custom?.sanctuary26?.data_version != 15 + || manifests.sanctuary.custom?.sanctuary26?.network_protocol != 24 + || manifests.redstoner.custom?.sanctuary26?.data_version != 4 + || manifests.redstoner.custom?.sanctuary26?.network_protocol != 8 + || !capture.contains("CanonScreenshotFiles.reserve(") + || !capture.contains("screenshot.copyRect(exported") + || !capture.contains("applyStyle(image, style)") + || !capture.contains("Util.ioPool().execute(") + || !screenshotFiles.contains('SCREENSHOT_DIRECTORY = "screenshots"') + || !screenshotFiles.contains('Files.createFile(candidate)') + || !screenshotSmoke.contains('collision-safe screenshot') + || languages.any { locale, lang -> + !lang.containsKey("message.canon.camera.screenshot_saved") + || !lang.containsKey("message.canon.camera.screenshot_failed") + } + || release.pack_version != "26.2.0-alpha.232" + || release.modrinth?.primary_file != "sanctuary-26.2.0-alpha.232.mrpack" + || prism.versionId != "26.2.0-alpha.232" + || !packwiz.contains('version = "26.2.0-alpha.232"') + || !packwiz.contains("hash = \"${indexHash}\"") + || requiredJars.any { !packwizIndex.contains(it) } + || !packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.58.jar"\nhash = "c28aaeedc1fb6c8fb8613ba0f12af9a1327edc2ef0eeb20cb73f685c52a29034"') + || !packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.138.jar"\nhash = "233c84a9ba7ffb172618e541ab3635f3b675a858bacf80c4712feb329069c99c"') + || !packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.19.jar"\nhash = "0891d96adb71c3843028dfe704ab33cac8470712277cef8f9527131f9c02e471"') + || packwizIndex.contains('file = "mods/anotherworld-0.0.0-alpha.57.jar"') + || packwizIndex.contains('file = "mods/sanctuary-0.0.0-alpha.137.jar"') + || packwizIndex.contains('file = "mods/redstoner-0.0.0-alpha.18.jar"') + || !changelog.contains("## `26.2.0-alpha.232`") + || !changelog.contains("ticket #146") + || !readme.contains("Version courante du pack distribué : **`26.2.0-alpha.232`**") + || !readme.contains("Another World **`0.0.0-alpha.58`**")) { + throw new GradleException("The alpha.232 Canon screenshot and alpha.231 follow-up release is incomplete") + } + } +} + tasks.named("verifyWorkspace") { dependsOn tasks.named("verifyAlpha213Release") dependsOn tasks.named("verifyAlpha214Release") @@ -8432,6 +8567,7 @@ tasks.named("verifyWorkspace") { dependsOn tasks.named("verifyAlpha229Release") dependsOn tasks.named("verifyAlpha230Release") dependsOn tasks.named("verifyAlpha231Release") + dependsOn tasks.named("verifyAlpha232Release") } tasks.named("check") { diff --git a/gradle.properties b/gradle.properties index 11c50e0..d68c2b0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ ambiance_version=0.0.0-alpha.22 ambiance_lifecycle=active redstoner_version=0.0.0-alpha.19 redstoner_lifecycle=active -anotherworld_version=0.0.0-alpha.57 +anotherworld_version=0.0.0-alpha.58 anotherworld_lifecycle=active itsalive_version=0.0.0-alpha.38 itsalive_lifecycle=active @@ -30,5 +30,5 @@ onlyfun_version=0.0.0-alpha.27 onlyfun_lifecycle=active sanctuary_version=0.0.0-alpha.138 sanctuary_lifecycle=active -pack_version=26.2.0-alpha.231 +pack_version=26.2.0-alpha.232 maven_group=fr.koka99cab.sanctuary26 diff --git a/pack/migrations/26.2.0-alpha.231-camera-screenshots-to-alpha.232.json b/pack/migrations/26.2.0-alpha.231-camera-screenshots-to-alpha.232.json new file mode 100644 index 0000000..592da98 --- /dev/null +++ b/pack/migrations/26.2.0-alpha.231-camera-screenshots-to-alpha.232.json @@ -0,0 +1,58 @@ +{ + "schema_version": 1, + "status": "released", + "source": { + "pack_version": "26.2.0-alpha.231", + "modules": { + "anotherworld": "0.0.0-alpha.57", + "sanctuary": "0.0.0-alpha.137", + "redstoner": "0.0.0-alpha.18" + } + }, + "target": { + "pack_version": "26.2.0-alpha.232", + "modules": { + "anotherworld": "0.0.0-alpha.58", + "sanctuary": "0.0.0-alpha.138", + "redstoner": "0.0.0-alpha.19" + } + }, + "fixed_issues": [146], + "canon_photo_screenshots": { + "directory": "screenshots", + "viewfinder_crop_only": true, + "film_filter_preserved": true, + "full_crop_resolution": true, + "asynchronous_png_write": true, + "collision_safe_names": true + }, + "alpha231_follow_up": { + "migration": "alpha231-follow-up-cape-terminal-trophy.json", + "banner_cape_fixed": true, + "terminal_inventory_key_fixed": true, + "trophy_panel_visible_lines": 8, + "trophy_panel_entries_per_view": 7, + "spawn_egg_kill_ranking": true + }, + "compatibility": { + "existing_saves_supported": true, + "new_world_required": false, + "save_reset_required": false, + "persistent_data_formats_changed": false, + "network_protocols_changed": true, + "anotherworld_data_version": 5, + "anotherworld_network_protocol": 2, + "sanctuary_data_version": 15, + "sanctuary_network_protocol": 24, + "redstoner_data_version": 4, + "redstoner_source_network_protocol": 7, + "redstoner_target_network_protocol": 8, + "client_server_update_required": true + }, + "distribution": { + "pack_release_updated": true, + "packwiz_index_refreshed": true, + "prism_modrinth_index_updated": true, + "shared_client_server_mrpack": true + } +} diff --git a/pack/migrations/alpha231-follow-up-cape-terminal-trophy.json b/pack/migrations/alpha231-follow-up-cape-terminal-trophy.json index 0671324..de80a0d 100644 --- a/pack/migrations/alpha231-follow-up-cape-terminal-trophy.json +++ b/pack/migrations/alpha231-follow-up-cape-terminal-trophy.json @@ -1,6 +1,7 @@ { "schema_version": 1, - "status": "unreleased", + "status": "released", + "released_in": "26.2.0-alpha.232", "modules": { "sanctuary": { "source_module_version": "0.0.0-alpha.137", diff --git a/pack/packwiz/index.toml b/pack/packwiz/index.toml index c66c1e1..49e4210 100644 --- a/pack/packwiz/index.toml +++ b/pack/packwiz/index.toml @@ -14,15 +14,15 @@ hash = "41f4f4c88c71d0a23446d5014f7407d55ad477441847099cad24492b032335a0" [[files]] file = "mods/ambiance-0.0.0-alpha.22.jar" -hash = "e06efa96be6b8b528b1ff1e4cc611c369bc5cf628f48821b3848c046872116ea" +hash = "0e25a85502da59ff111485d47223a6e653db4466cf59f84e7abf8c6b1405aa6a" [[files]] -file = "mods/anotherworld-0.0.0-alpha.57.jar" -hash = "7a0fd7805cec95229588ecaa442c58dde5d03caf8a64d342290c3bcf12aa4bce" +file = "mods/anotherworld-0.0.0-alpha.58.jar" +hash = "c28aaeedc1fb6c8fb8613ba0f12af9a1327edc2ef0eeb20cb73f685c52a29034" [[files]] file = "mods/events-0.0.0-alpha.0.jar" -hash = "6431a33158d74c4ad0205dcc1389c1c2cdbe4f38ee7277a9197cbb160586fbc5" +hash = "4dd9eeccc4f9d2ab2804339320a1a2a24174706cc8a4ac2853b16765b8b2a050" [[files]] file = "mods/fabric-api.pw.toml" @@ -31,7 +31,7 @@ metafile = true [[files]] file = "mods/iliketomoveit-0.0.0-alpha.18.jar" -hash = "bc8c79a37bff199d4bcd9d3ae15ae066e5c892284f3e54b08b851389f03b7a7a" +hash = "a445606ebd5f1a35efdc205de87e4b6b83720d31b06787ae67cc21bc19df9e26" [[files]] file = "mods/iris.pw.toml" @@ -40,7 +40,7 @@ metafile = true [[files]] file = "mods/itsalive-0.0.0-alpha.38.jar" -hash = "7938c7ccca31b1aa68e741ab0e0bdfd5cba965fc82dfcadeee6bdf34fc7d4878" +hash = "d4605837e99bcbf86bbb46a1a71931a39b8e3087cdb0bee648b61996360b942e" [[files]] file = "mods/jei.pw.toml" @@ -49,23 +49,23 @@ metafile = true [[files]] file = "mods/masterkey-0.0.0-alpha.9.jar" -hash = "778a9c841fb3bdcba1284f9a779c15f6ed5a19156e4e99f342a6c4e5680422f5" +hash = "d36b860a0bae9a4e52d2093146a1aeca8e7882b72462bd2cb8575fff262ebf23" [[files]] file = "mods/onlyfun-0.0.0-alpha.27.jar" -hash = "1a4869438543d43f841ee414dd72ab6d8b03c603b10d0b087ef76d070e09186d" +hash = "a77aafb200faaf1162f6f5c0f047bfb5672702ca9d32d0e16e176f3f2455e24c" [[files]] file = "mods/ouch-0.0.0-alpha.11.jar" -hash = "5003f4be2d60672aedece2061c11d5e79478d45c271d19dd6639150dcff88ee9" +hash = "d234613542669e2eddf6e393d3451b2a2786f18ae5a01a61940611199f5e16ef" [[files]] -file = "mods/redstoner-0.0.0-alpha.18.jar" -hash = "f89076b3d1fa06b17813d350e6ecd53674d19a6c7b5b9f5fc61ed65d6bcb2830" +file = "mods/redstoner-0.0.0-alpha.19.jar" +hash = "0891d96adb71c3843028dfe704ab33cac8470712277cef8f9527131f9c02e471" [[files]] -file = "mods/sanctuary-0.0.0-alpha.137.jar" -hash = "0c217a1632413e0af12e39f5096fd057d2dceaf6f437ca7044571c3635414d44" +file = "mods/sanctuary-0.0.0-alpha.138.jar" +hash = "233c84a9ba7ffb172618e541ab3635f3b675a858bacf80c4712feb329069c99c" [[files]] file = "mods/simple-voice-chat.pw.toml" diff --git a/pack/packwiz/pack.toml b/pack/packwiz/pack.toml index 81b6fb4..5324fbd 100644 --- a/pack/packwiz/pack.toml +++ b/pack/packwiz/pack.toml @@ -1,12 +1,12 @@ name = "Sanctuary 26.2" author = "KOKA99CAB" -version = "26.2.0-alpha.231" +version = "26.2.0-alpha.232" pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "8187dc94434a311a501171c456051c0d7de4e43a7f68956ef5b3a25ab188a473" +hash = "0a35e9686a1c272ed05694b8509273334bf7770951349465c0280428b2c06338" [versions] fabric = "0.19.3" diff --git a/pack/prism/modrinth.index.json b/pack/prism/modrinth.index.json index f8cbeca..5fc48ec 100644 --- a/pack/prism/modrinth.index.json +++ b/pack/prism/modrinth.index.json @@ -3,7 +3,7 @@ "game": "minecraft", "name": "Sanctuary 26.2", "summary": "Sanctuary 26.2 — progression, exploration, worldgen and multiplayer systems by KOKA99CAB.", - "versionId": "26.2.0-alpha.231", + "versionId": "26.2.0-alpha.232", "files": [ { "path": "mods/fabric-api-0.159.0+26.2.jar", diff --git a/pack/release.json b/pack/release.json index 601ac98..d23e434 100644 --- a/pack/release.json +++ b/pack/release.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "pack_version": "26.2.0-alpha.231", + "pack_version": "26.2.0-alpha.232", "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.231.mrpack", + "primary_file": "sanctuary-26.2.0-alpha.232.mrpack", "shared_client_server_pack": true, "update_owner": "packwiz-installer", "check_on_launch": true, -- 2.54.0