diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-11-02 23:30:22 +0100 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-11-02 23:30:22 +0100 |
commit | 27f0b207793ddedf406fd56521d0ae0537279661 (patch) | |
tree | 86eac7c15b1253536db7b781acc7019f0196bc64 /src/main/java/at/hannibal2/skyhanni/features/misc | |
parent | d3e11684c9efb0635f5199183f9b97ff748c54be (diff) | |
download | skyhanni-27f0b207793ddedf406fd56521d0ae0537279661.tar.gz skyhanni-27f0b207793ddedf406fd56521d0ae0537279661.tar.bz2 skyhanni-27f0b207793ddedf406fd56521d0ae0537279661.zip |
code cleanup
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/InGameDateDisplay.kt | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/InGameDateDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/InGameDateDisplay.kt index 1874d1143..1b08e7ebd 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/InGameDateDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/InGameDateDisplay.kt @@ -4,23 +4,33 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.data.ScoreboardData import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzTickEvent +import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.RenderUtils.renderString -import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TimeUtils.formatted +import at.hannibal2.skyhanni.utils.jsonobjects.TabListJson import io.github.moulberry.notenoughupdates.util.SkyBlockTime import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class InGameDateDisplay { - private val config get() = SkyHanniMod.feature.gui.inGameDateConfig - private val monthAndDatePattern = ".*((Early|Late) )?(Winter|Spring|Summer|Autumn) [0-9]{1,2}(nd|rd|th|st).*".toPattern() + private val config get() = SkyHanniMod.feature.gui.inGameDate + private val monthAndDatePattern = + ".*((Early|Late) )?(Winter|Spring|Summer|Autumn) [0-9]{1,2}(nd|rd|th|st).*".toPattern() private var display = "" + // sun, moon, spooky + private var sunMoonIcons = emptyList<String>() + + @SubscribeEvent + fun onRepoReload(event: RepositoryReloadEvent) { + sunMoonIcons = event.getConstant<TabListJson>("TabList").sun_moon_symbols + } + @SubscribeEvent fun onTick(event: LorenzTickEvent) { if (!isEnabled()) return - if (!LorenzUtils.inSkyBlock) return if (!config.useScoreboard && !event.repeatSeconds(config.refreshSeconds)) return if (config.useScoreboard && !event.repeatSeconds(1)) return @@ -33,16 +43,17 @@ class InGameDateDisplay { if (config.useScoreboard) { val list = ScoreboardData.sidebarLinesFormatted //we need this to grab the moon/sun symbol val year = "Year ${date.year}" - var monthAndDate = "??" //initalize as "??" as fallback value in case none of the scoreboard lines match - for (line in list) { monthAndDatePattern.matchMatcher(line) { monthAndDate = line } } - val time = list.find{ it.lowercase().contains("am ") || it.lowercase().contains("pm ") } ?: "??" + val monthAndDate = list.find { monthAndDatePattern.matches(it) } ?: "??" + val time = list.find { it.lowercase().contains("am ") || it.lowercase().contains("pm ") } ?: "??" theBaseString = "$monthAndDate, $year ${time.trim()}".removeColor() - if (!config.includeSunMoon) theBaseString = theBaseString.replace("☽", "").replace("☀", "").replace("࿇", "") + if (!config.includeSunMoon) { + sunMoonIcons.forEach { theBaseString = theBaseString.replace(it, "") } + } } else { theBaseString = date.formatted() if (config.includeSunMoon) { - if ((date.hour >= 6) && (date.hour < 17)) theBaseString = "$theBaseString ☀" - else theBaseString = "$theBaseString ☽" + theBaseString = if ((date.hour >= 6) && (date.hour < 17)) "$theBaseString ☀" + else "$theBaseString ☽" } } display = theBaseString |