diff --git a/sanctuary/build.gradle b/sanctuary/build.gradle index f5056b2..e78b420 100644 --- a/sanctuary/build.gradle +++ b/sanctuary/build.gradle @@ -244,7 +244,9 @@ tasks.register("verifyBlackMarket") { || !quests.contains("SanctuaryRegistries.questBoardTier") || quests.contains("activationTier(") || quests.contains("QuestBoardTier.ACTIVATION_COST") - || !quests.contains("addTreasury(claim.depositCurrency(), claim.depositAmount())")) { + || !quests.contains("addTreasury(claim.depositCurrency(), claim.depositAmount())") + || !quests.contains("shouldRewriteSign") + || !quests.contains("syncLoadedSigns")) { throw new GradleException("The physical Black Market escrow/delivery contract is incomplete") } } diff --git a/sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardGenerator.java b/sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardGenerator.java index 3090e05..37d557f 100644 --- a/sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardGenerator.java +++ b/sanctuary/src/main/java/fr/koka99cab/sanctuary26/sanctuary/shop/QuestBoardGenerator.java @@ -75,9 +75,12 @@ final class QuestBoardGenerator { private QuestBoardGenerator() {} static QuestBoardData.Contract generate(MinecraftServer server, String boardId, QuestBoardTier tier, long now) { - long day = Math.floorDiv(now, 86_400_000L); - long seed = boardId.hashCode() * 0x9E3779B97F4A7C15L ^ day * 0xD1B54A32D192ED03L ^ tier.ordinal(); - RandomSource random = RandomSource.create(seed); + return generate(server, boardId, tier, now, Math.floorDiv(now, 86_400_000L)); + } + + static QuestBoardData.Contract generate(MinecraftServer server, String boardId, QuestBoardTier tier, + long now, long salt) { + RandomSource random = RandomSource.create(contractSeed(boardId, tier, salt)); List