aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-03-02 02:00:00 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-03-02 02:00:00 +0100
commit8de53239f61c0f424dab6cf2ae83f45feb4d232b (patch)
tree61578c327b7756b32cfd8f4e65c11ff307ee4fae /src/main/java/at
parent4bce581e2783726f6cc869dec5d7d6d4974e59a4 (diff)
downloadskyhanni-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.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Features.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java30
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Minions.java16
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bingo/BingoCardDisplay.kt34
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bingo/BingoNextStepHelper.kt39
-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> {