aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2024-04-19 10:08:32 -0400
committerGitHub <noreply@github.com>2024-04-19 10:08:32 -0400
commitf6e59a083cd2db9c10293b5b17b79aecb5d7f9e6 (patch)
tree354fe0831f8d691e70e514ebb25feab1a41bc316 /src/main
parent226df55005fe3d227fbe52b39c2a60f32fef4b2a (diff)
parent17c0a19b34d353d8d28e21dcb99d7ff98fc0ee8e (diff)
downloadSkyblocker-f6e59a083cd2db9c10293b5b17b79aecb5d7f9e6.tar.gz
Skyblocker-f6e59a083cd2db9c10293b5b17b79aecb5d7f9e6.tar.bz2
Skyblocker-f6e59a083cd2db9c10293b5b17b79aecb5d7f9e6.zip
Merge pull request #640 from Fluboxer/dungeon-crypts-message
Dungeon Crypts Message
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java24
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java11
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json6
4 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 6fddd3d0..e301e8e2 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -865,6 +865,15 @@ public class SkyblockerConfig {
public String dungeonScore300Message = "300 Score Reached!";
@SerialEntry
+ public boolean enableDungeonCryptsMessage = true;
+
+ @SerialEntry
+ public int dungeonCryptsMessageThreshold = 250;
+
+ @SerialEntry
+ public String dungeonCryptsMessage = "We only have [crypts] crypts out of 5, we need more!";
+
+ @SerialEntry
public boolean enableScoreHUD = true;
@SerialEntry
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..06a904ba 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
@@ -231,6 +231,30 @@ public class DungeonsCategory {
.controller(StringControllerBuilder::create)
.build())
.option(Option.<Boolean>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.<Integer>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold"))
+ .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold.@Tooltip")))
+ .binding(defaults.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold,
+ () -> config.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold,
+ newValue -> config.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold = newValue)
+ .controller(IntegerFieldControllerBuilder::create)
+ .build())
+ .option(Option.<String>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.<Boolean>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")))
.binding(defaults.locations.dungeons.dungeonScore.enableScoreHUD,
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..9d610ccd 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,15 @@ public class DungeonScore {
}
sent270 = true;
}
+
+ int crypts = getCrypts();
+ if (!sentCrypts && score >= SCORE_CONFIG.dungeonCryptsMessageThreshold && crypts < 5) {
+ if (SCORE_CONFIG.enableDungeonCryptsMessage) {
+ MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonCryptsMessage.replaceAll("\\[crypts]", String.valueOf(crypts)));
+ }
+ 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 +142,7 @@ public class DungeonScore {
currentFloor = "";
isCurrentFloorEntrance = false;
floorHasMimics = false;
+ sentCrypts = false;
sent270 = false;
sent300 = false;
mimicKilled = false;
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 200bbcae..024996f8 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -271,6 +271,12 @@
"text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonScoreSound.@Tooltip": "Plays a sound when reaching %d score in dungeons.",
"text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonScoreMessage": "Dungeon Score %d Message",
"text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonScoreMessage.@Tooltip": "Message which will be sent in the chat when reaching %d score in dungeons. The string \"[score]\" will be replaced with the dungeon score (%d).",
+ "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonCryptsMessage": "Enable Dungeon Crypts Message",
+ "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonCryptsMessage.@Tooltip": "After reaching threshold sends message in chat if less than 5 crypts found.",
+ "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold": "Dungeon Crypts Message Threshold",
+ "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessageThreshold.@Tooltip": "Default 270 is intended for S+ runs when you enter at 300+ score - which is usually F5-F7 and M5-M7. \nIf you are running S runs (enter at 270 score) then you should consider lowering this to 250 or less, otherwise it will be useless",
+ "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessage": "Dungeon Crypts Message",
+ "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.dungeonCryptsMessage.@Tooltip": "Message which will be sent in the chat when reaching threshold score before getting 5+ crypts. The string \"[crypts]\" will be replaced with the amount of crypts.",
"text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableScoreHUD": "Enable Score HUD",
"text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableScoreHUD.@Tooltip": "Displays the dungeon score in the HUD.",
"text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableScoreHUD.deathMessagesNote": "\n\n\nNote: This only works correctly if death messages are enabled in your skyblock settings. If you want to hide death messages, use this mod's Hide Player Death Messages setting instead to allow further processing of death messages.",