From 0bdfaab9e486f0c6adc576e3a939838ef1827c80 Mon Sep 17 00:00:00 2001 From: Walker Selby Date: Sun, 15 Oct 2023 12:50:14 +0100 Subject: Internal Change: Config deprecations (#542) migrate the config, removed id system entirely #542 --- .../hannibal2/skyhanni/features/chat/ChatFilter.kt | 17 +++- .../skyhanni/features/chat/WatchdogHider.kt | 8 +- .../features/chat/playerchat/PlayerChatModifier.kt | 14 +++- .../damageindicator/DamageIndicatorManager.kt | 6 +- .../skyhanni/features/dungeon/DungeonCleanEnd.kt | 18 +++- .../skyhanni/features/dungeon/DungeonCopilot.kt | 14 +++- .../skyhanni/features/dungeon/DungeonHideItems.kt | 35 +++++--- .../skyhanni/features/dungeon/DungeonLevelColor.kt | 8 +- .../skyhanni/features/fishing/FishingTimer.kt | 28 +++++-- .../skyhanni/features/garden/AnitaMedalProfit.kt | 13 ++- .../features/garden/FarmingFortuneDisplay.kt | 16 +++- .../features/garden/GardenCropTimeCommand.kt | 4 +- .../skyhanni/features/garden/GardenLevelDisplay.kt | 13 ++- .../features/garden/GardenNextJacobContest.kt | 46 ++++++---- .../skyhanni/features/garden/GardenOptimalSpeed.kt | 36 ++++++-- .../skyhanni/features/garden/ToolTooltipTweaks.kt | 10 ++- .../features/garden/composter/ComposterDisplay.kt | 39 ++++++--- .../garden/composter/ComposterInventoryNumbers.kt | 8 +- .../features/garden/composter/ComposterOverlay.kt | 25 ++++-- .../composter/GardenComposterInventoryFeatures.kt | 13 ++- .../garden/contest/JacobContestFFNeededDisplay.kt | 2 +- .../contest/JacobFarmingContestsInventory.kt | 21 +++-- .../features/garden/farming/CropMoneyDisplay.kt | 72 ++++++++++------ .../features/garden/farming/DicerRngDropCounter.kt | 18 ++-- .../features/garden/farming/FarmingArmorDrops.kt | 18 ++-- .../garden/farming/FarmingWeightDisplay.kt | 28 ++++--- .../features/garden/farming/GardenBestCropTime.kt | 37 +++++--- .../garden/farming/GardenCropMilestoneDisplay.kt | 52 ++++++++---- .../features/garden/farming/GardenCropSpeed.kt | 9 +- .../garden/farming/GardenCustomKeybinds.kt | 35 +++++--- .../garden/inventory/AnitaExtraFarmingFortune.kt | 8 +- .../inventory/GardenCropMilestoneInventory.kt | 11 ++- .../garden/inventory/GardenInventoryNumbers.kt | 17 +++- .../garden/inventory/SkyMartCopperPrice.kt | 16 +++- .../garden/visitor/GardenVisitorColorNames.kt | 2 +- .../garden/visitor/GardenVisitorDropStatistics.kt | 15 +++- .../garden/visitor/GardenVisitorFeatures.kt | 98 ++++++++++++++-------- .../features/garden/visitor/GardenVisitorTimer.kt | 19 +++-- .../features/inventory/HideNotClickableItems.kt | 25 ++++-- .../features/inventory/RngMeterInventory.kt | 16 +++- .../skyhanni/features/inventory/StatsTuning.kt | 17 +++- .../itemabilities/FireVeilWandParticles.kt | 13 ++- .../skyhanni/features/minion/MinionFeatures.kt | 20 +++-- .../skyhanni/features/misc/CurrentPetDisplay.kt | 10 ++- .../features/misc/NonGodPotEffectDisplay.kt | 10 ++- .../skyhanni/features/misc/ParticleHider.kt | 20 ++++- .../skyhanni/features/misc/PetExpTooltip.kt | 9 +- .../skyhanni/features/misc/QuickModMenuSwitch.kt | 8 +- .../features/misc/ThunderSparksHighlight.kt | 12 ++- .../misc/compacttablist/AdvancedPlayerList.kt | 2 +- .../features/misc/items/EstimatedItemValue.kt | 25 ++++-- .../features/misc/items/EstimatedWardrobePrice.kt | 12 ++- .../features/slayer/blaze/BlazeSlayerClearView.kt | 8 +- .../slayer/blaze/BlazeSlayerDaggerHelper.kt | 18 +++- .../slayer/blaze/BlazeSlayerFirePitsWarning.kt | 8 +- .../features/slayer/blaze/HellionShieldHelper.kt | 10 ++- .../slayer/enderman/EndermanSlayerFeatures.kt | 24 ++++-- .../slayer/enderman/EndermanSlayerHideParticles.kt | 8 +- 58 files changed, 826 insertions(+), 298 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt index cbe4d4f56..6772e67cf 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.chat import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.StringUtils.matchRegex @@ -9,7 +10,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.trimWhiteSpaceAndResets import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class ChatFilter { - private val config get() = SkyHanniMod.feature.chat + private val config get() = SkyHanniMod.feature.chat.filterType @SubscribeEvent fun onChatMessage(event: LorenzChatEvent) { @@ -348,4 +349,18 @@ class ChatFilter { else -> false } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(3, "chat.hypixelHub", "chat.filterType.hypixelHub") + event.move(3, "chat.empty", "chat.filterType.empty") + event.move(3, "chat.warping", "chat.filterType.warping") + event.move(3, "chat.guildExp", "chat.filterType.guildExp") + event.move(3, "chat.friendJoinLeft", "chat.filterType.friendJoinLeft") + event.move(3, "chat.winterGift", "chat.filterType.winterGift") + event.move(3, "chat.powderMining", "chat.filterType.powderMining") + event.move(3, "chat.killCombo", "chat.filterType.killCombo") + event.move(3, "chat.profileJoin", "chat.filterType.profileJoin") + event.move(3, "chat.others", "chat.filterType.others") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/WatchdogHider.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/WatchdogHider.kt index 099d52067..739eaa123 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/chat/WatchdogHider.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/chat/WatchdogHider.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.chat import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.ChatManager import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.utils.LorenzUtils @@ -15,7 +16,7 @@ class WatchdogHider { @SubscribeEvent fun onChatMessage(event: LorenzChatEvent) { - if (!LorenzUtils.onHypixel || !SkyHanniMod.feature.chat.watchDog) return + if (!LorenzUtils.onHypixel || !SkyHanniMod.feature.chat.filterType.watchDog) return when (event.message) { watchdogStartLine -> { @@ -48,6 +49,11 @@ class WatchdogHider { private const val watchdogAnnouncementLine = "§4[WATCHDOG ANNOUNCEMENT]" private const val watchdogEndLine = "§c" } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(3, "chat.watchDog", "chat.filterType.watchDog") + } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt index e63c925df..60ed955a3 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/chat/playerchat/PlayerChatModifier.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.chat.playerchat import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.features.dungeon.DungeonMilestonesDisplay import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager @@ -10,6 +11,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class PlayerChatModifier { + private val config get() = SkyHanniMod.feature.chat.playerMessage private val patterns = mutableListOf() init { @@ -58,7 +60,7 @@ class PlayerChatModifier { private fun cutMessage(input: String): String { var string = input - if (SkyHanniMod.feature.chat.playerRankHider) { + if (config.playerRankHider) { for (pattern in patterns) { string = string.replace(pattern, "§b$1") } @@ -72,7 +74,7 @@ class PlayerChatModifier { } } - if (SkyHanniMod.feature.chat.chatFilter && string.contains("§r§f: ") && PlayerChatFilter.shouldChatFilter(string)) { + if (config.chatFilter && string.contains("§r§f: ") && PlayerChatFilter.shouldChatFilter(string)) { string = string.replace("§r§f: ", "§r§7: ") } @@ -84,4 +86,12 @@ class PlayerChatModifier { return string } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(3, "chat.playerRankHider", "chat.playerMessage.playerRankHider") + event.move(3, "chat.chatFilter", "chat.playerMessage.chatFilter") + } + + } diff --git a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt index b8fa406b9..f9f84f9f7 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt @@ -455,7 +455,7 @@ class DamageIndicatorManager { entity.setHellionShield(null) } - if (!SkyHanniMod.feature.slayer.blazePhaseDisplay) return "" + if (!SkyHanniMod.feature.slayer.blazes.phaseDisplay) return "" var calcHealth = health val calcMaxHealth: Int @@ -610,7 +610,7 @@ class DamageIndicatorManager { calcHealth.toLong(), calcMaxHealth.toLong() ).getChatColor() + NumberUtil.format(calcHealth) - if (!SkyHanniMod.feature.slayer.endermanPhaseDisplay) { + if (!SkyHanniMod.feature.slayer.endermen.phaseDisplay) { result = "" entityData.namePrefix = "" } @@ -854,6 +854,8 @@ class DamageIndicatorManager { @SubscribeEvent fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { event.move(2, "damageIndicator", "combat.damageIndicator") + event.move(3,"slayer.endermanPhaseDisplay", "slayer.endermen.phaseDisplay") + event.move(3, "slayer.blazePhaseDisplay", "slayer.blazes.phaseDisplay") } fun isEnabled() = LorenzUtils.inSkyBlock && config.enabled diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCleanEnd.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCleanEnd.kt index 6d0afd651..31e8c611e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCleanEnd.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCleanEnd.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.dungeon import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.CheckRenderEntityEvent import at.hannibal2.skyhanni.events.DamageIndicatorFinalBossEvent import at.hannibal2.skyhanni.events.EntityHealthUpdateEvent @@ -18,6 +19,8 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class DungeonCleanEnd { + private val config get() = SkyHanniMod.feature.dungeon.cleanEnd + private var bossDone = false private var chestsSpawned = false private var lastBossId: Int = -1 @@ -25,7 +28,7 @@ class DungeonCleanEnd { @SubscribeEvent fun onChatMessage(event: LorenzChatEvent) { if (!LorenzUtils.inDungeons) return - if (!SkyHanniMod.feature.dungeon.cleanEndToggle) return + if (!config.toggle) return val message = event.message @@ -36,7 +39,7 @@ class DungeonCleanEnd { private fun shouldBlock(): Boolean { if (!LorenzUtils.inDungeons) return false - if (!SkyHanniMod.feature.dungeon.cleanEndToggle) return false + if (!config.toggle) return false if (!bossDone) return false @@ -63,7 +66,7 @@ class DungeonCleanEnd { @SubscribeEvent fun onEntityHealthUpdate(event: EntityHealthUpdateEvent) { if (!LorenzUtils.inDungeons) return - if (!SkyHanniMod.feature.dungeon.cleanEndToggle) return + if (!config.toggle) return if (bossDone) return if (lastBossId == -1) return if (event.entity.entityId != lastBossId) return @@ -83,7 +86,7 @@ class DungeonCleanEnd { if (entity == Minecraft.getMinecraft().thePlayer) return - if (SkyHanniMod.feature.dungeon.cleanEndF3IgnoreGuardians + if (config.F3IgnoreGuardians && DungeonAPI.isOneOf("F3", "M3") && entity is EntityGuardian && entity.entityId != lastBossId @@ -111,4 +114,11 @@ class DungeonCleanEnd { event.isCanceled = true } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(3, "dungeon.cleanEndToggle", "dungeon.cleanEnd.toggle") + event.move(3, "dungeon.cleanEndF3IgnoreGuardians", "dungeon.cleanEnd.F3IgnoreGuardians") + } + } \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt index 7b423af28..ddfd622a7 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonCopilot.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.dungeon import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.CheckRenderEntityEvent import at.hannibal2.skyhanni.events.DungeonBossRoomEnterEvent import at.hannibal2.skyhanni.events.DungeonEnterEvent @@ -64,7 +65,7 @@ class DungeonCopilot { foundKeyOrDoor = true } - if (foundKeyOrDoor && SkyHanniMod.feature.dungeon.messageFilterKeysAndDoors) { + if (foundKeyOrDoor && SkyHanniMod.feature.dungeon.messageFilter.keysAndDoors) { event.blockedReason = "dungeon_keys_and_doors" } @@ -125,13 +126,20 @@ class DungeonCopilot { } private fun isEnabled(): Boolean { - return LorenzUtils.inDungeons && SkyHanniMod.feature.dungeon.copilotEnabled + return LorenzUtils.inDungeons && SkyHanniMod.feature.dungeon.dungeonCopilot.enabled } @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) { if (!isEnabled()) return - SkyHanniMod.feature.dungeon.copilotPos.renderString(nextStep, posLabel = "Dungeon Copilot") + SkyHanniMod.feature.dungeon.dungeonCopilot.pos.renderString(nextStep, posLabel = "Dungeon Copilot") + } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "dungeon.messageFilterKeysAndDoors", "dungeon.messageFilter.keysAndDoors") + event.move(3,"dungeon.copilotEnabled", "dungeon.dungeonCopilot.enabled") + event.move(3,"dungeon.copilotPos", "dungeon.dungeonCopilot.pos") } } \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonHideItems.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonHideItems.kt index 1428a120a..dd086cf2f 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonHideItems.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonHideItems.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.dungeon import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.EntityMovementData import at.hannibal2.skyhanni.events.CheckRenderEntityEvent import at.hannibal2.skyhanni.events.EntityMoveEvent @@ -21,6 +22,8 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class DungeonHideItems { + private val config get() = SkyHanniMod.feature.dungeon.objectHider + private val hideParticles = mutableMapOf() private val movingSkeletonSkulls = mutableMapOf() @@ -61,18 +64,18 @@ class DungeonHideItems { if (entity is EntityItem) { val stack = entity.entityItem - if (SkyHanniMod.feature.dungeon.hideReviveStone && stack.cleanName() == "Revive Stone") { + if (config.hideReviveStone && stack.cleanName() == "Revive Stone") { event.isCanceled = true } - if (SkyHanniMod.feature.dungeon.hideJournalEntry && stack.cleanName() == "Journal Entry") { + if (config.hideJournalEntry && stack.cleanName() == "Journal Entry") { event.isCanceled = true } } if (entity !is EntityArmorStand) return - if (SkyHanniMod.feature.dungeon.hideSuperboomTNT) { + if (config.hideSuperboomTNT) { if (entity.name.startsWith("§9Superboom TNT")) { event.isCanceled = true } @@ -84,7 +87,7 @@ class DungeonHideItems { } } - if (SkyHanniMod.feature.dungeon.hideBlessing) { + if (config.hideBlessing) { if (entity.name.startsWith("§dBlessing of ")) { event.isCanceled = true } @@ -95,7 +98,7 @@ class DungeonHideItems { } } - if (SkyHanniMod.feature.dungeon.hideReviveStone) { + if (config.hideReviveStone) { if (entity.name == "§6Revive Stone") { event.isCanceled = true } @@ -107,7 +110,7 @@ class DungeonHideItems { } } - if (SkyHanniMod.feature.dungeon.hidePremiumFlesh) { + if (config.hidePremiumFlesh) { if (entity.name == "§9Premium Flesh") { event.isCanceled = true hideParticles[entity] = System.currentTimeMillis() @@ -121,7 +124,7 @@ class DungeonHideItems { if (isSkeletonSkull(entity)) { EntityMovementData.addToTrack(entity) - if (SkyHanniMod.feature.dungeon.hideSkeletonSkull) { + if (config.hideSkeletonSkull) { val lastMove = movingSkeletonSkulls.getOrDefault(entity, 0) if (lastMove + 100 > System.currentTimeMillis()) { return @@ -130,7 +133,7 @@ class DungeonHideItems { } } - if (SkyHanniMod.feature.dungeon.hideHealerOrbs) { + if (config.hideHealerOrbs) { when { entity.name.startsWith("§c§lDAMAGE §e") -> event.isCanceled = true entity.name.startsWith("§c§lABILITY DAMAGE §e") -> event.isCanceled = true @@ -152,7 +155,7 @@ class DungeonHideItems { } } - if (SkyHanniMod.feature.dungeon.hideHealerFairy) { + if (config.hideHealerFairy) { val itemStack = entity.inventory[0] if (itemStack != null && itemStack.getSkullTexture() == healerFairyTexture) { event.isCanceled = true @@ -164,7 +167,7 @@ class DungeonHideItems { @SubscribeEvent fun onReceivePacket(event: ReceiveParticleEvent) { if (!LorenzUtils.inDungeons) return - if (!SkyHanniMod.feature.dungeon.hideSuperboomTNT && !SkyHanniMod.feature.dungeon.hideReviveStone) return + if (!config.hideSuperboomTNT && !config.hideReviveStone) return val packetLocation = event.location for (armorStand in hideParticles.filter { it.value + 100 > System.currentTimeMillis() }.map { it.key }) { @@ -223,4 +226,16 @@ class DungeonHideItems { hideParticles.clear() movingSkeletonSkulls.clear() } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(3, "dungeon.hideSuperboomTNT", "dungeon.objectHider.hideSuperboomTNT") + event.move(3, "dungeon.hideBlessing", "dungeon.objectHider.hideBlessing") + event.move(3, "dungeon.hideReviveStone", "dungeon.objectHider.hideReviveStone") + event.move(3, "dungeon.hidePremiumFlesh", "dungeon.objectHider.hidePremiumFlesh") + event.move(3, "dungeon.hideJournalEntry", "dungeon.objectHider.hideJournalEntry") + event.move(3, "dungeon.hideSkeletonSkull", "dungeon.objectHider.hideSkeletonSkull") + event.move(3, "dungeon.hideHealerOrbs", "dungeon.objectHider.hideHealerOrbs") + event.move(3, "dungeon.hideHealerFairy", "dungeon.objectHider.hideHealerFairy") + } } \ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt index 2a044adef..776a11a14 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.dungeon import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.utils.InventoryUtils import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.LorenzUtils @@ -14,7 +15,7 @@ class DungeonLevelColor { @SubscribeEvent fun onItemTooltip(event: ItemTooltipEvent) { if (!LorenzUtils.inSkyBlock) return - if (!SkyHanniMod.feature.dungeon.partyFinderColoredClassLevel) return + if (!SkyHanniMod.feature.dungeon.partyFinder.coloredClassLevel) return if (event.toolTip == null) return val chestName = InventoryUtils.openInventoryName() @@ -34,6 +35,11 @@ class DungeonLevelColor { } } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "dungeon.partyFinderColoredClassLevel", "dungeon.partyFinder.coloredClassLevel") + } } fun getColor(level: Int): String { diff --git a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt index c841eff38..1bb7cb1d5 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/fishing/FishingTimer.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.fishing import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.IslandType import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzTickEvent @@ -18,7 +19,7 @@ import net.minecraft.entity.item.EntityArmorStand import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class FishingTimer { - private val config get() = SkyHanniMod.feature.fishing + private val config get() = SkyHanniMod.feature.fishing.barnTimer private val barnLocation = LorenzVec(108, 89, -252) private var rightLocation = false @@ -29,7 +30,7 @@ class FishingTimer { @SubscribeEvent fun onTick(event: LorenzTickEvent) { if (!LorenzUtils.inSkyBlock) return - if (!config.barnTimer) return + if (!config.enabled) return if (event.repeatSeconds(3)) { rightLocation = isRightLocation() @@ -46,7 +47,7 @@ class FishingTimer { if (currentCount == 0) return val duration = System.currentTimeMillis() - startTime - val barnTimerAlertTime = config.barnTimerAlertTime * 1_000 + val barnTimerAlertTime = config.alertTime * 1_000 if (duration > barnTimerAlertTime && duration < barnTimerAlertTime + 3_000) { SoundUtils.playBeepSound() } @@ -82,9 +83,9 @@ class FishingTimer { private fun isRightLocation(): Boolean { inHollows = false - if (config.barnTimerForStranded && LorenzUtils.isStrandedProfile) return true + if (config.forStranded && LorenzUtils.isStrandedProfile) return true - if (config.barnTimerCrystalHollows && IslandType.CRYSTAL_HOLLOWS.isInIsland()) { + if (config.crystalHollows && IslandType.CRYSTAL_HOLLOWS.isInIsland()) { inHollows = true return true } @@ -99,17 +100,28 @@ class FishingTimer { @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) { if (!LorenzUtils.inSkyBlock) return - if (!config.barnTimer) return + if (!config.enabled) return if (!rightLocation) return if (currentCount == 0) return val duration = System.currentTimeMillis() - startTime - val barnTimerAlertTime = config.barnTimerAlertTime * 1_000 + val barnTimerAlertTime = config.alertTime * 1_000 val color = if (duration > barnTimerAlertTime) "§c" else "§e" val timeFormat = TimeUtils.formatDuration(duration, biggestUnit = TimeUnit.MINUTE) val name = if (currentCount == 1) "sea creature" else "sea creatures" val text = "$color$timeFormat §8(§e$currentCount §b$name§8)" - config.barnTimerPos.renderString(text, posLabel = "BarnTimer") + config.pos.renderString(text, posLabel = "BarnTimer") + } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "fishing.barnTimer", "fishing.barnTimer.enabled") + event.move(3, "fishing.barnTimerAlertTime", "fishing.barnTimer.alertTime") + event.move(3, "fishing.barnTimerCrystalHollows", "fishing.barnTimer.crystalHollows") + event.move(3, "fishing.barnTimerForStranded", "fishing.barnTimer.forStranded") + event.move(3, "fishing.wormLimitAlert", "fishing.barnTimer.wormLimitAlert") + event.move(3, "fishing.manualResetTimer", "fishing.barnTimer.manualResetTimer") + event.move(3, "fishing.barnTimerPos", "fishing.barnTimer.pos") } } \ No newline at end of file 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 c1af6224d..dca61807d 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/AnitaMedalProfit.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.InventoryCloseEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent @@ -21,7 +22,7 @@ import net.minecraft.item.ItemStack import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class AnitaMedalProfit { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.anitaShop private var display = emptyList>() companion object { @@ -44,7 +45,7 @@ class AnitaMedalProfit { @SubscribeEvent fun onInventoryOpen(event: InventoryFullyOpenedEvent) { - if (!config.anitaMedalProfitEnabled) return + if (!config.medalProfitEnabled) return if (event.inventoryName != "Anita") return if (GardenVisitorFeatures.inVisitorInventory) return @@ -138,7 +139,7 @@ class AnitaMedalProfit { @SubscribeEvent fun onBackgroundDraw(event: GuiRenderEvent.ChestGuiOverlayRenderEvent) { if (inInventory) { - config.anitaMedalProfitPos.renderStringsAndItems( + config.medalProfitPos.renderStringsAndItems( display, extraSpace = 5, itemScale = 1.7, @@ -146,4 +147,10 @@ class AnitaMedalProfit { ) } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3,"garden.anitaMedalProfitEnabled", "garden.anitaShop.medalProfitEnabled") + event.move(3,"garden.anitaMedalProfitPos", "garden.anitaShop.medalProfitPos") + } } \ No newline at end of file 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 40a603b7c..789c0f352 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/FarmingFortuneDisplay.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.CropAccessoryData import at.hannibal2.skyhanni.data.GardenCropMilestones import at.hannibal2.skyhanni.data.GardenCropMilestones.getCounter @@ -80,7 +81,7 @@ class FarmingFortuneDisplay { @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) { if (!isEnabled()) return - config.farmingFortunePos.renderStringsAndItems(display, posLabel = "True Farming Fortune") + config.pos.renderStringsAndItems(display, posLabel = "True Farming Fortune") } @SubscribeEvent @@ -137,18 +138,18 @@ class FarmingFortuneDisplay { toolCounterFortune + getTurboCropFortune(tool, currentCrop) + getDedicationFortune(tool, currentCrop) } - private fun isEnabled(): Boolean = GardenAPI.inGarden() && config.farmingFortuneDisplay + private fun isEnabled(): Boolean = GardenAPI.inGarden() && config.display companion object { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.farmingFortunes private val latestFF: MutableMap? get() = GardenAPI.config?.latestTrueFarmingFortune private val currentCrop get() = GardenAPI.getCurrentlyFarmedCrop() private var tabFortune: Double = 0.0 private var toolFortune: Double = 0.0 - private val baseFortune: Double get() = if (config.farmingFortuneDropMultiplier) 100.0 else 0.0 + private val baseFortune: Double get() = if (config.dropMultiplier) 100.0 else 0.0 private val upgradeFortune: Double? get() = currentCrop?.getUpgradeLevel()?.let { it * 5.0 } private val accessoryFortune: Double? get() = currentCrop?.let { @@ -281,4 +282,11 @@ class FarmingFortuneDisplay { fun CropType.getLatestTrueFarmingFortune() = latestFF?.get(this) } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3,"garden.farmingFortuneDisplay", "garden.farmingFortunes.display") + event.move(3,"garden.farmingFortuneDropMultiplier", "garden.farmingFortunes.dropMultiplier") + event.move(3,"garden.farmingFortunePos", "garden.farmingFortunes.pos") + } } \ No newline at end of file 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 da7636cd6..228f133e9 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropTimeCommand.kt @@ -12,10 +12,10 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TimeUtils object GardenCropTimeCommand { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.moneyPerHours fun onCommand(args: Array) { - if (!config.moneyPerHourDisplay) { + if (!config.display) { LorenzUtils.chat("§c[SkyHanni] §cshcroptime requires 'Show money per Hour' feature to be enabled to work!") return } 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 7e5d3321f..c10292032 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent import at.hannibal2.skyhanni.events.LorenzChatEvent @@ -17,7 +18,7 @@ import kotlin.math.roundToLong import kotlin.time.Duration.Companion.milliseconds class GardenLevelDisplay { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.gardenLevels private val expToNextLevelPattern = ".* §e(?.*)§6/.*".toPattern() private val overflowPattern = ".*§r §6(?.*) XP".toPattern() private val namePattern = "Garden Level (?.*)".toPattern() @@ -106,8 +107,14 @@ class GardenLevelDisplay { fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) { if (!isEnabled()) return - config.gardenLevelPos.renderString(display, posLabel = "Garden Level") + config.pos.renderString(display, posLabel = "Garden Level") } - private fun isEnabled() = GardenAPI.inGarden() && config.gardenLevelDisplay + private fun isEnabled() = GardenAPI.inGarden() && config.display + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "garden.gardenLevelDisplay", "garden.gardenLevels.display") + event.move(3, "garden.gardenLevelPos", "garden.gardenLevels.pos") + } } \ No newline at end of file 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 1e904ea4f..26dc9e7dd 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextJacobContest.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.ConfigLoadEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.InventoryCloseEvent @@ -98,7 +99,7 @@ object GardenNextJacobContest { @SubscribeEvent fun onInventoryOpen(event: InventoryFullyOpenedEvent) { - if (!config.nextJacobContestDisplay) return + if (!config.display) return val backItem = event.inventoryItems[48] ?: return val backName = backItem.name @@ -215,7 +216,7 @@ object GardenNextJacobContest { fun shareContestConfirmed(array: Array) { if (array.size == 1) { if (array[0] == "enable") { - config.nextJacobContestsShareAutomatically = 1 + config.shareAutomatically = 1 SkyHanniMod.feature.storage.contestSendingAsked = true LorenzUtils.chat("§e[SkyHanni] §2Enabled automatic sharing of future contests!") } @@ -224,7 +225,7 @@ object GardenNextJacobContest { if (contests.size == maxContestsPerYear) { sendContests() } - if (!SkyHanniMod.feature.storage.contestSendingAsked && config.nextJacobContestsShareAutomatically == 0) { + if (!SkyHanniMod.feature.storage.contestSendingAsked && config.shareAutomatically == 0) { LorenzUtils.clickableChat( "§e[SkyHanni] §2Click here to automatically share future contests!", "shsendcontests enable" @@ -311,8 +312,8 @@ object GardenNextJacobContest { } private fun warn(timeInMillis: Long, crops: List) { - if (!config.nextJacobContestWarn) return - if (config.nextJacobContestWarnTime <= timeInMillis / 1000) return + if (!config.warn) return + if (config.warnTime <= timeInMillis / 1000) return if (System.currentTimeMillis() < lastWarningTime) return lastWarningTime = System.currentTimeMillis() + 60_000 * 40 @@ -322,7 +323,7 @@ object GardenNextJacobContest { LorenzUtils.sendTitle("§eFarming Contest!", 5.seconds) SoundUtils.playBeepSound() - if (config.nextJacobContestWarnPopup && !Display.isActive()) { + if (config.warnPopup && !Display.isActive()) { SkyHanniMod.coroutineScope.launch { openPopupWindow( "Farming Contest soon!\n" + @@ -375,15 +376,15 @@ object GardenNextJacobContest { if (!isEnabled()) return if (display.isEmpty()) { - config.nextJacobContestPos.renderStrings(simpleDisplay, posLabel = "Garden Next Jacob Contest") + config.pos.renderStrings(simpleDisplay, posLabel = "Garden Next Jacob Contest") } else { - config.nextJacobContestPos.renderSingleLineWithItems(display, 1.7, posLabel = "Garden Next Jacob Contest") + config.pos.renderSingleLineWithItems(display, 1.7, posLabel = "Garden Next Jacob Contest") } } @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent.ChestGuiOverlayRenderEvent) { - if (!config.nextJacobContestDisplay) return + if (!config.display) return if (!inCalendar) return if (display.isNotEmpty()) { @@ -394,13 +395,13 @@ object GardenNextJacobContest { } } - private fun isEnabled() = LorenzUtils.inSkyBlock && config.nextJacobContestDisplay - && (GardenAPI.inGarden() || config.nextJacobContestEverywhere) + private fun isEnabled() = LorenzUtils.inSkyBlock && config.display + && (GardenAPI.inGarden() || config.everywhere) - private fun isFetchEnabled() = isEnabled() && config.nextJacobContestsFetchAutomatically - private fun isSendEnabled() = isFetchEnabled() && config.nextJacobContestsShareAutomatically != 2 // 2 = Disabled + private fun isFetchEnabled() = isEnabled() && config.fetchAutomatically + private fun isSendEnabled() = isFetchEnabled() && config.shareAutomatically != 2 // 2 = Disabled private fun askToSendContests() = - config.nextJacobContestsShareAutomatically == 0 // 0 = Ask, 1 = Send (Only call if isSendEnabled()) + config.shareAutomatically == 0 // 0 = Ask, 1 = Send (Only call if isSendEnabled()) private fun fetchContestsIfAble() { if (isFetchingContests || contests.size == maxContestsPerYear || !isFetchEnabled()) return @@ -494,8 +495,21 @@ object GardenNextJacobContest { null } - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.nextJacobContests private val nextContestCrops = mutableListOf() - fun isNextCrop(cropName: CropType) = nextContestCrops.contains(cropName) && config.nextJacobContestOtherGuis + fun isNextCrop(cropName: CropType) = nextContestCrops.contains(cropName) && config.otherGuis + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "garden.nextJacobContestDisplay", "garden.nextJacobContests.display") + event.move(3, "garden.nextJacobContestEverywhere", "garden.nextJacobContests.everywhere") + event.move(3, "garden.nextJacobContestOtherGuis", "garden.nextJacobContests.otherGuis") + event.move(3, "garden.nextJacobContestsFetchAutomatically", "garden.nextJacobContests.fetchAutomatically") + event.move(3, "garden.nextJacobContestsShareAutomatically", "garden.nextJacobContests.shareAutomatically") + event.move(3, "garden.nextJacobContestWarn", "garden.nextJacobContests.warn") + event.move(3, "garden.nextJacobContestWarnTime", "garden.nextJacobContests.warnTime") + event.move(3, "garden.nextJacobContestWarnPopup", "garden.nextJacobContests.warnPopup") + event.move(3, "garden.nextJacobContestPos", "garden.nextJacobContests.pos") + } } \ No newline at end of file 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 b5999eed2..7dc971a23 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GardenToolChangeEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.TabListUpdateEvent @@ -18,8 +19,8 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import kotlin.time.Duration.Companion.seconds class GardenOptimalSpeed { - private val config get() = SkyHanniMod.feature.garden - private val configCustomSpeed get() = config.optimalSpeedCustom + private val config get() = SkyHanniMod.feature.garden.optimalSpeeds + private val configCustomSpeed get() = config.customSpeed private var currentSpeed = 100 private var optimalSpeed = -1 private val currentSpeedPattern = " Speed: §r§f✦(?.*)".toPattern() @@ -51,7 +52,7 @@ class GardenOptimalSpeed { val gui = event.gui if (gui !is GuiEditSign) return if (!gui.isRancherSign()) return - config.optimalSpeedSignPosition.renderStringsAndItems( + config.signPosition.renderStringsAndItems( rancherOverlayList, posLabel = "Optimal Speed Rancher Overlay" ) @@ -86,15 +87,15 @@ class GardenOptimalSpeed { val text = "Optimal Speed: §f$optimalSpeed" if (optimalSpeed != currentSpeed) { - config.optimalSpeedPos.renderString("§c$text", posLabel = "Garden Optimal Speed") + config.pos.renderString("§c$text", posLabel = "Garden Optimal Speed") warn() } else { - config.optimalSpeedPos.renderString("§a$text", posLabel = "Garden Optimal Speed") + config.pos.renderString("§a$text", posLabel = "Garden Optimal Speed") } } private fun warn() { - if (!config.optimalSpeedWarning) return + if (!config.warning) return if (!Minecraft.getMinecraft().thePlayer.onGround) return if (GardenAPI.onBarnPlot) return if (System.currentTimeMillis() < lastWarnTime + 20_000) return @@ -106,6 +107,25 @@ class GardenOptimalSpeed { } } - private fun isRancherOverlayEnabled() = GardenAPI.inGarden() && config.optimalSpeedSignEnabled - private fun isEnabled() = GardenAPI.inGarden() && config.optimalSpeedEnabled + private fun isRancherOverlayEnabled() = GardenAPI.inGarden() && config.signEnabled + private fun isEnabled() = GardenAPI.inGarden() && config.enabled + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3,"garden.optimalSpeedEnabled", "garden.optimalSpeeds.enabled") + event.move(3,"garden.optimalSpeedWarning", "garden.optimalSpeeds.warning") + event.move(3,"garden.optimalSpeedSignEnabled", "garden.optimalSpeeds.signEnabled") + event.move(3,"garden.optimalSpeedSignPosition", "garden.optimalSpeeds.signPosition") + event.move(3,"garden.optimalSpeedPos", "garden.optimalSpeeds.pos") + event.move(3,"garden.optimalSpeedCustom.wheat", "garden.optimalSpeeds.customSpeed.wheat") + event.move(3,"garden.optimalSpeedCustom.carrot", "garden.optimalSpeeds.customSpeed.carrot") + event.move(3,"garden.optimalSpeedCustom.potato", "garden.optimalSpeeds.customSpeed.potato") + event.move(3,"garden.optimalSpeedCustom.netherWart", "garden.optimalSpeeds.customSpeed.netherWart") + event.move(3,"garden.optimalSpeedCustom.pumpkin", "garden.optimalSpeeds.customSpeed.pumpkin") + event.move(3,"garden.optimalSpeedCustom.melon", "garden.optimalSpeeds.customSpeed.melon") + event.move(3,"garden.optimalSpeedCustom.cocoaBeans", "garden.optimalSpeeds.customSpeed.cocoaBeans") + event.move(3,"garden.optimalSpeedCustom.sugarCane", "garden.optimalSpeeds.customSpeed.sugarCane") + event.move(3,"garden.optimalSpeedCustom.cactus", "garden.optimalSpeeds.customSpeed.cactus") + event.move(3,"garden.optimalSpeedCustom.mushroom", "garden.optimalSpeeds.customSpeed.mushroom") + } } \ No newline at end of file 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 c0cc75670..017cd8580 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/ToolTooltipTweaks.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.LorenzToolTipEvent import at.hannibal2.skyhanni.features.garden.FarmingFortuneDisplay.Companion.getAbilityFortune import at.hannibal2.skyhanni.features.garden.GardenAPI.getCropType @@ -18,7 +19,7 @@ import java.text.DecimalFormat import kotlin.math.roundToInt class ToolTooltipTweaks { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.tooltipTweak private val tooltipFortunePattern = "^§5§o§7Farming Fortune: §a\\+([\\d.]+)(?: §2\\(\\+\\d\\))?(?: §9\\(\\+(\\d+)\\))?$".toRegex() private val counterStartLine = setOf("§5§o§6Logarithmic Counter", "§5§o§6Collection Analysis") @@ -152,4 +153,11 @@ class ToolTooltipTweaks { add("$description${value.formatStat()}") } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3,"garden.compactToolTooltips", "garden.tooltipTweak.compactToolTooltips") + event.move(3,"garden.fortuneTooltipKeybind", "garden.tooltipTweak.fortuneTooltipKeybind") + event.move(3,"garden.cropTooltipFortune", "garden.tooltipTweak.cropTooltipFortune") + } } \ No newline at end of file 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 dede1d708..0e3540061 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 @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden.composter import at.hannibal2.skyhanni.SkyHanniMod +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 @@ -18,7 +19,7 @@ import kotlin.time.Duration.Companion.seconds import kotlin.time.DurationUnit class ComposterDisplay { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.composters private val hidden get() = GardenAPI.config private var display = emptyList>() private var composterEmptyTime: Duration? = null @@ -44,7 +45,7 @@ class ComposterDisplay { @SubscribeEvent fun onTabListUpdate(event: TabListUpdateEvent) { - if (!(config.composterDisplayEnabled && GardenAPI.inGarden())) return + if (!(config.displayEnabled && GardenAPI.inGarden())) return readData(event.tabList) @@ -137,21 +138,21 @@ class ComposterDisplay { } private fun sendNotify() { - if (!config.composterNotifyLowEnabled) return + if (!config.notifyLow.enabled) return val hidden = hidden ?: return - if (ComposterAPI.getOrganicMatter() <= config.composterNotifyLowOrganicMatter && System.currentTimeMillis() >= hidden.informedAboutLowMatter) { - if (config.composterNotifyLowTitle) { + if (ComposterAPI.getOrganicMatter() <= config.notifyLow.organicMatter && System.currentTimeMillis() >= hidden.informedAboutLowMatter) { + if (config.notifyLow.title) { LorenzUtils.sendTitle("§cYour Organic Matter is low", 4.seconds) } LorenzUtils.chat("§e[SkyHanni] §cYour Organic Matter is low!") hidden.informedAboutLowMatter = System.currentTimeMillis() + 60_000 * 5 } - if (ComposterAPI.getFuel() <= config.composterNotifyLowFuel && + if (ComposterAPI.getFuel() <= config.notifyLow.fuel && System.currentTimeMillis() >= hidden.informedAboutLowFuel ) { - if (config.composterNotifyLowTitle) { + if (config.notifyLow.title) { LorenzUtils.sendTitle("§cYour Fuel is low", 4.seconds) } LorenzUtils.chat("§e[SkyHanni] §cYour Fuel is low!") @@ -163,8 +164,8 @@ class ComposterDisplay { fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) { if (!LorenzUtils.inSkyBlock) return - if (GardenAPI.inGarden() && config.composterDisplayEnabled) { - config.composterDisplayPos.renderStringsAndItems(display, posLabel = "Composter Display") + if (GardenAPI.inGarden() && config.displayEnabled) { + config.displayPos.renderStringsAndItems(display, posLabel = "Composter Display") } checkWarningsAndOutsideGarden() @@ -186,14 +187,14 @@ class ComposterDisplay { } } else "?" - if (!GardenAPI.inGarden() && config.composterDisplayOutsideGarden) { + if (!GardenAPI.inGarden() && config.displayOutsideGarden) { val list = Collections.singletonList(listOf(NEUItems.getItemStack("BUCKET", true), "§b$format")) - config.composterOutsideGardenPos.renderStringsAndItems(list, posLabel = "Composter Outside Garden Display") + config.outsideGardenPos.renderStringsAndItems(list, posLabel = "Composter Outside Garden Display") } } private fun warn(warningMessage: String) { - if (!config.composterWarnAlmostClose) return + if (!config.warnAlmostClose) return val storage = GardenAPI.config ?: return if (LorenzUtils.inDungeons) return @@ -204,4 +205,18 @@ class ComposterDisplay { LorenzUtils.chat("§e[SkyHanni] $warningMessage") LorenzUtils.sendTitle("§eComposter Warning!", 3.seconds) } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "garden.composterDisplayEnabled", "garden.composters.displayEnabled") + event.move(3, "garden.composterDisplayOutsideGarden", "garden.composters.displayOutsideGarden") + event.move(3, "garden.composterWarnAlmostClose", "garden.composters.warnAlmostClose") + event.move(3, "garden.composterDisplayPos", "garden.composters.displayPos") + event.move(3, "garden.composterOutsideGardenPos", "garden.composters.outsideGardenPos") + event.move(3, "garden.composterNotifyLowEnabled", "garden.composters.notifyLow.enabled") + event.move(3, "garden.composterNotifyLowEnabled", "garden.composters.notifyLow.enabled") + event.move(3, "garden.composterNotifyLowTitle", "garden.composters.notifyLow.title") + event.move(3, "garden.composterNotifyLowOrganicMatter", "garden.composters.notifyLow.organicMatter") + event.move(3, "garden.composterNotifyLowFuel", "garden.composters.notifyLow.fuel") + } } \ No newline at end of file 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 11680d0a0..103f235c5 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 @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden.composter import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.RenderInventoryItemTipEvent import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.utils.ItemUtils.getLore @@ -17,7 +18,7 @@ class ComposterInventoryNumbers { @SubscribeEvent fun onRenderItemTip(event: RenderInventoryItemTipEvent) { if (!GardenAPI.inGarden()) return - if (!SkyHanniMod.feature.garden.composterInventoryNumbers) return + if (!SkyHanniMod.feature.garden.composters.inventoryNumbers) return if (event.inventoryName != "Composter") return @@ -66,4 +67,9 @@ class ComposterInventoryNumbers { } } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "garden.composterInventoryNumbers", "garden.composters.inventoryNumbers") + } } \ No newline at end of file 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 83da09fd5..aa1fc4d28 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 @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden.composter import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.SackAPI import at.hannibal2.skyhanni.data.model.ComposterUpgrade import at.hannibal2.skyhanni.events.GuiRenderEvent @@ -49,7 +50,7 @@ class ComposterOverlay { private var organicMatterFactors: Map = emptyMap() private var fuelFactors: Map = emptyMap() - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.composters private var organicMatterDisplay = emptyList>() private var fuelExtraDisplay = emptyList>() @@ -119,7 +120,7 @@ class ComposterOverlay { @SubscribeEvent fun onInventoryOpen(event: InventoryFullyOpenedEvent) { if (!GardenAPI.inGarden()) return - if (!config.composterOverlay) return + if (!config.overlay) return inComposter = event.inventoryName == "Composter" inComposterUpgrades = event.inventoryName == "Composter Upgrades" if (!inComposter && !inComposterUpgrades) return @@ -399,7 +400,7 @@ class ComposterOverlay { val item = NEUItems.getItemStack(internalName) val itemName = item.name!! val price = getPrice(internalName) - val itemsNeeded = if (config.composterRoundDown) { + val itemsNeeded = if (config.roundDown) { val amount = missing / factor if (amount > .75 && amount < 1.0) { 1.0 @@ -444,7 +445,7 @@ class ComposterOverlay { private fun retrieveMaterials(internalName: String, itemName: String, itemsNeeded: Int) { if (itemsNeeded == 0 || internalName == "BIOFUEL") return - if (config.composterOverlayRetrieveFrom == 0 && !LorenzUtils.noTradeMode) { + if (config.retrieveFrom == 0 && !LorenzUtils.noTradeMode) { BazaarApi.searchForBazaarItem(itemName, itemsNeeded) return } @@ -489,7 +490,7 @@ class ComposterOverlay { } private fun getPrice(internalName: String): Double { - val useSellPrice = config.composterOverlayPriceType == 1 + val useSellPrice = config.overlayPriceType == 1 val price = NEUItems.getPrice(internalName, useSellPrice) if (internalName == "BIOFUEL" && price > 20_000) return 20_000.0 @@ -549,11 +550,11 @@ class ComposterOverlay { @SubscribeEvent fun onBackgroundDraw(event: GuiRenderEvent.ChestGuiOverlayRenderEvent) { if (inInventory) { - config.composterOverlayOrganicMatterPos.renderStringsAndItems( + config.overlayOrganicMatterPos.renderStringsAndItems( organicMatterDisplay, posLabel = "Composter Overlay Organic Matter" ) - config.composterOverlayFuelExtrasPos.renderStringsAndItems( + config.overlayFuelExtrasPos.renderStringsAndItems( fuelExtraDisplay, posLabel = "Composter Overlay Fuel Extras" ) @@ -565,4 +566,14 @@ class ComposterOverlay { HOUR("Hour", 60 * 60), DAY("Day", 60 * 60 * 24), } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "garden.composterOverlay", "garden.composters.overlay") + event.move(3, "garden.composterOverlayPriceType", "garden.composters.overlayPriceType") + event.move(3, "garden.composterOverlayRetrieveFrom", "garden.composters.retrieveFrom") + event.move(3, "garden.composterOverlayOrganicMatterPos", "garden.composters.overlayOrganicMatterPos") + event.move(3, "garden.composterOverlayFuelExtrasPos", "garden.composters.overlayFuelExtrasPos") + event.move(3, "garden.composterRoundDown", "garden.composters.roundDown") + } } \ No newline at end of file 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 26b070935..cb74cfde5 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 @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden.composter import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.utils.InventoryUtils @@ -18,12 +19,12 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class GardenComposterInventoryFeatures { - private val config get() = SkyHanniMod.feature.garden + private val config get() = SkyHanniMod.feature.garden.composters @SubscribeEvent fun onTooltip(event: ItemTooltipEvent) { if (!GardenAPI.inGarden()) return - if (!config.composterUpgradePrice) return + if (!config.upgradePrice) return if (InventoryUtils.openInventoryName() != "Composter Upgrades") return @@ -77,7 +78,7 @@ class GardenComposterInventoryFeatures { @SubscribeEvent fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) { if (!LorenzUtils.inSkyBlock) return - if (!config.composterHighLightUpgrade) return + if (!config.highlightUpgrade) return if (InventoryUtils.openInventoryName() == "Composter Upgrades") { if (event.gui !is GuiChest) return @@ -95,4 +96,10 @@ class GardenComposterInventoryFeatures { } } } + + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3, "garden.composterUpgradePrice", "garden.composters.upgradePrice") + event.move(3, "garden.composterHighLightUpgrade", "garden.composters.highlightUpgrade") + } } \ No newline at end of file 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 beb210cdc..e02b358b9 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 @@ -106,7 +106,7 @@ class JacobContestFFNeededDisplay { private fun formatFarmingFortune(farmingFortune: Double): String { var ff = farmingFortune - if (!config.farmingFortuneDropMultiplier) { + if (!config.farmingFortunes.dropMultiplier) { ff -= 100 if (ff < 100) { ff = 0.0 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 55d8bd66e..bb4b36d3e 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 @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.features.garden.contest import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.events.GuiRenderItemEvent import at.hannibal2.skyhanni.events.InventoryCloseEvent @@ -24,7 +25,7 @@ class JacobFarmingContestsInventory { private val formatDay = SimpleDateFormat("dd MMMM yyyy", Locale.US) private val formatTime = SimpleDateFormat("HH:mm", Locale.US) - private val config get() = SkyHanniMod.feature.inventory + private val config get() = SkyHanniMod.feature.inventory.jacobFarmingContests // Render the contests a tick delayed to feel smoother private var hideEverything = true @@ -55,7 +56,7 @@ class JacobFarmingContestsInventory { } val time = FarmingContestAPI.getSbTimeFor(name) ?: continue FarmingContestAPI.addContest(time, item) - if (config.jacobFarmingContestRealTime) { + if (config.realTime) { readRealTime(time, slot) } } @@ -73,7 +74,7 @@ class JacobFarmingContestsInventory { fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) { if (!LorenzUtils.inSkyBlock) return if (!InventoryUtils.openInventoryName().contains("Your Contests")) return - if (!config.jacobFarmingContestHighlightRewards) return + if (!config.highlightRewards) return // hide green border for a tick if (hideEverything) return @@ -98,7 +99,7 @@ class JacobFarmingContestsInventory { if (!InventoryUtils.openInventoryName().contains("Your Contests")) return val slot = event.slot.slotNumber - if (config.jacobFarmingContestRealTime) { + if (config.realTime) { realTime[slot]?.let { val toolTip = event.toolTip if (toolTip.size > 1) { @@ -111,7 +112,7 @@ class JacobFarmingContestsInventory { @SubscribeEvent fun onRenderItemOverlayPost(event: GuiRenderItemEvent.RenderOverlayEvent.GuiRenderItemPost) { if (!LorenzUtils.inSkyBlock) return - if (!config.jacobFarmingContestMedalIcon) return + if (!config.medalIcon) return if (!InventoryUtils.openInventoryName().contains("Your Contests")) return val stack = event.stack ?: return @@ -129,7 +130,7 @@ class JacobFarmingContestsInventory { var y = event.y + 1 var scale = .7f - if (finneganContest && config.jacobFarmingContestFinneganIcon) { + if (finneganContest && config.finneganIcon) { stackTip = "§${medalEarned.color}▲" x = event.x + 5 y = event.y - 2 @@ -140,4 +141,12 @@ class JacobFarmingContestsInventory { } } } + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent){ + event.move(3,"inventory.jacobFarmingContestHighlightRewards","inventory.jacobFarmingContests.highlightRewards") + event.move(3,"inventory.jacobFarmingContestHideDuplicates","inventory.jacobFarmingContests.hideDuplicates") + event.move(3,"inventory.jacobFarmingContestRealTime","inventory.jacobFarmingContests.rea