From 4ce2db51c718db7be990d0686b957a74fde0d1d6 Mon Sep 17 00:00:00 2001 From: Fluboxer Date: Sun, 7 Apr 2024 16:00:16 +0300 Subject: crypts message --- .../hysky/skyblocker/config/SkyblockerConfig.java | 9 +++++++++ .../config/categories/DungeonsCategory.java | 23 ++++++++++++++++++++++ .../skyblocker/skyblock/dungeon/DungeonScore.java | 10 ++++++++++ 3 files changed, 42 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index 06ac748a..ad05090d 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -851,6 +851,15 @@ public class SkyblockerConfig { @SerialEntry public String dungeonScore300Message = "300 Score Reached!"; + @SerialEntry + public boolean enableDungeonCryptsMessage = true; + + @SerialEntry + public int dungeonCryptsMessageThreshold = 270; + + @SerialEntry + public String dungeonCryptsMessage = "We only have [crypts] crypts out of 5, we need more!"; + @SerialEntry public boolean enableScoreHUD = true; diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java index 9d6e1beb..295d3738 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java @@ -230,6 +230,29 @@ public class DungeonsCategory { newValue -> config.locations.dungeons.dungeonScore.dungeonScore300Message = newValue) .controller(StringControllerBuilder::create) .build()) + .option(Option.createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonCryptsMessage")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonCryptsMessage.@Tooltip"))) + .binding(defaults.locations.dungeons.dungeonScore.enableDungeonCryptsMessage, + () -> config.locations.dungeons.dungeonScore.enableDungeonCryptsMessage, + newValue -> config.locations.dungeons.dungeonScore.enableDungeonCryptsMessage = newValue) + .controller(ConfigUtils::createBooleanController) + .build()) + .option(Option.createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold")) + .binding(defaults.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold, + () -> config.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold, + newValue -> config.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold = newValue) + .controller(IntegerFieldControllerBuilder::create) + .build()) + .option(Option.createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessage")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessage.@Tooltip"))) + .binding(defaults.locations.dungeons.dungeonScore.dungeonCryptsMessage, + () -> config.locations.dungeons.dungeonScore.dungeonCryptsMessage, + newValue -> config.locations.dungeons.dungeonScore.dungeonCryptsMessage = newValue) + .controller(StringControllerBuilder::create) + .build()) .option(Option.createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableScoreHUD")) .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableScoreHUD.@Tooltip"), Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableScoreHUD.deathMessagesNote"))) diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java index 10605d8b..1be0c0cc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java @@ -56,6 +56,7 @@ public class DungeonScore { private static String currentFloor; private static boolean isCurrentFloorEntrance; private static boolean floorHasMimics; + private static boolean sentCrypts; private static boolean sent270; private static boolean sent300; private static boolean mimicKilled; @@ -112,6 +113,14 @@ public class DungeonScore { } sent270 = true; } + + if (!sentCrypts && score >= SCORE_CONFIG.dungeonCryptsMessageThreshold && (5 > getCrypts())) { + if (SCORE_CONFIG.enableDungeonCryptsMessage) { + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonCryptsMessage.replaceAll("\\[crypts]", String.valueOf(getCrypts()))); + } + sentCrypts = true; + } + if (!sent300 && score >= 300) { if (SCORE_CONFIG.enableDungeonScore300Message) { MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonScore300Message.replaceAll("\\[score]", "300")); @@ -132,6 +141,7 @@ public class DungeonScore { currentFloor = ""; isCurrentFloorEntrance = false; floorHasMimics = false; + sentCrypts = false; sent270 = false; sent300 = false; mimicKilled = false; -- cgit