diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-03-02 02:00:00 +0100 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-03-02 02:00:00 +0100 |
commit | 8de53239f61c0f424dab6cf2ae83f45feb4d232b (patch) | |
tree | 61578c327b7756b32cfd8f4e65c11ff307ee4fae /src/main/java/at | |
parent | 4bce581e2783726f6cc869dec5d7d6d4974e59a4 (diff) | |
download | skyhanni-8de53239f61c0f424dab6cf2ae83f45feb4d232b.tar.gz skyhanni-8de53239f61c0f424dab6cf2ae83f45feb4d232b.tar.bz2 skyhanni-8de53239f61c0f424dab6cf2ae83f45feb4d232b.zip |
bingo card small reworks for current bingo event, made craft minion helper feature bingo only.
Diffstat (limited to 'src/main/java/at')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java | 2 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/Features.java | 2 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java | 30 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/features/Minions.java | 16 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/bingo/BingoCardDisplay.kt | 34 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/bingo/BingoNextStepHelper.kt | 39 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/bingo/MinionCraftHelper.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/minion/MinionCraftHelper.kt) | 12 |
7 files changed, 86 insertions, 49 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java index 9392bb7a1..9502b300b 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.features.bazaar.*; import at.hannibal2.skyhanni.features.bingo.BingoCardDisplay; import at.hannibal2.skyhanni.features.bingo.BingoNextStepHelper; import at.hannibal2.skyhanni.features.bingo.CompactBingoChat; +import at.hannibal2.skyhanni.features.bingo.MinionCraftHelper; import at.hannibal2.skyhanni.features.chat.ChatFilter; import at.hannibal2.skyhanni.features.chat.PlayerDeathMessages; import at.hannibal2.skyhanni.features.chat.playerchat.PlayerChatFilter; @@ -27,7 +28,6 @@ import at.hannibal2.skyhanni.features.garden.*; import at.hannibal2.skyhanni.features.inventory.*; import at.hannibal2.skyhanni.features.itemabilities.FireVeilWandParticles; import at.hannibal2.skyhanni.features.itemabilities.abilitycooldown.ItemAbilityCooldown; -import at.hannibal2.skyhanni.features.minion.MinionCraftHelper; import at.hannibal2.skyhanni.features.minion.MinionFeatures; import at.hannibal2.skyhanni.features.misc.*; import at.hannibal2.skyhanni.features.misc.tiarelay.TiaRelayHelper; diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java index 489a52f7c..abed49281 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/Features.java +++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java @@ -128,7 +128,7 @@ public class Features extends Config { } if (runnableId.equals("minionCraftHelper")) { - editOverlay(activeConfigCategory, 200, 16, minions.minionCraftHelperPos); + editOverlay(activeConfigCategory, 200, 16, bingo.minionCraftHelperPos); return; } diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java index aa202849b..4b4610d75 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java @@ -1,9 +1,7 @@ package at.hannibal2.skyhanni.config.features; import at.hannibal2.skyhanni.config.core.config.Position; -import at.hannibal2.skyhanni.config.core.config.annotations.ConfigEditorBoolean; -import at.hannibal2.skyhanni.config.core.config.annotations.ConfigEditorButton; -import at.hannibal2.skyhanni.config.core.config.annotations.ConfigOption; +import at.hannibal2.skyhanni.config.core.config.annotations.*; import com.google.gson.annotations.Expose; public class Bingo { @@ -15,12 +13,34 @@ public class Bingo { public boolean compactChatMessages = true; @Expose - @ConfigOption(name = "Bingo Card", desc = "Show the bingo card.") + @ConfigOption(name = "Bingo Card View", desc = "Simply showing the bingo card. Toggle by sneaking with skyblock menu in hand.") @ConfigEditorBoolean - public boolean bingoCard = false; + public boolean cardDisplay = true; + + @Expose + @ConfigOption(name = "Bingo Steps", desc = "Show help with the next step in bingo instead of the bingo card. " + + "§cThis feature is in early development. Expect bugs and missing goals.") + @ConfigEditorBoolean + public boolean stepHelper = false; @Expose @ConfigOption(name = "Bingo Card Position", desc = "") @ConfigEditorButton(runnableId = "bingoCard", buttonText = "Edit") public Position bingoCardPos = new Position(10, 10, false, true); + + @ConfigOption(name = "Minion Craft Helper", desc = "") + @ConfigEditorAccordion(id = 0) + public boolean minionCraftHelper = false; + + @Expose + @ConfigOption(name = "Minion Craft Helper", desc = "Show how many more items you need to upgrade the minion in your inventory. Especially useful for bingo.") + @ConfigEditorBoolean + @ConfigAccordionId(id = 0) + public boolean minionCraftHelperEnabled = true; + + @Expose + @ConfigOption(name = "Minion Craft Helper Position", desc = "") + @ConfigEditorButton(runnableId = "minionCraftHelper", buttonText = "Edit") + @ConfigAccordionId(id = 0) + public Position minionCraftHelperPos = new Position(10, 10, false, true); } diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java b/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java index 8d2963ea8..d29eb45bd 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/Minions.java @@ -82,22 +82,6 @@ public class Minions { @ConfigAccordionId(id = 2) public Position hopperProfitPos = new Position(10, 10, false, true); - @ConfigOption(name = "Minion Craft Helper", desc = "") - @ConfigEditorAccordion(id = 3) - public boolean minionCraftHelper = false; - - @Expose - @ConfigOption(name = "Minion Craft Helper", desc = "Show how many more items you need to upgrade the minion in your inventory. Especially useful for bingo.") - @ConfigEditorBoolean - @ConfigAccordionId(id = 3) - public boolean minionCraftHelperEnabled = false; - - @Expose - @ConfigOption(name = "Minion Craft Helper Position", desc = "") - @ConfigEditorButton(runnableId = "minionCraftHelper", buttonText = "Edit") - @ConfigAccordionId(id = 3) - public Position minionCraftHelperPos = new Position(10, 10, false, true); - @Expose @ConfigOption(name = "Hide Mob Nametag", desc = "Hiding the nametag of mobs close to minions") @ConfigEditorBoolean diff --git a/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoCardDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoCardDisplay.kt index f1c87bf15..824fd7942 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoCardDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoCardDisplay.kt @@ -27,6 +27,11 @@ class BingoCardDisplay { private var tick = 0 private val display = mutableListOf<String>() + private val config get() = SkyHanniMod.feature.bingo + + init { + update() + } companion object { val personalGoals = mutableListOf<PersonalGoal>() @@ -48,6 +53,7 @@ class BingoCardDisplay { @SubscribeEvent fun onTick(event: TickEvent.ClientTickEvent) { if (!LorenzUtils.isBingoProfile) return + if (!config.cardDisplay) return if (event.phase != TickEvent.Phase.START) return tick++ @@ -117,13 +123,17 @@ class BingoCardDisplay { display.clear() display.add("Community Goals") - communityGoals.mapTo(display) { " " + it.description + if (it.done) " §aDONE" else "" } - - val todo = personalGoals.filter { !it.done } - val done = MAX_PERSONAL_GOALS - todo.size - display.add(" ") - display.add("Personal Goals: ($done/$MAX_PERSONAL_GOALS done)") - todo.mapTo(display) { " " + it.description } + if (communityGoals.isEmpty()) { + display.add("§7Open the §e/bingo §7card.") + } else { + communityGoals.mapTo(display) { " " + it.description + if (it.done) " §aDONE" else "" } + + val todo = personalGoals.filter { !it.done } + val done = MAX_PERSONAL_GOALS - todo.size + display.add(" ") + display.add("Personal Goals: ($done/$MAX_PERSONAL_GOALS done)") + todo.mapTo(display) { " " + it.description } + } } private var lastSneak = false @@ -132,7 +142,7 @@ class BingoCardDisplay { @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent.GameOverlayRenderEvent) { if (!LorenzUtils.isBingoProfile) return - if (!SkyHanniMod.feature.bingo.bingoCard) return + if (!config.cardDisplay) return val stack = Minecraft.getMinecraft().thePlayer.heldItem //TODO into ItemUtils or InventoryUtils if (ItemUtils.isSkyBlockMenuItem(stack)) { @@ -147,18 +157,22 @@ class BingoCardDisplay { } } } + if (!config.stepHelper && displayMode == 1) { + displayMode = 0 + } if (displayMode == 0) { if (Minecraft.getMinecraft().currentScreen !is GuiChat) { - SkyHanniMod.feature.bingo.bingoCardPos.renderStrings(display) + config.bingoCardPos.renderStrings(display) } } else if (displayMode == 1) { - SkyHanniMod.feature.bingo.bingoCardPos.renderStrings(BingoNextStepHelper.currentHelp) + config.bingoCardPos.renderStrings(BingoNextStepHelper.currentHelp) } } @SubscribeEvent fun onChat(event: LorenzChatEvent) { if (!LorenzUtils.isBingoProfile) return + if (!config.cardDisplay) return val message = event.message //§6§lBINGO GOAL COMPLETE! §r§eRaw Salmon Collector diff --git a/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoNextStepHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoNextStepHelper.kt index b0ec44f02..91b5b9bd6 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoNextStepHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bingo/BingoNextStepHelper.kt @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.features.bingo +import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.data.IslandType import at.hannibal2.skyhanni.data.SkillExperience import at.hannibal2.skyhanni.events.LorenzChatEvent @@ -20,6 +21,8 @@ class BingoNextStepHelper { private val itemIslandRequired = mutableMapOf<String, IslandVisitStep>() private val itemRequired = mutableMapOf<String, NextStep>() private val islands = mutableMapOf<IslandType, IslandVisitStep>() + private val collectionPattern = Pattern.compile("Reach ([0-9]+(?:,\\d+)*) (.*) Collection\\.") + private val crystalPattern = Pattern.compile("Obtain a (\\w+) Crystal in the Crystal Hollows\\.") companion object { private val finalSteps = mutableListOf<NextStep>() @@ -39,7 +42,12 @@ class BingoNextStepHelper { } currentHelp.clear() - currentHelp.add("Bingo Helper:") + currentHelp.add("Bingo Step Helper:") + + if (currentSteps.isEmpty()) { + currentHelp.add("§7Open the §e/bingo §7card.") + } + for (currentStep in currentSteps) { val text = getName(currentStep) currentHelp.add(" §7$text") @@ -92,6 +100,7 @@ class BingoNextStepHelper { @SubscribeEvent fun onTick(event: TickEvent.ClientTickEvent) { if (!LorenzUtils.isBingoProfile) return + if (!SkyHanniMod.feature.bingo.cardDisplay) return if (event.phase != TickEvent.Phase.START) return tick++ @@ -106,7 +115,8 @@ class BingoNextStepHelper { @SubscribeEvent fun onChat(event: LorenzChatEvent) { - if (!LorenzUtils.inSkyBlock) return + if (!LorenzUtils.isBingoProfile) return + if (!SkyHanniMod.feature.bingo.cardDisplay) return //TODO add thys message // if (event.message == "thys message") { @@ -148,7 +158,9 @@ class BingoNextStepHelper { done = true updateResult() if (!silent) { - LorenzUtils.chat("§e[SkyHanni] A bingo goal step is done! ($displayName)") + if (SkyHanniMod.feature.bingo.stepHelper) { + LorenzUtils.chat("§e[SkyHanni] A bingo goal step is done! ($displayName)") + } } } @@ -177,11 +189,10 @@ class BingoNextStepHelper { for (goal in personalGoals) { val description = goal.description.removeColor() - val pattern = Pattern.compile("Reach ([0-9]+(?:,\\d+)*) (.*) Collection\\.") - val matcher = pattern.matcher(description) - if (matcher.matches()) { - val amount = matcher.group(1).replace(",", "").toInt() - val name = matcher.group(2) + val collectionMatcher = collectionPattern.matcher(description) + if (collectionMatcher.matches()) { + val amount = collectionMatcher.group(1).replace(",", "").toInt() + val name = collectionMatcher.group(2) val collectionStep = CollectionStep(name, amount).apply { finalSteps.add(this) } createItemIslandRequirement(name, collectionStep) @@ -201,7 +212,12 @@ class BingoNextStepHelper { "Jacob's Ticket", 32, mapOf("Jacob's Ticket" to 1) - ).apply { this requires IslandType.HUB.getStep() }.addItemRequirements() + ).apply { this requires IslandType.GARDEN.getStep() }.addItemRequirements() + } + val crystalMatcher = crystalPattern.matcher(description) + if (crystalMatcher.matches()) { + val crystal = crystalMatcher.group(1) + ChatMessageStep("Obtain a $crystal Crystal").apply { finalSteps.add(this) } requires IslandType.CRYSTAL_HOLLOWS.getStep() } println("No help for goal: '$description'") @@ -269,11 +285,14 @@ class BingoNextStepHelper { IslandType.DWARVEN_MINES.getStep() requires SkillLevelStep("Mining", 12) IslandType.CRYSTAL_HOLLOWS.getStep() requires IslandType.DWARVEN_MINES.getStep() + // TODO add skyblock level requirement +// IslandType.GARDEN.getStep() requires SkyBlockLevelStep(6) + IslandType.GARDEN.getStep() requires IslandType.HUB.getStep() + val farmingContest = ChatMessageStep("Farming Contest") farmingContest requires SkillLevelStep("Farming", 10) itemRequired["Jacob's Ticket"] = farmingContest - // enchantedCharcoal(7) // compactor(7) } diff --git a/src/main/java/at/hannibal2/skyhanni/features/minion/MinionCraftHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/bingo/MinionCraftHelper.kt index 52b38e742..c0ae5d6fa 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/minion/MinionCraftHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bingo/MinionCraftHelper.kt @@ -1,4 +1,4 @@ -package at.hannibal2.skyhanni.features.minion +package at.hannibal2.skyhanni.features.bingo import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.data.SendTitleHelper @@ -44,8 +44,8 @@ class MinionCraftHelper { @SubscribeEvent fun onTick(event: TickEvent.ClientTickEvent) { if (event.phase != TickEvent.Phase.START) return - if (!LorenzUtils.inSkyBlock) return - if (!SkyHanniMod.feature.minions.minionCraftHelperEnabled) return + if (!LorenzUtils.isBingoProfile) return + if (!SkyHanniMod.feature.bingo.minionCraftHelperEnabled) return tick++ @@ -207,10 +207,10 @@ class MinionCraftHelper { @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent.GameOverlayRenderEvent) { - if (!LorenzUtils.inSkyBlock) return - if (!SkyHanniMod.feature.minions.minionCraftHelperEnabled) return + if (!LorenzUtils.isBingoProfile) return + if (!SkyHanniMod.feature.bingo.minionCraftHelperEnabled) return - SkyHanniMod.feature.minions.minionCraftHelperPos.renderStrings(display, center = true) + SkyHanniMod.feature.bingo.minionCraftHelperPos.renderStrings(display, center = true) } private fun getRecipes(minionId: String): List<NeuRecipe> { |