aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
authorThunderblade73 <85900443+Thunderblade73@users.noreply.github.com>2024-02-10 00:24:52 +0100
committerGitHub <noreply@github.com>2024-02-10 00:24:52 +0100
commit4559e5ff05e19817a21ae49f1c0d8a97d273f6a1 (patch)
treee72dac91d07fc84bea80548c89e13276caa68b81 /src/main/java/at/hannibal2/skyhanni/features/garden
parentd3a7cc4ab970b457b7950489da781539e45e0dce (diff)
downloadskyhanni-4559e5ff05e19817a21ae49f1c0d8a97d273f6a1.tar.gz
skyhanni-4559e5ff05e19817a21ae49f1c0d8a97d273f6a1.tar.bz2
skyhanni-4559e5ff05e19817a21ae49f1c0d8a97d273f6a1.zip
Splitting many utils functions from LorenzUtils up into other classes: ChatUtils, CollectionUtils, ConditionalUtils. And code cleanup #978
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/CropAccessory.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/CropType.kt32
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/FarmingMilestoneCommand.kt14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt17
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropsInCommand.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt19
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt24
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenWarpCommands.kt4
-rwxr-xr-xsrc/main/java/at/hannibal2/skyhanni/features/garden/GardenYawAndPitch.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/SensitivityReducer.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt40
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestStatsSummary.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestTimeNeeded.kt11
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropSpeedMeter.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenBestCropTime.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenStartLocation.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/WrongFungiCutterWarning.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt25
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFStats.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingReforges.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingSets.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneStats.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrade.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrades.kt17
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/OverviewPage.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/UpgradePage.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenCropMilestoneInventory.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenPlotIcon.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestFinder.kt14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawn.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawnTimer.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayDisplay.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayFeatures.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayType.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorColorNames.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorDropStatistics.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/NPCVisitorFix.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorAPI.kt11
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorReward.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt2
73 files changed, 344 insertions, 226 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt
index e92fda526..19d658c2a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt
@@ -6,13 +6,14 @@ import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.features.garden.visitor.VisitorAPI
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.nameWithEnchantment
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NEUItems
@@ -23,10 +24,12 @@ import net.minecraft.item.ItemStack
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class AnitaMedalProfit {
+
private val config get() = GardenAPI.config.anitaShop
private var display = emptyList<List<Any>>()
companion object {
+
var inInventory = false
}
@@ -104,7 +107,7 @@ class AnitaMedalProfit {
for (rawItemName in requiredItems) {
val pair = ItemUtils.readItemAmount(rawItemName)
if (pair == null) {
- LorenzUtils.error("Could not read item '$rawItemName'")
+ ChatUtils.error("Could not read item '$rawItemName'")
continue
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt
index 73fd9804c..9fddb9fc6 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt
@@ -6,7 +6,6 @@ import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import at.hannibal2.skyhanni.utils.Season
-import io.github.moulberry.notenoughupdates.util.SkyBlockTime
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class AtmosphericFilterDisplay {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/CropAccessory.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/CropAccessory.kt
index 22d553ea4..c11c2640d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/CropAccessory.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/CropAccessory.kt
@@ -7,8 +7,9 @@ enum class CropAccessory(
val internalName: NEUInternalName?,
private val affectedCrops: Set<CropType>,
private val fortune: Double,
- val upgradeCost: Pair<String, Int>?
+ val upgradeCost: Pair<String, Int>?,
) {
+
NONE(null, emptySet(), 0.0, null),
CROPIE(
"CROPIE_TALISMAN".asInternalName(),
@@ -29,6 +30,7 @@ enum class CropAccessory(
}
companion object {
+
fun getByName(internalName: NEUInternalName) = entries.firstOrNull { internalName == it.internalName }
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/CropType.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/CropType.kt
index 3a7226cc4..968fb1b29 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/CropType.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/CropType.kt
@@ -15,34 +15,45 @@ enum class CropType(
val simpleName: String,
val replenish: Boolean = false,
) {
- WHEAT("Wheat", "THEORETICAL_HOE_WHEAT", "CROPIE", 1.0,
+
+ WHEAT(
+ "Wheat", "THEORETICAL_HOE_WHEAT", "CROPIE", 1.0,
{ ItemStack(Items.wheat) }, "wheat"
),
- CARROT("Carrot", "THEORETICAL_HOE_CARROT", "CROPIE", 3.0,
+ CARROT(
+ "Carrot", "THEORETICAL_HOE_CARROT", "CROPIE", 3.0,
{ ItemStack(Items.carrot) }, "carrot", replenish = true
),
- POTATO("Potato", "THEORETICAL_HOE_POTATO", "CROPIE", 3.0,
+ POTATO(
+ "Potato", "THEORETICAL_HOE_POTATO", "CROPIE", 3.0,
{ ItemStack(Items.potato) }, "potato", replenish = true
),
- NETHER_WART("Nether Wart", "THEORETICAL_HOE_WARTS", "FERMENTO", 2.5,
+ NETHER_WART(
+ "Nether Wart", "THEORETICAL_HOE_WARTS", "FERMENTO", 2.5,
{ ItemStack(Items.nether_wart) }, "wart", replenish = true
),
- PUMPKIN("Pumpkin", "PUMPKIN_DICER", "SQUASH", 1.0,
+ PUMPKIN(
+ "Pumpkin", "PUMPKIN_DICER", "SQUASH", 1.0,
{ ItemStack(Blocks.pumpkin) }, "pumpkin"
),
- MELON("Melon", "MELON_DICER", "SQUASH", 5.0,
+ MELON(
+ "Melon", "MELON_DICER", "SQUASH", 5.0,
{ ItemStack(Items.melon) }, "melon"
),
- COCOA_BEANS("Cocoa Beans", "COCO_CHOPPER", "SQUASH", 3.0,
+ COCOA_BEANS(
+ "Cocoa Beans", "COCO_CHOPPER", "SQUASH", 3.0,
{ ItemStack(Items.dye, 1, EnumDyeColor.BROWN.dyeDamage) }, "cocoa", replenish = true
),
- SUGAR_CANE("Sugar Cane", "THEORETICAL_HOE_CANE", "FERMENTO", 2.0,
+ SUGAR_CANE(
+ "Sugar Cane", "THEORETICAL_HOE_CANE", "FERMENTO", 2.0,
{ ItemStack(Items.reeds) }, "cane"
),
- CACTUS("Cactus", "CACTUS_KNIFE", "FERMENTO", 2.0,
+ CACTUS(
+ "Cactus", "CACTUS_KNIFE", "FERMENTO", 2.0,
{ ItemStack(Blocks.cactus) }, "cactus"
),
- MUSHROOM("Mushroom", "FUNGI_CUTTER", "FERMENTO", 1.0,
+ MUSHROOM(
+ "Mushroom", "FUNGI_CUTTER", "FERMENTO", 1.0,
{ ItemStack(Blocks.red_mushroom_block) }, "mushroom"
),
;
@@ -54,6 +65,7 @@ enum class CropType(
override fun toString(): String = cropName
companion object {
+
fun getByNameOrNull(itemName: String): CropType? {
if (itemName == "Red Mushroom" || itemName == "Brown Mushroom") return MUSHROOM
if (itemName == "Seeds") return WHEAT
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
index c7f05d807..5b066b142 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt
@@ -14,11 +14,11 @@ import at.hannibal2.skyhanni.events.TabListUpdateEvent
import at.hannibal2.skyhanni.features.garden.CropType.Companion.getTurboCrop
import at.hannibal2.skyhanni.features.garden.GardenAPI.addCropIcon
import at.hannibal2.skyhanni.features.garden.pests.PestAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.nextAfter
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.nextAfter
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
@@ -36,6 +36,7 @@ import kotlin.math.log10
import kotlin.time.Duration.Companion.seconds
class FarmingFortuneDisplay {
+
private val tabFortuneUniversalPattern = " Farming Fortune: §r§6☘(?<fortune>\\d+)".toPattern()
private val tabFortuneCropPattern =
" (?<crop>Wheat|Carrot|Potato|Pumpkin|Sugar Cane|Melon|Cactus|Cocoa Beans|Mushroom|Nether Wart) Fortune: §r§6☘(?<fortune>\\d+)".toPattern()
@@ -170,6 +171,7 @@ class FarmingFortuneDisplay {
}
companion object {
+
private val config get() = GardenAPI.config.farmingFortunes
private val latestFF: MutableMap<CropType, Double>? get() = GardenAPI.storage?.latestTrueFarmingFortune
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingMilestoneCommand.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingMilestoneCommand.kt
index 7f7832ff1..61e3d1caa 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingMilestoneCommand.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingMilestoneCommand.kt
@@ -3,7 +3,7 @@ package at.hannibal2.skyhanni.features.garden
import at.hannibal2.skyhanni.data.GardenCropMilestones
import at.hannibal2.skyhanni.data.GardenCropMilestones.getCounter
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.TimeUtils
import net.minecraft.command.CommandBase
@@ -12,12 +12,12 @@ object FarmingMilestoneCommand {
fun onCommand(crop: String?, current: String?, target: String?, needsTime: Boolean) {
if (crop == null) {
- LorenzUtils.userError("No crop type entered")
+ ChatUtils.userError("No crop type entered")
return
}
val enteredCrop = CropType.entries.firstOrNull { it.simpleName == crop.lowercase() } ?: run {
- LorenzUtils.userError("Invalid crop type entered")
+ ChatUtils.userError("Invalid crop type entered")
return
}
@@ -30,7 +30,7 @@ object FarmingMilestoneCommand {
val cropsForTier = GardenCropMilestones.getCropsForTier(currentCropMilestone, enteredCrop)
val output = (cropsForTier - currentProgress).formatOutput(needsTime, enteredCrop)
- LorenzUtils.chat("§7$output needed to reach the next milestone")
+ ChatUtils.chat("§7$output needed to reach the next milestone")
return
}
@@ -38,11 +38,11 @@ object FarmingMilestoneCommand {
val cropsForTier = GardenCropMilestones.getCropsForTier(currentMilestone, enteredCrop)
val output = cropsForTier.formatOutput(needsTime, enteredCrop)
- LorenzUtils.chat("§7$output needed for milestone §7$currentMilestone")
+ ChatUtils.chat("§7$output needed for milestone §7$currentMilestone")
return
}
if (currentMilestone >= targetMilestone) {
- LorenzUtils.userError("Entered milestone is greater than or the same as target milestone")
+ ChatUtils.userError("Entered milestone is greater than or the same as target milestone")
return
}
@@ -50,7 +50,7 @@ object FarmingMilestoneCommand {
val targetAmount = GardenCropMilestones.getCropsForTier(targetMilestone, enteredCrop)
val output = (targetAmount - currentAmount).formatOutput(needsTime, enteredCrop)
- LorenzUtils.chat("§7$output needed for milestone §7$currentMilestone §a-> §7$targetMilestone")
+ ChatUtils.chat("§7$output needed for milestone §7$currentMilestone §a-> §7$targetMilestone")
}
fun onComplete(strings: Array<String>): List<String> {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
index dffb6f0ef..cf9fbea6f 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
@@ -24,13 +24,13 @@ import at.hannibal2.skyhanni.features.garden.fortuneguide.FarmingItems
import at.hannibal2.skyhanni.features.garden.inventory.SkyMartCopperPrice
import at.hannibal2.skyhanni.features.garden.visitor.VisitorAPI
import at.hannibal2.skyhanni.utils.BlockUtils.isBabyCrop
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.DelayedRun
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getItemRarityOrNull
import at.hannibal2.skyhanni.utils.LocationUtils.isPlayerInside
import at.hannibal2.skyhanni.utils.LorenzRarity
-import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
import at.hannibal2.skyhanni.utils.LorenzVec
import at.hannibal2.skyhanni.utils.NEUInternalName
@@ -45,6 +45,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
object GardenAPI {
+
var toolInHand: String? = null
var itemInHand: ItemStack? = null
var cropInHand: CropType? = null
@@ -159,7 +160,7 @@ object GardenAPI {
storage?.cropsPerSecond?.clear()
GardenBestCropTime.reset()
updateGardenTool()
- LorenzUtils.chat("Manually reset all crop speed data!")
+ ChatUtils.chat("Manually reset all crop speed data!")
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt
index 495d82bb6..838b3f6ce 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneFix.kt
@@ -7,13 +7,14 @@ import at.hannibal2.skyhanni.data.ProfileStorageData
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.TabListUpdateEvent
import at.hannibal2.skyhanni.features.garden.farming.GardenCropMilestoneDisplay
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNecessary
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class GardenCropMilestoneFix {
+
private val tabListPattern = " Milestone: §r§a(?<crop>.*) (?<tier>.*): §r§3(?<percentage>.*)%".toPattern()
private val levelUpPattern = " {2}§r§b§lGARDEN MILESTONE §3(?<crop>.*) §8.*➜§3(?<tier>.*)".toPattern()
@@ -51,7 +52,7 @@ class GardenCropMilestoneFix {
val crop = CropType.getByNameOrNull(cropName)
if (crop == null) {
- LorenzUtils.debug("GardenCropMilestoneFix: crop is null: '$cropName'")
+ ChatUtils.debug("GardenCropMilestoneFix: crop is null: '$cropName'")
return
}
@@ -81,11 +82,11 @@ class GardenCropMilestoneFix {
crop.setCounter(tabListValue)
GardenCropMilestoneDisplay.update()
if (!loadedCrops.contains(crop)) {
- LorenzUtils.chat("Loaded ${crop.cropName} milestone data from $source!")
+ ChatUtils.chat("Loaded ${crop.cropName} milestone data from $source!")
loadedCrops.add(crop)
}
} else if (diff >= minDiff) {
- LorenzUtils.debug("Fixed wrong ${crop.cropName} milestone data from $source: ${diff.addSeparators()}")
+ ChatUtils.debug("Fixed wrong ${crop.cropName} milestone data from $source: ${diff.addSeparators()}")
crop.setCounter(tabListValue)
GardenCropMilestoneDisplay.update()
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt
index 6629f1b00..42d417a5a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt
@@ -2,9 +2,9 @@ package at.hannibal2.skyhanni.features.garden
import at.hannibal2.skyhanni.features.garden.farming.CropMoneyDisplay
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.sorted
import at.hannibal2.skyhanni.utils.ItemUtils.getItemName
-import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.sorted
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
@@ -12,16 +12,17 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.TimeUtils
object GardenCropTimeCommand {
+
private val config get() = GardenAPI.config.moneyPerHours
fun onCommand(args: Array<String>) {
if (!config.display) {
- LorenzUtils.userError("shcroptime requires 'Show money per Hour' feature to be enabled to work!")
+ ChatUtils.userError("shcroptime requires 'Show money per Hour' feature to be enabled to work!")
return
}
if (args.size < 2) {
- LorenzUtils.userError("Usage: /shcroptime <amount> <item>")
+ ChatUtils.userError("Usage: /shcroptime <amount> <item>")
return
}
@@ -29,12 +30,12 @@ object GardenCropTimeCommand {
val amount = try {
rawAmount.formatNumber()
} catch (e: NumberFormatException) {
- LorenzUtils.userError("Not a valid number: '$rawAmount'")
+ ChatUtils.userError("Not a valid number: '$rawAmount'")
return
}
val multipliers = CropMoneyDisplay.multipliers
if (multipliers.isEmpty()) {
- LorenzUtils.userError("Data not loaded yet. Join the garden and display the money per hour display.")
+ ChatUtils.userError("Data not loaded yet. Join the garden and display the money per hour display.")
return
}
@@ -69,10 +70,10 @@ object GardenCropTimeCommand {
}
if (map.isEmpty()) {
- LorenzUtils.userError("No crop item found for '$rawSearchName'.")
+ ChatUtils.userError("No crop item found for '$rawSearchName'.")
return
}
- LorenzUtils.chat("Crop Speed for ${map.size} items:\n" + map.sorted().keys.joinToString("\n"))
+ ChatUtils.chat("Crop Speed for ${map.size} items:\n" + map.sorted().keys.joinToString("\n"))
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropsInCommand.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropsInCommand.kt
index 768dcbc49..4bf34a5ae 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropsInCommand.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropsInCommand.kt
@@ -2,25 +2,26 @@ package at.hannibal2.skyhanni.features.garden
import at.hannibal2.skyhanni.features.garden.farming.CropMoneyDisplay
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.sorted
import at.hannibal2.skyhanni.utils.ItemUtils.getItemName
-import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.sorted
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.TimeUtils
object GardenCropsInCommand {
+
private val config get() = GardenAPI.config.moneyPerHours
fun onCommand(args: Array<String>) {
if (!config.display) {
- LorenzUtils.userError("shcropsin requires 'Show money per Hour' feature to be enabled to work!")
+ ChatUtils.userError("shcropsin requires 'Show money per Hour' feature to be enabled to work!")
return
}
if (args.size < 2) {
- LorenzUtils.userError("Usage: /shcropsin <time> <item>")
+ ChatUtils.userError("Usage: /shcropsin <time> <item>")
return
}
@@ -28,12 +29,12 @@ object GardenCropsInCommand {
val seconds = try {
TimeUtils.getDuration(rawTime).inWholeSeconds
} catch (e: NumberFormatException) {
- LorenzUtils.userError("Not a valid time: '$rawTime'")
+ ChatUtils.userError("Not a valid time: '$rawTime'")
return
}
val multipliers = CropMoneyDisplay.multipliers
if (multipliers.isEmpty()) {
- LorenzUtils.userError("Data not loaded yet. Join the garden and display the money per hour display.")
+ ChatUtils.userError("Data not loaded yet. Join the garden and display the money per hour display.")
return
}
@@ -51,7 +52,7 @@ object GardenCropsInCommand {
val speed = crop.getSpeed()
- if (speed == null){
+ if (speed == null) {
map["$itemName §cNo speed data!"] = -1
} else {
val fullAmount = seconds * speed / baseAmount
@@ -61,10 +62,10 @@ object GardenCropsInCommand {
}
if (map.isEmpty()) {
- LorenzUtils.userError("No crops found for '$rawSearchName'")
+ ChatUtils.userError("No crops found for '$rawSearchName'")
return
}
- LorenzUtils.chat("Crops farmed in $rawTime:\n" + map.sorted().keys.joinToString("\n"))
+ ChatUtils.chat("Crops farmed in $rawTime:\n" + map.sorted().keys.joinToString("\n"))
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt
index f674340d7..21fb1a78a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt
@@ -5,6 +5,7 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzUtils
@@ -18,12 +19,22 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.milliseconds
class GardenLevelDisplay {
+
private val config get() = GardenAPI.config.gardenLevels
- private val expToNextLevelPattern by RepoPattern.pattern("garden.level.inventory.nextxp", ".* §e(?<nextLevelExp>.*)§6/.*")
+ private val expToNextLevelPattern by RepoPattern.pattern(
+ "garden.level.inventory.nextxp",
+ ".* §e(?<nextLevelExp>.*)§6/.*"
+ )
private val overflowPattern by RepoPattern.pattern("garden.level.inventory.overflow", ".*§r §6(?<overflow>.*)")
- private val currentLevelPattern by RepoPattern.pattern("garden.level.inventory.currentlevel", "Garden Level (?<currentLevel>.*)")
+ private val currentLevelPattern by RepoPattern.pattern(
+ "garden.level.inventory.currentlevel",
+ "Garden Level (?<currentLevel>.*)"
+ )
private var display = ""
- private val visitorRewardPattern by RepoPattern.pattern("garden.level.chat.increase", " {4}§r§8\\+§r§2(?<exp>.*) §r§7Garden Experience")
+ private val visitorRewardPattern by RepoPattern.pattern(
+ "garden.level.chat.increase",
+ " {4}§r§8\\+§r§2(?<exp>.*) §r§7Garden Experience"
+ )
@SubscribeEvent
fun onProfileJoin(event: ProfileJoinEvent) {
@@ -46,7 +57,7 @@ class GardenLevelDisplay {
val newLevel = GardenAPI.getGardenLevel()
if (newLevel == oldLevel + 1 && newLevel > 15) {
LorenzUtils.runDelayed(50.milliseconds) {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
" \n§b§lGARDEN LEVEL UP §8$oldLevel ➜ §b$newLevel\n" +
" §8+§aRespect from Elite Farmers and SkyHanni members :)\n ",
"/gardenlevels",
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
index e2fa5b63f..22c6cb7fc 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt
@@ -12,6 +12,7 @@ import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.TabListUpdateEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI.addCropIcon
import at.hannibal2.skyhanni.utils.APIUtil
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
@@ -46,6 +47,7 @@ import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.seconds
object GardenNextJacobContest {
+
private var dispatcher = Dispatchers.IO
private var display = emptyList<Any>()
private var simpleDisplay = emptyList<String>()
@@ -193,7 +195,7 @@ object GardenNextJacobContest {
if (!askToSendContests()) {
sendContests()
} else {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
"§2Click here to submit this year's farming contests. Thank you for helping everyone out!",
"shsendcontests"
)
@@ -243,7 +245,7 @@ object GardenNextJacobContest {
if (array[0] == "enable") {
config.shareAutomatically = ShareContestsEntry.AUTO
SkyHanniMod.feature.storage.contestSendingAsked = true
- LorenzUtils.chat("§2Enabled automatic sharing of future contests!")
+ ChatUtils.chat("§2Enabled automatic sharing of future contests!")
}
return
}
@@ -251,7 +253,7 @@ object GardenNextJacobContest {
sendContests()
}
if (!SkyHanniMod.feature.storage.contestSendingAsked && config.shareAutomatically == ShareContestsEntry.ASK) {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
"§2Click here to automatically share future contests!",
"shsendcontests enable"
)
@@ -374,7 +376,7 @@ object GardenNextJacobContest {
lastWarningTime = now()
val cropText = crops.joinToString("§7, ") { (if (it == boostedCrop) "§6" else "§a") + it.cropName }
- LorenzUtils.chat("Next farming contest: $cropText")
+ ChatUtils.chat("Next farming contest: $cropText")
LorenzUtils.sendTitle("§eFarming Contest!", 5.seconds)
SoundUtils.playBeepSound()
@@ -503,12 +505,12 @@ object GardenNextJacobContest {
newContests[timeMark + contestDuration] = FarmingContest(timeMark + contestDuration, crops)
}
} else {
- LorenzUtils.chat("This year's contests aren't available to fetch automatically yet, please load them from your calendar or wait 10 minutes.")
- LorenzUtils.clickableChat("Click here to open your calendar!", "calendar")
+ ChatUtils.chat("This year's contests aren't available to fetch automatically yet, please load them from your calendar or wait 10 minutes.")
+ ChatUtils.clickableChat("Click here to open your calendar!", "calendar")
}
if (newContests.count() == maxContestsPerYear) {
- LorenzUtils.chat("Successfully loaded this year's contests from elitebot.dev automatically!")
+ ChatUtils.chat("Successfully loaded this year's contests from elitebot.dev automatically!")
contests = newContests
fetchedFromElite = true
@@ -519,7 +521,7 @@ object GardenNextJacobContest {
}
} catch (e: Exception) {
e.printStackTrace()
- LorenzUtils.error("Failed to fetch upcoming contests. Please report this error if it continues to occur.")
+ ChatUtils.error("Failed to fetch upcoming contests. Please report this error if it continues to occur.")
}
}
@@ -549,13 +551,13 @@ object GardenNextJacobContest {
val result = withContext(dispatcher) { APIUtil.postJSONIsSuccessful(url, body) }
if (result) {
- LorenzUtils.chat("Successfully submitted this years upcoming contests, thank you for helping everyone out!")
+ ChatUtils.chat("Successfully submitted this years upcoming contests, thank you for helping everyone out!")
} else {
- LorenzUtils.error("Something went wrong submitting upcoming contests!")
+ ChatUtils.error("Something went wrong submitting upcoming contests!")
}
} catch (e: Exception) {
e.printStackTrace()
- LorenzUtils.error("Failed to submit upcoming contests. Please report this error if it continues to occur.")
+ ChatUtils.error("Failed to submit upcoming contests. Please report this error if it continues to occur.")
null
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt
index c0ce6e821..56d3fe17d 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt
@@ -6,6 +6,8 @@ import at.hannibal2.skyhanni.events.GardenToolChangeEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.TabListUpdateEvent
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.ConditionalUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.isRancherSign
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
@@ -22,6 +24,7 @@ import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds
class GardenOptimalSpeed {
+
private val config get() = GardenAPI.config.optimalSpeeds
private val configCustomSpeed get() = config.customSpeed
private var sneakingTime = 0.seconds
@@ -87,7 +90,7 @@ class GardenOptimalSpeed {
@SubscribeEvent
fun onConfigLoad(event: ConfigLoadEvent) {
for (value in CropType.entries) {
- LorenzUtils.onToggle(value.getConfig()) {
+ ConditionalUtils.onToggle(value.getConfig()) {
if (value == cropInHand) {
optimalSpeed = value.getOptimalSpeed()
}
@@ -147,7 +150,7 @@ class GardenOptimalSpeed {
if (sneaking) text += " §7[Sneaking]"
text += " §e(§f$optimalSpeed §eis optimal)"
- LorenzUtils.chat(text)
+ ChatUtils.chat(text)
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt
index f2f294d86..f1edf26e9 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenPlotAPI.kt
@@ -55,12 +55,12 @@ object GardenPlotAPI {
var sprayType: SprayType?,
@Expose
- var sprayHasNotified: Boolean
+ var sprayHasNotified: Boolean,
)
data class SprayData(
val expiry: SimpleTimeMark,
- val type: SprayType
+ val type: SprayType,
)
private fun Plot.getData() = GardenAPI.storage?.plotData?.getOrPut(id) { PlotData(id, "$id", 0, null, null, false) }
@@ -172,7 +172,7 @@ object GardenPlotAPI {
plot: Plot,
lineColor: Color,
cornerColor: Color,
- showBuildLimit: Boolean = false
+ showBuildLimit: Boolean = false,
) {
// These don't refer to Minecraft chunks but rather garden plots, but I use
@@ -244,7 +244,7 @@ object GardenPlotAPI {
p2: LorenzVec,
color: Color,
lineWidth: Int,
- depth: Boolean
+ depth: Boolean,
) {
if (isOutOfBorders(p1)) return
if (isOutOfBorders(p2)) return
@@ -259,5 +259,4 @@ object GardenPlotAPI {
else -> false
}
-
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenWarpCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenWarpCommands.kt
index a0d0b710d..563258b95 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenWarpCommands.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenWarpCommands.kt
@@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.features.garden
import at.hannibal2.skyhanni.events.LorenzKeyPressEvent
import at.hannibal2.skyhanni.events.MessageSendToServerEvent
import at.hannibal2.skyhanni.features.misc.LockMouseLook
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.SimpleTimeMark
@@ -12,6 +13,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class GardenWarpCommands {
+
private val config get() = GardenAPI.config.gardenCommands
// TODO repo
@@ -28,7 +30,7 @@ class GardenWarpCommands {
if (message == "/home") {
event.isCanceled = true
LorenzUtils.sendCommandToServer("warp garden")
- LorenzUtils.chat("§aTeleported you to the spawn location!", prefix = false)
+ ChatUtils.chat("§aTeleported you to the spawn location!", prefix = false)
}
if (message == "/barn") {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenYawAndPitch.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenYawAndPitch.kt
index d053a4ede..e93d7ce67 100755
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenYawAndPitch.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenYawAndPitch.kt
@@ -11,6 +11,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class GardenYawAndPitch {
+
private val config get() = GardenAPI.config.yawPitchDisplay
private var lastChange = SimpleTimeMark.farPast()
private var lastYaw = 0f
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/SensitivityReducer.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/SensitivityReducer.kt
index e43563b14..df2e20365 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/SensitivityReducer.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/SensitivityReducer.kt
@@ -7,9 +7,9 @@ import at.hannibal2.skyhanni.events.DebugDataCollectEvent
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.HypixelJoinEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.utils.ConditionalUtils.afterChange
import at.hannibal2.skyhanni.utils.KeyboardManager.isKeyHeld
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.afterChange
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import net.minecraft.client.Minecraft
@@ -48,14 +48,17 @@ object SensitivityReducer {
if (isToggled) toggle(false)
return
}
+
SensitivityReducerConfig.Mode.TOOL -> {
if (isHoldingTool() && !isToggled) toggle(true)
else if (isToggled && !isHoldingTool()) toggle(false)
}
+
SensitivityReducerConfig.Mode.KEYBIND -> {
if (config.keybind.isKeyHeld() && !isToggled) toggle(true)
else if (isToggled && !config.keybind.isKeyHeld()) toggle(false)
}
+
else -> return
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt
index ffd83126f..56568f017 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt
@@ -20,6 +20,7 @@ import java.text.DecimalFormat
import kotlin.math.roundToInt
class ToolTooltipTweaks {
+
private val config get() = GardenAPI.config.tooltipTweak
private val tooltipFortunePattern =
"^§5§o§7Farming Fortune: §a\\+([\\d.]+)(?: §2\\(\\+\\d\\))?(?: §9\\(\\+(\\d+)\\))?$".toRegex()
@@ -75,7 +76,6 @@ class ToolTooltipTweaks {
val totalFortune = displayedFortune + hiddenFortune
-
val ffdString = if (ffdFortune != 0) " §2(+${ffdFortune.formatStat()})" else ""
val reforgeString = if (reforgeFortune != 0.0) " §9(+${reforgeFortune.formatStat()})" else ""
val cropString = if (hiddenFortune != 0.0) " §6[+${hiddenFortune.roundToInt()}]" else ""
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt
index c9a362e43..085095f4f 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterAPI.kt
@@ -10,6 +10,7 @@ import kotlin.time.Duration
import kotlin.time.Duration.Companion.minutes
object ComposterAPI {
+
var tabListData = mapOf<ComposterDisplay.DataType, String>()
val composterUpgrades: MutableMap<ComposterUpgrade, Int>? get() = GardenAPI.storage?.composterUpgrades
@@ -36,14 +37,14 @@ object ComposterAPI {
getFuel(), fractionRemaining, fuelRequiredPer(null), timePerCompost
)
- return nextCompostTime + minOf(remainingTimeByOrganicMatter, remainingTimeByFuel)
+ return nextCompostTime + minOf(remainingTimeByOrganicMatter, remainingTimeByFuel)
}
private fun getDurationUntilEndOfResource(
amount: Long,
fractionOfCompostRemaining: Double,
requiredPer: Double,
- timePerCompost: Duration
+ timePerCompost: Duration,
): Duration {
val resourceConsumedByNextCompost = fractionOfCompostRemaining * requiredPer
val resourceRemainingAfterNextCompostFinishes = amount - resourceConsumedByNextCompost
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt
index 39eddc488..2e8ca1d11 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterDisplay.kt
@@ -4,8 +4,9 @@ import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.TabListUpdateEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
@@ -17,6 +18,7 @@ import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
class ComposterDisplay {
+
private val config get() = GardenAPI.config.composters
private val storage get() = GardenAPI.storage
private var display = emptyList<List<Any>>()
@@ -120,7 +122,7 @@ class ComposterDisplay {
if (config.notifyLow.title) {
LorenzUtils.sendTitle("§cYour Organic Matter is low", 4.seconds)
}
- LorenzUtils.chat("§cYour Organic Matter is low!")
+ ChatUtils.chat("§cYour Organic Matter is low!")
storage.informedAboutLowMatter = System.currentTimeMillis() + 60_000 * 5
}
@@ -130,7 +132,7 @@ class ComposterDisplay {
if (config.notifyLow.title) {
LorenzUtils.sendTitle("§cYour Fuel is low", 4.seconds)
}
- LorenzUtils.chat("§cYour Fuel is low!")
+ ChatUtils.chat("§cYour Fuel is low!")
storage.informedAboutLowFuel = System.currentTimeMillis() + 60_000 * 5
}
}
@@ -177,7 +179,7 @@ class ComposterDisplay {
if (System.currentTimeMillis() < storage.lastComposterEmptyWarningTime + 1000 * 60 * 2) return
storage.lastComposterEmptyWarningTime = System.currentTimeMillis()
- LorenzUtils.chat(warningMessage)
+ ChatUtils.chat(warningMessage)
LorenzUtils.sendTitle("§eComposter Warning!", 3.seconds)
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt
index 2cd0b4a60..f883f5de1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterInventoryNumbers.kt
@@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class ComposterInventoryNumbers {
+
private val valuePattern = ".* §e(?<having>.*)§6/(?<total>.*)".toPattern()
private val compostsPattern = "§7§7Compost Available: §a(?<amount>.*)".toPattern()
@@ -46,7 +47,6 @@ class ComposterInventoryNumbers {
val havingFormat = NumberUtil.format(having)
val total = group("total").removeColor()
-
val color = if (slotNumber == 46) {
// Organic Matter
event.offsetY = -95
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt
index bdbc94ee7..a2efc46cc 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/ComposterOverlay.kt
@@ -19,16 +19,17 @@ import at.hannibal2.skyhanni.features.bazaar.BazaarApi
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.composter.ComposterAPI.getLevel
import at.hannibal2.skyhanni.features.misc.items.EstimatedItemValue
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.KeyboardManager
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.addSelector
import at.hannibal2.skyhanni.utils.LorenzUtils.round
-import at.hannibal2.skyhanni.utils.LorenzUtils.sortedDesc
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.NONE
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
@@ -55,6 +56,7 @@ import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.DurationUnit
object ComposterOverlay {
+
private var organicMatterFactors: Map<NEUInternalName, Double> = emptyMap()
private var fuelFactors: Map<NEUInternalName, Double> = emptyMap()
private var organicMatter: Map<NEUInternalName, Double> = emptyMap()
@@ -94,11 +96,11 @@ object ComposterOverlay {
fun onCommand(args: Array<String>) {
if (args.size != 1) {
- LorenzUtils.userError("Usage: /shtestcomposter <offset>")
+ ChatUtils.userError("Usage: /shtestcomposter <offset>")
return
}
testOffset = args[0].toInt()
- LorenzUtils.chat("Composter test offset set to $testOffset.")
+ ChatUtils.chat("Composter test offset set to $testOffset.")
}
@SubscribeEvent
@@ -388,7 +390,7 @@ object ComposterOverlay {
}
val testOffset = if (testOffset_ > map.size) {
- LorenzUtils.error("Invalid Composter Overlay Offset! $testOffset cannot be greater than ${map.size}!")
+ ChatUtils.error("Invalid Composter Overlay Offset! $testOffset cannot be greater than ${map.size}!")
ComposterOverlay.testOffset = 0
0
} else testOffset_
@@ -410,7 +412,7 @@ object ComposterOverlay {
factors: Map<NEUInternalName, Double>,
missing: Double,
onClick: (NEUInternalName) -> Unit,
- bigList: MutableList<List<Any>>
+ bigList: MutableList<List<Any>>,
): NEUInternalName? {
var i = 0
var first: NEUInternalName? = null
@@ -453,7 +455,7 @@ object ComposterOverlay {
itemName: String,
list: MutableList<Any>,
itemsNeeded: Double,
- onClick: (NEUInternalName) -> Unit
+ onClick: (NEUInternalName) -> Unit,
) {
val format = NumberUtil.format(totalPrice)
val selected = if (internalName == currentOrganicMatterItem || internalName == currentFuelItem) "§n" else ""
@@ -470,13 +472,15 @@ object ComposterOverlay {
private fun retrieveMaterials(internalName: NEUInternalName, itemName: String, itemsNeeded: Int) {
if (itemsNeeded == 0) return
- if (config.retrieveFrom == ComposterConfig.RetrieveFromEntry.BAZAAR && !LorenzUtils.noTradeMode && !internalName.equals("BIOFUEL")) {
+ if (config.retrieveFrom == ComposterConfig.RetrieveFromEntry.BAZAAR &&
+ !LorenzUtils.noTradeMode && !internalName.equals("BIOFUEL")
+ ) {
BazaarApi.searchForBazaarItem(itemName, itemsNeeded)
return
}
val having = InventoryUtils.countItemsInLowerInventory { it.getInternalName() == internalName }
if (having >= itemsNeeded) {
- LorenzUtils.chat("$itemName §8x${itemsNeeded} §ealready found in inventory!")
+ ChatUtils.chat("$itemName §8x${itemsNeeded} §ealready found in inventory!")
return
}
@@ -487,9 +491,11 @@ object ComposterOverlay {
if (sackStatus == SackStatus.MISSING || sackStatus == SackStatus.OUTDATED) {
LorenzUtils.sendCommandToServer("gfs ${internalName.asString()} ${itemsNeeded - having}")
// TODO Add sack type repo data
- val sackType = if (internalName.equals("VOLTA") || internalName.equals("OIL_BARREL") || internalName.equals("BIOFUEL")) "Mining §eor §9Dwarven"
- else "Enchanted Agronomy"
- LorenzUtils.clickableChat(
+
+ val isDwarvenMineable =
+ internalName.let { it.equals("VOLTA") || it.equals("OIL_BARREL") || it.equals("BIOFUEL") }
+ val sackType = if (isDwarvenMineable) "Mining §eor §9Dwarven" else "Enchanted Agronomy"
+ ChatUtils.clickableChat(
"Sacks could not be loaded. Click here and open your §9$sackType Sack §eto update the data!",
"sax"
)
@@ -497,9 +503,9 @@ object ComposterOverlay {
} else if (amountInSacks == 0L) {
SoundUtils.playErrorSound()
if (LorenzUtils.noTradeMode) {
- LorenzUtils.chat("No $itemName §efound in sacks.")
+ ChatUtils.chat("No $itemName §efound in sacks.")
} else {
- LorenzUtils.chat("No $itemName §efound in sacks. Opening Bazaar.")
+ ChatUtils.chat("No $itemName §efound in sacks. Opening Bazaar.")
BazaarApi.searchForBazaarItem(itemName, itemsNeeded)
}
return
@@ -508,9 +514,9 @@ object ComposterOverlay {
LorenzUtils.sendCommandToServer("gfs ${internalName.asString()} ${itemsNeeded - having}")
if (amountInSacks <= itemsNeeded - having) {
if (LorenzUtils.noTradeMode) {
- LorenzUtils.chat("You're out of $itemName §ein your sacks!")
+ ChatUtils.chat("You're out of $itemName §ein your sacks!")
} else {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
"You're out of $itemName §ein your sacks! Click here to buy more on the Bazaar!",
"bz ${itemName.removeColor()}"
)
@@ -544,7 +550,7 @@ object ComposterOverlay {
organicMatterFactors = updateOrganicMatterFactors(organicMatter)
} catch (e: Exception) {
e.printStackTrace()
- LorenzUtils.error("error in RepositoryReloadEvent")
+ ChatUtils.error("error in RepositoryReloadEvent")
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt
index e57789884..8ab53cb9c 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/composter/GardenComposterInventoryFeatures.kt
@@ -4,6 +4,7 @@ import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
@@ -18,6 +19,7 @@ import net.minecraft.inventory.ContainerChest
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class GardenComposterInventoryFeatures {
+
private val config get() = GardenAPI.config.composters
@SubscribeEvent
@@ -45,12 +47,12 @@ class GardenComposterInventoryFeatures {
if (line.endsWith(" Copper")) continue
if (line == "") break
val (itemName, amount) = ItemUtils.readItemAmount(line) ?: run {
- LorenzUtils.error("Could not read item '$line'")
+ ChatUtils.error("Could not read item '$line'")
continue
}
val internalName = NEUItems.getInternalNameOrNull(itemName)
if (internalName == null) {
- LorenzUtils.error(
+ ChatUtils.error(
"Error reading internal name for item '$itemName§c' " +
"(in GardenComposterInventoryFeatures)"
)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt
index d2d866f36..b70fc9934 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/FarmingContestAPI.kt
@@ -8,11 +8,11 @@ import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
+import at.hannibal2.skyhanni.utils.CollectionUtils.nextAfter
+import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addOrPut
-import at.hannibal2.skyhanni.utils.LorenzUtils.nextAfter
-import at.hannibal2.skyhanni.utils.LorenzUtils.sortedDesc
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import io.github.moulberry.notenoughupdates.util.SkyBlockTime
@@ -21,6 +21,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.minutes
object FarmingContestAPI {
+
private val timePattern = "§a(?<month>.*) (?<day>.*)(?:rd|st|nd|th), Year (?<year>.*)".toPattern()
private val contests = mutableMapOf<Long, FarmingContest>()
private val cropPattern = "§8(?<crop>.*) Contest".toPattern()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
index f3ce88b13..8b8150cc8 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestFFNeededDisplay.kt
@@ -7,10 +7,10 @@ import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.FarmingFortuneDisplay.Companion.getLatestTrueFarmingFortune
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getLatestBlocksPerSecond
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
@@ -19,6 +19,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.math.ceil
class JacobContestFFNeededDisplay {
+
private val config get() = GardenAPI.config
private var display = emptyList<List<Any>>()
private var lastToolTipTime = 0L
@@ -95,7 +96,8 @@ class JacobContestFFNeededDisplay {
if (blocksPerSecond == null || trueFF == null) {
add(listOf("§cMissing data from above!"))
} else {
- val predictedScore = ((100.0 + trueFF) * blocksPerSecond * crop.baseDrops * 20 * 60 / 100).toInt().addSeparators()
+ val predictedScore =
+ ((100.0 + trueFF) * blocksPerSecond * crop.baseDrops * 20 * 60 / 100).toInt().addSeparators()
add(listOf("§6Predicted ", crop.icon, "§6crops: $predictedScore"))
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestStatsSummary.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestStatsSummary.kt
index e5df0f58a..31f0e3d31 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestStatsSummary.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestStatsSummary.kt
@@ -4,7 +4,7 @@ import at.hannibal2.skyhanni.data.ClickType
import at.hannibal2.skyhanni.events.CropClickEvent
import at.hannibal2.skyhanni.events.FarmingContestEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.SimpleTimeMark
@@ -12,6 +12,7 @@ import at.hannibal2.skyhanni.utils.TimeUtils.format
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class JacobContestStatsSummary {
+
private val config get() = GardenAPI.config
private var blocksBroken = 0
private var startTime = SimpleTimeMark.farPast()
@@ -32,7 +33,7 @@ class JacobContestStatsSummary {
when (event.phase) {
FarmingContestPhase.START -> {
- LorenzUtils.chat("Started tracking your Jacob Contest Blocks Per Second!")
+ ChatUtils.chat("Started tracking your Jacob Contest Blocks Per Second!")
startTime = SimpleTimeMark.now()
}
@@ -40,16 +41,16 @@ class JacobContestStatsSummary {
val duration = startTime.passedSince()
val blocksPerSecond = (blocksBroken.toDouble() / duration.inWholeSeconds).round(2)
val cropName = event.crop.cropName
- LorenzUtils.chat("Stats for $cropName Contest:")
+ ChatUtils.chat("Stats for $cropName Contest:")
val time = duration.format()
- LorenzUtils.chat("§7Blocks Broken in total: §e${blocksBroken.addSeparators()}")
+ ChatUtils.chat("§7Blocks Broken in total: §e${blocksBroken.addSeparators()}")
val color = getBlocksPerSecondColor(blocksPerSecond)
- LorenzUtils.chat("§7Average Blocks Per Second: $color$blocksPerSecond")
- LorenzUtils.chat("§7Participated for §b$time")
+ ChatUtils.chat("§7Average Blocks Per Second: $color$blocksPerSecond")
+ ChatUtils.chat("§7Participated for §b$time")
}
FarmingContestPhase.CHANGE -> {
- LorenzUtils.chat("You changed the crop during the contest, resetting the Blocks Per Second calculation..")
+ ChatUtils.chat("You changed the crop during the contest, resetting the Blocks Per Second calculation..")
startTime = SimpleTimeMark.now()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestTimeNeeded.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestTimeNeeded.kt
index f45fc93e9..7f6a91c33 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestTimeNeeded.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobContestTimeNeeded.kt
@@ -6,11 +6,11 @@ import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.FarmingFortuneDisplay.Companion.getLatestTrueFarmingFortune
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getLatestBlocksPerSecond
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.sorted
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.addSelector
import at.hannibal2.skyhanni.utils.LorenzUtils.round
-import at.hannibal2.skyhanni.utils.LorenzUtils.sorted
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.TimeUtils.format
@@ -23,6 +23,7 @@ import kotlin.time.Duration.Companion.minutes
import kotlin.time.Duration.Companion.seconds
class JacobContestTimeNeeded {
+
private val config get() = GardenAPI.config
private var display = emptyList<List<Any>>()
private var currentBracket = ContestBracket.GOLD
@@ -64,7 +65,7 @@ class JacobContestTimeNeeded {
private fun testCrop(
crop: CropType,
sorted: MutableMap<CropType, Duration>,
- map: MutableMap<CropType, Renderable>
+ map: MutableMap<CropType, Renderable>,
) {
val bps = crop.getBps()
@@ -109,7 +110,7 @@ class JacobContestTimeNeeded {
crop: CropType,
averages: Map<ContestBracket, Int>,
sorted: MutableMap<CropType, Duration>,
- map: MutableMap<CropType, Renderable>
+ map: MutableMap<CropType, Renderable>,
) {
var lowBPSWarning = listOf<String>()
val rawSpeed = speed.toDouble()
@@ -136,7 +137,7 @@ class JacobContestTimeNeeded {
var bracketText = "${bracket.displayName} $color$formatDuration"
var blocksPerSecond = crop.getBps()
if (blocksPerSecond == null) {
- marking += "§0§l !" //hoping this never shows
+ marking += "§0§l !" // hoping this never shows
blocksPerSecond = 19.9
lowBPSWarning = listOf("§cYour Blocks/second is too low,", "§cshowing 19.9 Blocks/second instead!")
} else {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt
index f45e909ff..727aae614 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/contest/JacobFarmingContestsInventory.kt
@@ -24,6 +24,7 @@ import java.text.SimpleDateFormat
import java.util.Locale
class JacobFarmingContestsInventory {
+
private val realTime = mutableMapOf<Int, String>()
private val formatDay = SimpleDateFormat("dd MMMM yyyy", Locale.US)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt
index 64b4c12ce..7e91764dd 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt
@@ -12,11 +12,11 @@ import at.hannibal2.skyhanni.events.PreProfileSwitchEvent
import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
+import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.addOrPut
-import at.hannibal2.skyhanni.utils.LorenzUtils.sortedDesc
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker
@@ -36,6 +36,7 @@ object ArmorDropTracker {
{ drawDisplay(it) }
class Data : TrackerData() {
+
override fun reset() {
drops.clear()
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
index 9c3d91065..c592b7837 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropMoneyDisplay.kt
@@ -17,14 +17,15 @@ import at.hannibal2.skyhanni.features.garden.GardenNextJacobContest
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.isSpeedDataEmpty
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.moveEntryToTop
+import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getItemNameOrNull
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.moveEntryToTop
-import at.hannibal2.skyhanni.utils.LorenzUtils.sortedDesc
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NEUItems
@@ -41,13 +42,13 @@ import kotlinx.coroutines.launch
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object CropMoneyDisplay {
+
var multipliers = mapOf<NEUInternalName, Int>()
private var showCalculation = false
-
fun toggleShowCalculation() {
showCalculation = !showCalculation
- LorenzUtils.chat("Show crop money calculation: " + if (showCalculation) "enabled" else "disabled")
+ ChatUtils.chat("Show crop money calculation: " + if (showCalculation) "enabled" else "disabled")
update()
}
@@ -166,7 +167,7 @@ object CropMoneyDisplay {
if (moneyPerHourData.isEmpty()) {
if (!isSpeedDataEmpty()) {
val message = "money/hr empty but speed data not empty, retry"
- LorenzUtils.debug(message)
+ ChatUtils.debug(message)
newDisplay.addAsSingletonList("§eStill Loading...")
ready = false
loaded = false
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropSpeedMeter.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropSpeedMeter.kt
index 2d1580974..250725520 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropSpeedMeter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/CropSpeedMeter.kt
@@ -7,13 +7,14 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderStrings
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class CropSpeedMeter {
+
private var display = emptyList<String>()
private var currentCrop: CropType? = null
private var currentBlocks = 0
@@ -112,14 +113,14 @@ class CropSpeedMeter {
}
companion object {
+
var enabled = false
private var startCrops = mapOf<CropType, Long>()
fun toggle() {
enabled = !enabled
- LorenzUtils.chat("Crop Speed Meter " + if (enabled) "§aEnabled" else "§cDisabled")
+ ChatUtils.chat("Crop Speed Meter " + if (enabled) "§aEnabled" else "§cDisabled")
startCrops = emptyMap()
-
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt
index f7b22bac4..000772cbc 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerRngDropTracker.kt
@@ -7,10 +7,10 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
+import at.hannibal2.skyhanni.utils.CollectionUtils.sortedDesc
import at.hannibal2.skyhanni.utils.ItemUtils.name
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.addOrPut
-import at.hannibal2.skyhanni.utils.LorenzUtils.sortedDesc
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.tracker.SkyHanniTracker
@@ -20,12 +20,14 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.util.regex.Pattern
object DicerRngDropTracker {
+
private val itemDrops = mutableListOf<ItemDrop>()
private val config get() = GardenAPI.config.dicerCounters
private val tracker = SkyHanniTracker("Dicer RNG Drop Tracker", { Data() }, { it.garden.dicerDropTracker })
{ drawDisplay(it) }
class Data : TrackerData() {
+
override fun reset() {
drops.clear()
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt
index c84470be4..e43bbb7dd 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/FarmingWeightDisplay.kt
@@ -13,6 +13,7 @@ import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
import at.hannibal2.skyhanni.utils.APIUtil
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.OSUtils
@@ -91,6 +92,7 @@ class FarmingWeightDisplay {
}
companion object {
+
private val config get() = GardenAPI.config.eliteFarmingWeights
private val localCounter = mutableMapOf<CropType, Long>()
private var dispatcher = Dispatchers.IO
@@ -229,8 +231,8 @@ class FarmingWeightDisplay {
// Check that the provided string is valid
val parsed = value.toIntOrNull() ?: 0
if (parsed < 1 || parsed > goal) {
- LorenzUtils.error("Invalid Farming Weight Overtake Goal!")
- LorenzUtils.chat(
+ ChatUtils.error("Invalid Farming Weight Overtake Goal!")
+ ChatUtils.chat(
"§eEdit the Overtake Goal config value with a valid number [1-10000] to use this feature!",
false
)
@@ -330,7 +332,7 @@ class FarmingWeightDisplay {
}
private fun farmingChatMessage(message: String) {
- LorenzUtils.hoverableChat(
+ ChatUtils.hoverableChat(
message,
listOf(
"§eClick to open your Farming Weight",
@@ -403,8 +405,8 @@ class FarmingWeightDisplay {
private fun showLbChange(direction: String, oldPosition: Int) {
farmingChatMessage(
"§7Since your last visit to the §aGarden§7, " +
- "you have $direction §7on the §dFarming Leaderboard§7. " +
- "§7(§e#${oldPosition.addSeparators()} §7-> §e#${leaderboardPosition.addSeparators()}§7)"
+ "you have $direction §7on the §dFarming Leaderboard§7. " +
+ "§7(§e#${oldPosition.addSeparators()} §7-> §e#${leaderboardPosition.addSeparators()}§7)"
)
}
@@ -479,10 +481,10 @@ class FarmingWeightDisplay {
private fun error() {
apiError = true
- LorenzUtils.error(
+ ChatUtils.error(
"Loading the farming weight data from elitebot.dev failed!\n"
- + "§eYou can re-enter the garden to try to fix the problem.\n" +
- "§cIf this message repeats, please report it on Discord!",
+ + "§eYou can re-enter the garden to try to fix the problem.\n" +
+ "§cIf this message repeats, please report it on Discord!",
)
}
@@ -530,7 +532,7 @@ class FarmingWeightDisplay {
lastName = name
OSUtils.openBrowser("https://elitebot.dev/@$name/")
- LorenzUtils.chat("Opening Farming Profile of player §b$name")
+ ChatUtils.chat("Opening Farming Profile of player §b$name")
}
private val factorPerCrop = mutableMapOf<CropType, Double>()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenBestCropTime.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenBestCropTime.kt
index 4e820c245..c5547fc9b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenBestCropTime.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenBestCropTime.kt
@@ -11,17 +11,19 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.GardenAPI.addCropIcon
import at.hannibal2.skyhanni.features.garden.GardenNextJacobContest
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.sorted
import at.hannibal2.skyhanni.utils.ConfigUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.sorted
import at.hannibal2.skyhanni.utils.TimeUnit
import at.hannibal2.skyhanni.utils.TimeUtils
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class GardenBestCropTime {
+
var display = emptyList<List<Any>>()
companion object {
+
private val config get() = GardenAPI.config.cropMilestones
val timeTillNextCrop = mutableMapOf<CropType, Long>()
@@ -116,7 +118,6 @@ class GardenBestCropTime {
val currentTier = GardenCropMilestones.getTierForCropCount(crop.getCounter(), crop)
val nextTier = if (config.bestShowMaxedNeeded.get()) 46 else currentTier + 1
-
val cropName = if (!config.next.bestCompact) crop.cropName + " " else ""
val tier = if (!config.next.bestCompact) "$currentTier➜$nextTier§r " else ""
list.add("$color$contestFormat$cropName$tier§b$duration")
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
index adfe0518d..b27d3e863 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt
@@ -20,9 +20,10 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI.addCropIcon
import at.hannibal2.skyhanni.features.garden.GardenAPI.getCropType
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.setSpeed
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.ConditionalUtils
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems
import at.hannibal2.skyhanni.utils.SoundUtils
@@ -34,6 +35,7 @@ import java.util.Collections
import kotlin.time.Duration.Companion.seconds
object GardenCropMilestoneDisplay {
+
private var progressDisplay = emptyList<List<Any>>()
private var mushroomCowPerkDisplay = emptyList<List<Any>>()
private val cultivatingData = mutableMapOf<CropType, Long>()
@@ -45,7 +47,7 @@ object GardenCropMilestoneDisplay {
@SubscribeEvent
fun onConfigLoad(event: ConfigLoadEvent) {
- LorenzUtils.onToggle(
+ ConditionalUtils.onToggle(
config.bestShowMaxedNeeded,
config.highestTimeFormat,
) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt
index 5e0cedacc..8232f5fc8 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropSpeed.kt
@@ -13,13 +13,14 @@ import at.hannibal2.skyhanni.events.PreProfileSwitchEvent
import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
-import at.hannibal2.skyhanni.utils.LorenzUtils.editCopy
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.concurrent.fixedRateTimer
object GardenCropSpeed {
+
private val config get() = GardenAPI.config
private val cropsPerSecond: MutableMap<CropType, Int>? get() = GardenAPI.storage?.cropsPerSecond
private val latestBlocksPerSecond: MutableMap<CropType, Double>? get() = GardenAPI.storage?.latestBlocksPerSecond
@@ -42,7 +43,9 @@ object GardenCropSpeed {
fixedRateTimer(name = "skyhanni-crop-milestone-speed", period = 1000L) {
if (isEnabled()) {
if (GardenAPI.mushroomCowPet) {
- CropType.MUSHROOM.setCounter(CropType.MUSHROOM.getCounter() + blocksBroken * (lastBrokenCrop?.multiplier ?: 1))
+ CropType.MUSHROOM.setCounter(
+ CropType.MUSHROOM.getCounter() + blocksBroken * (lastBrokenCrop?.multiplier ?: 1)
+ )
}
checkSpeed()
update()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt
index 6bbde660f..c9e4e30ac 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCustomKeybinds.kt
@@ -13,6 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable
import java.util.IdentityHashMap
object GardenCustomKeybinds {
+
private val config get() = GardenAPI.config.keyBind
private val mcSettings get() = Minecraft.getMinecraft().gameSettings
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenStartLocation.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenStartLocation.kt
index f1fdd112a..de1730c93 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenStartLocation.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenStartLocation.kt
@@ -4,22 +4,23 @@ import at.hannibal2.skyhanni.events.CropClickEvent
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.LocationUtils
import at.hannibal2.skyhanni.utils.LorenzColor
-import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.RenderUtils.drawDynamicText
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object GardenStartLocation {
+
private val config get() = GardenAPI.config.cropStartLocation
fun setLocationCommand() {
if (!GardenAPI.inGarden()) {
- LorenzUtils.userError("This Command only works in the garden!")
+ ChatUtils.userError("This Command only works in the garden!")
return
}
if (!config.enabled) {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
"This feature is disabled. Enable it in the config: §e/sh crop start location",
"sh crop start location",
prefixColor = "§c"
@@ -29,18 +30,18 @@ object GardenStartLocation {
val startLocations = GardenAPI.storage?.cropStartLocations
if (startLocations == null) {
- LorenzUtils.userError("The config is not yet loaded, retry in a second.")
+ ChatUtils.userError("The config is not yet loaded, retry in a second.")
return
}
val crop = GardenAPI.getCurrentlyFarmedCrop()
if (crop == null) {
- LorenzUtils.userError("Hold a crop specific farming tool in the hand!")
+ ChatUtils.userError("Hold a crop specific farming tool in the hand!")
return
}
startLocations[crop] = LocationUtils.playerLocation()
- LorenzUtils.chat("You changed your Crop Start Location for ${crop.cropName}!")
+ ChatUtils.chat("You changed your Crop Start Location for ${crop.cropName}!")
}
@SubscribeEvent
@@ -52,7 +53,7 @@ object GardenStartLocation {
if (!startLocations.contains(crop)) {
startLocations[crop] = LocationUtils.playerLocation()
- LorenzUtils.chat("Auto updated your Crop Start Location for ${crop.cropName}")
+ ChatUtils.chat("Auto updated your Crop Start Location for ${crop.cropName}")
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt
index aaa1a734c..a1181b1d0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WildStrawberryDyeNotification.kt
@@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.features.garden.farming
import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.OwnInventoryItemUpdateEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ItemBlink
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.name
@@ -13,6 +14,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class WildStrawberryDyeNotification {
+
private var lastCloseTime = 0L
val item by lazy { "DYE_WILD_STRAWBERRY".asInternalName() }
@@ -37,7 +39,7 @@ class WildStrawberryDyeNotification {
if (internalName == item) {
val name = itemStack.name!!
LorenzUtils.sendTitle(name, 5.seconds)
- LorenzUtils.chat("You found a $name§e!")
+ ChatUtils.chat("You found a $name§e!")
SoundUtils.playBeepSound()
ItemBlink.setBlink(itemStack, 5_000)
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WrongFungiCutterWarning.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WrongFungiCutterWarning.kt
index aeae6de44..f0a69aa3e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WrongFungiCutterWarning.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/WrongFungiCutterWarning.kt
@@ -14,6 +14,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class WrongFungiCutterWarning {
+
private var mode = FungiMode.UNKNOWN
private var lastPlaySoundTime = 0L
@@ -74,6 +75,7 @@ class WrongFungiCutterWarning {
;
companion object {
+
fun getOrNull(mode: String) =
entries.firstOrNull { it.name == mode } ?: error("Unknown fungi mode: '$mode'")
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt
index d8fd9f13d..d2eba9974 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/CaptureFarmingGear.kt
@@ -9,6 +9,7 @@ import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.features.garden.FarmingFortuneDisplay
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.GardenAPI.getCropType
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getItemRarityOrNull
@@ -27,6 +28,7 @@ import kotlin.math.round
import kotlin.time.Duration.Companion.days
class CaptureFarmingGear {
+
private val farmingItems get() = GardenAPI.storage?.fortune?.farmingItems
private val outdatedItems get() = GardenAPI.storage?.fortune?.outdatedItems
@@ -52,6 +54,7 @@ class CaptureFarmingGear {
)
companion object {
+
private val strengthPattern = " Strength: §r§c❁(?<strength>.*)".toPattern()
private val farmingSets = arrayListOf(
"FERMENTO", "SQUASH", "CROPIE", "MELON", "FARM",
@@ -66,8 +69,8 @@ class CaptureFarmingGear {
val currentCrop = itemStack.getCropType()
if (currentCrop == null) {
- //todo better fall back items
- //todo Daedalus axe
+ // todo better fall back items
+ // todo Daedalus axe
} else {
for (item in FarmingItems.entries) {
if (item.name == currentCrop.name) {
@@ -96,13 +99,13 @@ class CaptureFarmingGear {
fun reverseCarrotFortune() {
val storage = GardenAPI.storage?.fortune ?: return
storage.carrotFortune = !storage.carrotFortune
- LorenzUtils.chat("Toggled exportable carrot fortune to: ${storage.carrotFortune}")
+ ChatUtils.chat("Toggled exportable carrot fortune to: ${storage.carrotFortune}")
}
fun reversePumpkinFortune() {
val storage = GardenAPI.storage?.fortune ?: return
storage.pumpkinFortune = !storage.pumpkinFortune
- LorenzUtils.chat("Toggled expired pumpkin fortune to: ${storage.pumpkinFortune}")
+ ChatUtils.chat("Toggled expired pumpkin fortune to: ${storage.pumpkinFortune}")
}
private fun getUniqueVisitorsForTier(tier: Int): Int {
@@ -164,7 +167,7 @@ class CaptureFarmingGear {
private fun anita(
items: Map<Int, ItemStack>,
- storage: Storage.ProfileSpecific.GardenStorage.Fortune
+ storage: Storage.ProfileSpecific.GardenStorage.Fortune,
) {
var level = -1
for ((_, item) in items) {
@@ -186,7 +189,7 @@ class CaptureFarmingGear {
private fun configurePlots(
items: Map<Int, ItemStack>,
- storage: Storage.ProfileSpecific.GardenStorage.Fortune
+ storage: Storage.ProfileSpecific.GardenStorage.Fortune,
) {
var plotsUnlocked = 24
for (slot in items) {
@@ -213,7 +216,7 @@ class CaptureFarmingGear {
private fun skills(
items: Map<Int, ItemStack>,
- storage: Storage.ProfileSpecific.GardenStorage.Fortune
+ storage: Storage.ProfileSpecific.GardenStorage.Fortune,
) {
for ((_, item) in items) {
if (item.displayName.contains("Farming ")) {
@@ -225,7 +228,7 @@ class CaptureFarmingGear {
private fun pets(
farmingItems: MutableMap<FarmingItems, ItemStack>,
items: Map<Int, ItemStack>,
- outdatedItems: MutableMap<FarmingItems, Boolean>
+ outdatedItems: MutableMap<FarmingItems, Boolean>,
) {
// If they've 2 of same pet, one will be overwritten
// optimize
@@ -275,7 +278,7 @@ class CaptureFarmingGear {
private fun equipmentAndStats(
items: Map<Int, ItemStack>,
farmingItems: MutableMap<FarmingItems, ItemStack>,
- outdatedItems: MutableMap<FarmingItems, Boolean>
+ outdatedItems: MutableMap<FarmingItems, Boolean>,
) {
for ((_, slot) in items) {
val split = slot.getInternalName().asString().split("_")
@@ -337,11 +340,11 @@ class CaptureFarmingGear {
}
if (msg == "[NPC] Carrolyn: Thank you for the carrots.") {
storage.carrotFortune = true
- LorenzUtils.chat("§aYou have already given Carrolyn enough Exportable Carrots.")
+ ChatUtils.chat("§aYou have already given Carrolyn enough Exportable Carrots.")
}
if (msg == "[NPC] Carrolyn: Thank you for the pumpkins.") {
storage.pumpkinFortune = true
- LorenzUtils.chat("§aYou have already given Carrolyn enough Expired Pumpkins.")
+ ChatUtils.chat("§aYou have already given Carrolyn enough Expired Pumpkins.")
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt
index d93dfd36a..9cbce06de 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFGuideGUI.kt
@@ -19,6 +19,7 @@ import java.io.IOException
open class FFGuideGUI : GuiScreen() {
companion object {
+
val pages = mutableMapOf<FortuneGuidePage, FFGuidePage>()
var guiLeft = 0
@@ -31,7 +32,7 @@ open class FFGuideGUI : GuiScreen() {
var selectedPage = FortuneGuidePage.OVERVIEW
var currentCrop: CropType? = null
- //todo set this to what they have equip
+ // todo set this to what they have equip
var currentPet = FarmingItems.ELEPHANT
var currentArmor = 0
var currentEquipment = 0
@@ -473,6 +474,7 @@ open class FFGuideGUI : GuiScreen() {
}
abstract class FFGuidePage {
+
abstract fun drawPage(mouseX: Int, mouseY: Int, partialTicks: Float)
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFStats.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFStats.kt
index fdef21a09..0732535f4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFStats.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FFStats.kt
@@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack
import kotlin.math.floor
object FFStats {
+
private val mathCrops =
listOf(CropType.WHEAT, CropType.CARROT, CropType.POTATO, CropType.SUGAR_CANE, CropType.NETHER_WART)
private val dicerCrops = listOf(CropType.PUMPKIN, CropType.MELON)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingReforges.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingReforges.kt
index d640d9741..1e911688a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingReforges.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingReforges.kt
@@ -8,7 +8,7 @@ enum class FarmingReforges(
val rare: Int,
val epic: Int,
val legendary: Int,
- val mythic: Int
+ val mythic: Int,
) { // if reforge item is an empty string it means it will never be called, just for upgrading and recomb stats
BLESSED("Blessed", "BLESSED_FRUIT", 5, 7, 9, 13, 16, 20),
BOUNTIFUL("Bountiful", "GOLDEN_BALL", 1, 2, 3, 5, 7, 10),
@@ -31,4 +31,4 @@ operator fun FarmingReforges.get(index: Int, current: Double = 0.0): Double? {
5 -> mythic - current
else -> null
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingSets.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingSets.kt
index fb3c30123..e0b74ce8a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingSets.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FarmingSets.kt
@@ -4,12 +4,13 @@ enum class FarmingSets(
val helmetIncrease: Double,
val chestplateIncrease: Double,
val leggingsIncrease: Double,
- val bootsIncrease: Double
+ val bootsIncrease: Double,
) {
+
MELON(15.0, 20.0, 20.0, 15.0),
CROPIE(15.0, 20.0, 20.0, 15.0),
SQUASH(15.0, 20.0, 20.0, 15.0),
FERMENTO(15.0, 20.0, 20.0, 15.0),
FARMER(0.0, 0.0, 0.0, 0.0),
RANCHERS(0.0, 0.0, 0.0, 0.0)
-} \ No newline at end of file
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneStats.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneStats.kt
index af02f7577..1288b95bb 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneStats.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneStats.kt
@@ -9,7 +9,7 @@ enum class FortuneStats(val label: String, val tooltip: String) {
CROP_TOTAL("§6Crop Farming Fortune", "§7§2Farming fortune for this crop"),
ACCESSORY("§2Talisman Bonus", "§7§2Fortune from your talisman\n§2You get 10☘ per talisman tier"),
CROP_UPGRADE("§2Crop Upgrade", "§7§2Fortune from Desk crop upgrades\n§2You get 5☘ per level"),
- BASE_TOOL("§2Base tool fortune","§7§2Crop specific fortune from your tool"),
+ BASE_TOOL("§2Base tool fortune", "§7§2Crop specific fortune from your tool"),
REFORGE("§2Tool reforge", "§7§2Fortune from reforging your tool"),
FFD("§2Farming for Dummies", "§7§2Fortune for each applied book\n§2You get 1☘ per applied book"),
COUNTER("§2Logarithmic Counter", "§7§2Fortune from increasing crop counter\n§2You get 16☘ per digit - 4"),
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrade.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrade.kt
index 70ce14178..e503dfc82 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrade.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrade.kt
@@ -7,5 +7,5 @@ data class FortuneUpgrade(
val itemQuantity: Int,
val fortuneIncrease: Double,
var cost: Int? = null,
- var costPerFF: Int? = null // also the same as time to repay
-) \ No newline at end of file
+ var costPerFF: Int? = null, // also the same as time to repay
+)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrades.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrades.kt
index c7ff7275a..f137651a0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrades.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/FortuneUpgrades.kt
@@ -23,6 +23,7 @@ import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.isRecombobulated
import net.minecraft.item.ItemStack
object FortuneUpgrades {
+
private val equipment = listOf(FarmingItems.NECKLACE, FarmingItems.CLOAK, FarmingItems.BELT, FarmingItems.BRACELET)
private val armor = listOf(FarmingItems.HELMET, FarmingItems.CHESTPLATE, FarmingItems.LEGGINGS, FarmingItems.BOOTS)
private val axeCrops = listOf(CropType.MELON, CropType.PUMPKIN, CropType.COCOA_BEANS)
@@ -59,7 +60,7 @@ object FortuneUpgrades {
genericUpgrades.populateAndSort(0)
}
- //todo fix NEU price data not being loaded if run too early
+ // todo fix NEU price data not being loaded if run too early
private fun MutableList<FortuneUpgrade>.populateAndSort(style: Int) {
this.map { upgrade ->
val cost = (NEUItems.getPrice(upgrade.requiredItem) * (upgrade.itemQuantity)).toInt()
@@ -94,7 +95,7 @@ object FortuneUpgrades {
val visitors = GardenAPI.storage?.uniqueVisitors?.toDouble() ?: 0.0
for (piece in equipment) {
val item = piece.getItem()
- //todo tell them to buy the missing item
+ // todo tell them to buy the missing item
if (!item.getInternalName().contains("LOTUS")) return
val enchantments = item.getEnchantments() ?: emptyMap()
val greenThumbLvl = enchantments["green_thumb"] ?: 0
@@ -119,12 +120,12 @@ object FortuneUpgrades {
}
}
}
- //todo adding armor tier upgrades later
+ // todo adding armor tier upgrades later
private fun getArmorUpgrades() {
for (piece in armor) {
val item = piece.getItem()
- //todo skip if it doesnt exist -> tell them to buy it later
+ // todo skip if it doesnt exist -> tell them to buy it later
if (FFGuideGUI.isFallbackItem(item)) return
@@ -142,17 +143,17 @@ object FortuneUpgrades {
}
}
- //todo needs to be called when switching pets
+ // todo needs to be called when switching pets
private fun getPetUpgrades() {
if (currentPet.getItem().getInternalName().contains(";")) {
when (FFStats.currentPetItem) {
"GREEN_BANDANA" -> {}
"YELLOW_BANDANA" -> {
- //todo once auction stuff is done
+ // todo once auction stuff is done
}
else -> {
- //give pet yellow bandana
+ // give pet yellow bandana
}
}
}
@@ -273,7 +274,7 @@ object FortuneUpgrades {
item: ItemStack,
reforge: FarmingReforges,
list: MutableList<FortuneUpgrade>,
- copperPrice: Int? = null
+ copperPrice: Int? = null,
) {
FarmingFortuneDisplay.loadFortuneLineData(item, 0.0)
val increase = reforge[item.getItemRarityOrCommon().id, FarmingFortuneDisplay.reforgeFortune] ?: return
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/OverviewPage.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/OverviewPage.kt
index 670756832..fb52aa54c 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/OverviewPage.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/OverviewPage.kt
@@ -12,6 +12,7 @@ import at.hannibal2.skyhanni.utils.GuiRenderUtils
import at.hannibal2.skyhanni.utils.TimeUtils
class OverviewPage : FFGuideGUI.FFGuidePage() {
+
private var equipmentFF = mutableMapOf<FFTypes, Double>()
private var armorFF = mutableMapOf<FFTypes, Double>()
@@ -215,7 +216,8 @@ class OverviewPage : FFGuideGUI.FFGuidePage() {
val maxEquipmentReforgeFortune = 15.0
val maxGreenThumbFortune = GardenAPI.totalAmountVisitorsExisting.toDouble() / 4
- val maxFortunePerPiece = maxEquipmentBaseFortune + maxEquipmentAbilityFortune + maxEquipmentReforgeFortune + maxGreenThumbFortune
+ val maxFortunePerPiece =
+ maxEquipmentBaseFortune + maxEquipmentAbilityFortune + maxEquipmentReforgeFortune + maxGreenThumbFortune
line = if (currentEquipment == 0) "§7§2Total fortune from all your equipment\n§2Select a piece for more info"
else "§7§2Total fortune from your\n${equipmentItem.getItem().displayName}"
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/UpgradePage.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/UpgradePage.kt
index dd6664bc7..0ded703ec 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/UpgradePage.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/fortuneguide/pages/UpgradePage.kt
@@ -12,6 +12,7 @@ import net.minecraft.util.MathHelper
import java.text.DecimalFormat
class UpgradePage : FFGuideGUI.FFGuidePage() {
+
private var pageScroll = 0
private var scrollVelocity = 0.0
private val maxNoInputFrames = 100
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt
index f47e45bf4..c9271231c 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt
@@ -6,8 +6,8 @@ import at.hannibal2.skyhanni.data.jsonobjects.repo.AnitaUpgradeCostsJson.Price
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.indexOfFirst
import at.hannibal2.skyhanni.utils.InventoryUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.indexOfFirst
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil
@@ -17,6 +17,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class AnitaExtraFarmingFortune {
+
private val config get() = GardenAPI.config.anitaShop
private var levelPrice = mapOf<Int, Price>()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenCropMilestoneInventory.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenCropMilestoneInventory.kt
index ded515cec..b6ff2169b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenCropMilestoneInventory.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenCropMilestoneInventory.kt
@@ -9,8 +9,8 @@ import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.events.RenderInventoryItemTipEvent
import at.hannibal2.skyhanni.features.garden.CropType
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.indexOfFirst
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.indexOfFirst
import at.hannibal2.skyhanni.utils.LorenzUtils.round
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
@@ -18,6 +18,7 @@ import at.hannibal2.skyhanni.utils.StringUtils
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class GardenCropMilestoneInventory {
+
private var average = -1.0
private val config get() = GardenAPI.config
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt
index 7ace9f0db..b87b7bf33 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenInventoryNumbers.kt
@@ -14,6 +14,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class GardenInventoryNumbers {
+
private val config get() = GardenAPI.config.number
private var patternUpgradeTier = "§7Current Tier: §[ea](?<tier>.*)§7/§a.*".toPattern()
@@ -59,5 +60,4 @@ class GardenInventoryNumbers {
event.move(3, "garden.numberCropUpgrades", "garden.number.cropUpgrades")
event.move(3, "garden.numberComposterUpgrades", "garden.number.composterUpgrades")
}
-
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt
index 037031360..91c65b8a8 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenNextPlotPrice.kt
@@ -2,10 +2,10 @@ package at.hannibal2.skyhanni.features.garden.inventory
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.ItemUtils
import at.hannibal2.skyhanni.utils.ItemUtils.name
-import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NumberUtil
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -41,7 +41,7 @@ class GardenNextPlotPrice {
val format = NumberUtil.format(price)
list[i] = list[i] + " §7(§6$format§7)"
} ?: {
- LorenzUtils.error("Could not read item '$line'")
+ ChatUtils.error("Could not read item '$line'")
}
break
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenPlotIcon.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenPlotIcon.kt
index c7ff13dc6..db5cec5a5 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenPlotIcon.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/GardenPlotIcon.kt
@@ -4,9 +4,9 @@ import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
-import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUItems.getItemStack
import io.github.moulberry.notenoughupdates.events.ReplaceItemEvent
import io.github.moulberry.notenoughupdates.events.SlotClickEvent
@@ -105,7 +105,7 @@ object GardenPlotIcon {
event.isCanceled = true
copyStack = event.slot.stack ?: return
// TODO different format, not bold or show not in chat at all.
- LorenzUtils.chat("§6§lClick an item in the desk menu to replace it with that item!")
+ ChatUtils.chat("§6§lClick an item in the desk menu to replace it with that item!")
return
}
if (event.slotId != 53) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt
index 0aba4b861..b304dd43e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/SkyMartCopperPrice.kt
@@ -5,11 +5,11 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.nameWithEnchantment
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
@@ -21,11 +21,13 @@ import net.minecraft.item.ItemStack
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class SkyMartCopperPrice {
+
private val copperPattern = "§c(?<amount>.*) Copper".toPattern()
private var display = emptyList<List<Any>>()
private val config get() = GardenAPI.config.skyMart
companion object {
+
var inInventory = false
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt
index f886648d0..dca966be1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt
@@ -5,6 +5,7 @@ import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
object PestAPI {
+
val config get() = GardenAPI.config.pests
var scoreboardPests = 0
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestFinder.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestFinder.kt
index cc7019cf1..63a4b66d3 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestFinder.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestFinder.kt
@@ -17,10 +17,10 @@ import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.pests
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.renderPlot
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.sendTeleportTo
import at.hannibal2.skyhanni.test.GriffinUtils.drawWaypointFilled
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.LocationUtils.distanceSqToPlayer
import at.hannibal2.skyhanni.utils.LorenzColor
-import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
import at.hannibal2.skyhanni.utils.RenderUtils.drawDynamicText
@@ -51,7 +51,7 @@ class PestFinder {
PestSpawnTimer.lastSpawnTime = SimpleTimeMark.now()
val plot = GardenPlotAPI.getPlotByName(event.plotName)
if (plot == null) {
- LorenzUtils.userError("Open Desk to load plot names and pest locations!")
+ ChatUtils.userError("Open Desk to load plot names and pest locations!")
return
}
plot.pests += event.amountPests
@@ -75,7 +75,6 @@ class PestFinder {
}
}
update()
-
}
private fun update() {
@@ -162,7 +161,7 @@ class PestFinder {
}
}
if (fixed) {
- LorenzUtils.debug("Auto fixed all plots with pests.")
+ ChatUtils.debug("Auto fixed all plots with pests.")
}
}
@@ -178,7 +177,7 @@ class PestFinder {
private fun removeNearestPest() {
val plot = getNearestInfectedPest() ?: run {
- LorenzUtils.error("Can not remove nearest pest: No infected plots detected.")
+ ChatUtils.error("Can not remove nearest pest: No infected plots detected.")
return
}
plot.pests--
@@ -218,7 +217,6 @@ class PestFinder {
val location = playerLocation.copy(x = middle.x, z = middle.z)
event.drawWaypointFilled(location, LorenzColor.RED.toColor())
event.drawDynamicText(location, "§c$pestsName §7in §b$plotName", 1.5)
-
}
}
@@ -235,12 +233,12 @@ class PestFinder {
lastKeyPress = SimpleTimeMark.now()
val plot = getNearestInfectedPest() ?: run {
- LorenzUtils.userError("No infected plots detected to warp to!")
+ ChatUtils.userError("No infected plots detected to warp to!")
return
}
if (plot.isPlayerInside()) {
- LorenzUtils.userError("You stand already on the infected plot!")
+ ChatUtils.userError("You stand already on the infected plot!")
return
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawn.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawn.kt
index 52d530131..df044dbc1 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawn.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawn.kt
@@ -6,6 +6,7 @@ import at.hannibal2.skyhanni.config.features.garden.pests.PestSpawnConfig.ChatMe
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.garden.pests.PestSpawnEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.StringUtils
@@ -14,6 +15,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class PestSpawn {
+
private val config get() = PestAPI.config.pestSpawn
private val patternOnePest = "§6§l.*! §7A §6Pest §7has appeared in §aPlot §7- §b(?<plot>.*)§7!".toPattern()
@@ -55,7 +57,7 @@ class PestSpawn {
}
if (config.chatMessageFormat == PestSpawnConfig.ChatMessageFormatEntry.COMPACT) {
- LorenzUtils.clickableChat(message, "tptoplot $plotName")
+ ChatUtils.clickableChat(message, "tptoplot $plotName")
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawnTimer.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawnTimer.kt
index 726032591..deb5af218 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawnTimer.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestSpawnTimer.kt
@@ -9,6 +9,7 @@ import at.hannibal2.skyhanni.utils.TimeUtils.format
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object PestSpawnTimer {
+
private val config get() = PestAPI.config.pestTimer
var lastSpawnTime = SimpleTimeMark.farPast()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayDisplay.kt
index fa48a0518..754398106 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayDisplay.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayDisplay.kt
@@ -12,7 +12,7 @@ import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.isSprayExpired
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.markExpiredSprayAsNotified
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.name
import at.hannibal2.skyhanni.features.garden.GardenPlotAPI.plots
-import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.RenderUtils.renderString
import at.hannibal2.skyhanni.utils.StringUtils
import at.hannibal2.skyhanni.utils.TimeUtils.format
@@ -20,6 +20,7 @@ import at.hannibal2.skyhanni.utils.TimeUtils.timerColor
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class SprayDisplay {
+
private val config get() = PestAPI.config.spray
private var display: String? = null
@@ -63,6 +64,6 @@ class SprayDisplay {
val plotString = StringUtils.createCommaSeparatedList(expiredPlots.map { "§b${it.name}" }, "§7")
val sprayString = if (expiredPlots.size > 1) "sprays" else "spray"
val out = "$wasAwayString $sprayString on §aPlot §7- $plotString §7expired."
- LorenzUtils.chat(out)
+ ChatUtils.chat(out)
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayFeatures.kt
index b5e317f30..462dccb16 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayFeatures.kt
@@ -19,6 +19,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.seconds
class SprayFeatures {
+
private val config get() = PestAPI.config.spray
private var display: String? = null
@@ -49,7 +50,6 @@ class SprayFeatures {
display = "§a${type.displayName} §7(§6$pests§7)"
lastChangeTime = SimpleTimeMark.now()
-
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayType.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayType.kt
index eec073cf3..cb17de882 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayType.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/SprayType.kt
@@ -9,6 +9,7 @@ enum class SprayType(val displayName: String) {
;
companion object {
- fun getByName(name: String) = entries.firstOrNull {it.displayName == name}
+
+ fun getByName(name: String) = entries.firstOrNull { it.displayName == name }
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorColorNames.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorColorNames.kt
index c35b2d78a..2a5278c47 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorColorNames.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorColorNames.kt
@@ -7,6 +7,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object GardenVisitorColorNames {
+
private var visitorColours = mutableMapOf<String, String>() // name -> color code
var visitorItems = mutableMapOf<String, List<String>>()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorDropStatistics.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorDropStatistics.kt
index 35f53038d..d8042272e 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorDropStatistics.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorDropStatistics.kt
@@ -11,11 +11,11 @@ import at.hannibal2.skyhanni.events.PreProfileSwitchEvent
import at.hannibal2.skyhanni.events.garden.visitor.VisitorAcceptEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
+import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
+import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
-import at.hannibal2.skyhanni.utils.LorenzUtils.addOrPut
-import at.hannibal2.skyhanni.utils.LorenzUtils.editCopy
import at.hannibal2.skyhanni.utils.NumberUtil
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
@@ -25,6 +25,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object GardenVisitorDropStatistics {
+
private val config get() = GardenAPI.config.visitors.dropsStatistics
private var display = emptyList<List<Any>>()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt
index d9eb440e8..f5e283ae4 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt
@@ -25,6 +25,8 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.farming.GardenCropSpeed.getSpeed
import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.ConfigUtils
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -37,7 +39,6 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzLogger
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.addAsSingletonList
import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUItems
@@ -70,6 +71,7 @@ import kotlin.time.Duration.Companion.seconds
private val config get() = VisitorAPI.config
class GardenVisitorFeatures {
+
private var display = emptyList<List<Any>>()
private val newVisitorArrivedMessage = ".* §r§ehas arrived on your §r§bGarden§r§e!".toPattern()
private val copperPattern = " §8\\+§c(?<amount>.*) Copper".toPattern()
@@ -206,7 +208,7 @@ class GardenVisitorFeatures {
private fun MutableList<List<Any>>.drawVisitors(
newVisitors: MutableList<String>,
- shoppingList: MutableMap<NEUInternalName, Int>
+ shoppingList: MutableMap<NEUInternalName, Int>,
) {
if (newVisitors.isNotEmpty()) {
if (shoppingList.isNotEmpty()) {
@@ -226,7 +228,7 @@ class GardenVisitorFeatures {
if (items == null) {
val text = "Visitor '$visitor' has no items in repo!"
logger.log(text)
- LorenzUtils.debug(text)
+ ChatUtils.debug(text)
list.add(" §7(§c?§7)")
continue
}
@@ -345,7 +347,7 @@ class GardenVisitorFeatures {
if (wasEmpty) {
visitor.hasReward()?.let { reward ->
if (config.rewardWarning.notifyInChat) {
- LorenzUtils.chat("Found Visitor Reward ${reward.displayName}§e!")
+ ChatUtils.chat("Found Visitor Reward ${reward.displayName}§e!")
}
}
}
@@ -438,7 +440,7 @@ class GardenVisitorFeatures {
}
if (config.notificationChat) {
val displayName = GardenVisitorColorNames.getColoredName(name)
- LorenzUtils.chat("$displayName §eis visiting your garden!")
+ ChatUtils.chat("$displayName §eis visiting your garden!")
}
if (System.currentTimeMillis() > LorenzUtils.lastWorldSwitch + 2_000) {
@@ -465,7 +467,7 @@ class GardenVisitorFeatures {
if (config.shoppingList.display) {
partialAcceptedPattern.matchMatcher(event.message) {
- LorenzUtils.chat("Talk to the visitor again to update the number of items needed!")
+ ChatUtils.chat("Talk to the visitor again to update the number of items needed!")
}
}
}
@@ -676,6 +678,5 @@ class GardenVisitorFeatures {
event.move(18, "garden.visitors.needs", "garden.visitors.shoppingList")
}
-
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt
index 67a450146..6518a2bd7 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorTimer.kt
@@ -28,6 +28,7 @@ import kotlin.time.DurationUnit
import kotlin.time.toDuration
class GardenVisitorTimer {
+
private val config get() = GardenAPI.config.visitors.timer
private val pattern = "§b§lVisitors: §r§f\\((?<time>.*)\\)".toPattern()
private var display = ""
@@ -38,7 +39,7 @@ class GardenVisitorTimer {
private var lastTimerValue = ""
private var lastTimerUpdate = SimpleTimeMark.farPast()
- //TODO nea?
+ // TODO nea?
// private val visitorInterval by dynamic(GardenAPI::config, Storage.ProfileSpecific.GardenStorage::visitorInterval)
private var visitorInterval: Duration?
get() = GardenAPI.storage?.visitorInterval?.toDuration(DurationUnit.MILLISECONDS)
@@ -49,6 +50,7 @@ class GardenVisitorTimer {
}
companion object {
+
var lastVisitors: Int = -1
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt
index bd0fe5704..f381723cf 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/HighlightVisitorsOutsideOfGarden.kt
@@ -8,6 +8,7 @@ import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.events.withAlpha
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.EntityUtils.getSkinTexture
import at.hannibal2.skyhanni.utils.LorenzColor
@@ -25,6 +26,7 @@ import net.minecraft.network.play.client.C02PacketUseEntity
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class HighlightVisitorsOutsideOfGarden {
+
private var visitorJson = mapOf<String?, List<GardenJson.GardenVisitor>>()
private val config get() = GardenAPI.config.visitors
@@ -96,7 +98,7 @@ class HighlightVisitorsOutsideOfGarden {
if (isVisitor(entity) || (entity is EntityArmorStand && isVisitorNearby(entity.getLorenzVec()))) {
event.isCanceled = true
if (packet.action == C02PacketUseEntity.Action.INTERACT) {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
"Blocked you from interacting with a visitor. Sneak to bypass or click here to change settings.",
"/sh block interacting with visitors"
)
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/NPCVisitorFix.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/NPCVisitorFix.kt
index 5fe8f1dd0..19edd0d28 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/NPCVisitorFix.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/NPCVisitorFix.kt
@@ -5,11 +5,11 @@ import at.hannibal2.skyhanni.events.InventoryOpenEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.garden.visitor.VisitorOpenEvent
import at.hannibal2.skyhanni.features.garden.GardenAPI
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.DelayedRun
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.LocationUtils.distanceTo
import at.hannibal2.skyhanni.utils.LocationUtils.distanceToPlayer
-import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
@@ -24,6 +24,7 @@ import kotlin.time.Duration.Companion.seconds
* Fixing the visitor detection problem with Anita and Jacob, as those two are on the garden twice when visiting.
*/
object NPCVisitorFix {
+
private val storage get() = ProfileStorageData.profileSpecific?.garden
private val staticVisitors = listOf("Jacob", "Anita")
private val barnSkinChangePattern by RepoPattern.pattern("garden.barn.skin.change", "§aChanging Barn skin to §r.*")
@@ -51,7 +52,7 @@ object NPCVisitorFix {
}
storage.npcVisitorLocations[name] = location
- LorenzUtils.chat("Saved $name NPC location. Real $name visitors are now getting detected correctly.")
+ ChatUtils.chat("Saved $name NPC location. Real $name visitors are now getting detected correctly.")
}
private var lastVisitorOpen = SimpleTimeMark.farPast()
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorAPI.kt
index c3c832d78..012773b39 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorAPI.kt
@@ -7,15 +7,17 @@ import at.hannibal2.skyhanni.events.garden.visitor.VisitorRefusedEvent
import at.hannibal2.skyhanni.events.withAlpha
import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.test.command.ErrorManager
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzLogger
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils.editCopy
import at.hannibal2.skyhanni.utils.NEUInternalName
import net.minecraft.item.ItemStack
object VisitorAPI {
+
private var visitors = mapOf<String, Visitor>()
var inInventory = false
val config get() = GardenAPI.config.visitors
@@ -54,7 +56,7 @@ object VisitorAPI {
if (visitor == null) {
// workaround if the tab list has not yet updated when opening the visitor
addVisitor(name)
- LorenzUtils.debug("Found visitor from npc that is not in tab list. Adding it still.")
+ ChatUtils.debug("Found visitor from npc that is not in tab list. Adding it still.")
visitor = visitors[name]
}
@@ -99,7 +101,7 @@ object VisitorAPI {
}
class VisitorOffer(
- val offerItem: ItemStack
+ val offerItem: ItemStack,
)
class Visitor(
@@ -111,6 +113,7 @@ object VisitorAPI {
val shoppingList: MutableMap<NEUInternalName, Int> = mutableMapOf(),
var offer: VisitorOffer? = null,
) {
+
var lore: List<String> = emptyList()
var allRewards = listOf<NEUInternalName>()
var lastLore = listOf<String>()
@@ -160,7 +163,7 @@ object VisitorAPI {
continue
}
- //hide own player name
+ // hide own player name
if (name.contains(LorenzUtils.getPlayerName())) {
logger.log("Ignore wrong own name: '$name'")
continue
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt
index c71cf1c86..78cf473ca 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorListener.kt
@@ -15,6 +15,7 @@ import at.hannibal2.skyhanni.features.garden.GardenAPI
import at.hannibal2.skyhanni.features.garden.visitor.VisitorAPI.VisitorStatus
import at.hannibal2.skyhanni.features.garden.visitor.VisitorAPI.config
import at.hannibal2.skyhanni.mixins.transformers.gui.AccessorGuiContainer
+import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.KeyboardManager.isKeyHeld
@@ -37,10 +38,12 @@ import org.lwjgl.input.Keyboard
private val config get() = VisitorAPI.config
class VisitorListener {
+
private var lastClickedNpc = 0
private val logger = LorenzLogger("garden/visitors/listener")
companion object {
+
private val VISITOR_INFO_ITEM_SLOT = 13
private val VISITOR_ACCEPT_ITEM_SLOT = 29
private val VISITOR_REFUSE_ITEM_SLOT = 33
@@ -138,13 +141,13 @@ class VisitorListener {
visitor.hasReward()?.let {
if (config.rewardWarning.preventRefusing) {
if (config.rewardWarning.bypassKey.isKeyHeld()) {
- LorenzUtils.chat("§cBypassed blocking refusal of visitor ${visitor.visitorName} §7(${it.displayName}§7)")
+ ChatUtils.chat("§cBypassed blocking refusal of visitor ${visitor.visitorName} §7(${it.displayName}§7)")
return
}
event.isCanceled = true
- LorenzUtils.chat("§cBlocked refusing visitor ${visitor.visitorName} §7(${it.displayName}§7)")
+ ChatUtils.chat("§cBlocked refusing visitor ${visitor.visitorName} §7(${it.displayName}§7)")
if (config.rewardWarning.bypassKey == Keyboard.KEY_NONE) {
- LorenzUtils.clickableChat(
+ ChatUtils.clickableChat(
"§eIf you want to deny this visitor, set a keybind in §e/sh bypass",
"sh bypass",
false
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorReward.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorReward.kt
index 3f5f5eb17..76ef14237 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorReward.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorReward.kt
@@ -5,7 +5,12 @@ import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
import at.hannibal2.skyhanni.utils.NEUItems.getItemStack
-enum class VisitorReward(private val rawInternalName: String, val displayName: String, private val legacyId: Int = -1) : HasLegacyId {
+enum class VisitorReward(
+ private val rawInternalName: String,
+ val displayName: String,
+ private val legacyId:
+ Int = -1
+) : HasLegacyId {
FLOWERING_BOUQUET("FLOWERING_BOUQUET", "§9Flowering Bouquet", legacyId = 0),
OVERGROWN_GRASS("OVERGROWN_GRASS", "§9Overgrown Grass", legacyId = 1),
GREEN_BANDANA("GREEN_BANDANA", "§9Green Bandana", legacyId = 2),
@@ -23,6 +28,7 @@ enum class VisitorReward(private val rawInternalName: String, val displayName: S
// val displayName by lazy { itemStack.nameWithEnchantment ?: internalName.asString() }
companion object {
+
fun getByInternalName(internalName: NEUInternalName) = entries.firstOrNull { it.internalName == internalName }
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt
index 851c5ece7..647a0229a 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/VisitorTooltipParser.kt
@@ -13,10 +13,10 @@ class VisitorTooltipParser {
enum class ParsingSection {
ITEMS_NEEDED,
REWARDS
-
}
companion object {
+
fun parse(lore: List<String>, config: GardenConfig?): ParsedTooltip {
var section = ParsingSection.ITEMS_NEEDED
val parsedData = ParsedTooltip(mutableMapOf(), mutableMapOf(), config ?: GardenConfig())