diff --git a/NOTICE.md b/NOTICE.md index 8f20c6ce..62287a8b 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -1,6 +1,6 @@ ## Third-Party Code Attributions -This project includes code adapted from the following third-party projects. +This project includes code adapted from the following third-party projects. The listed files under each project retain the original license of the source project. ### Firmament @@ -24,11 +24,10 @@ The listed files under each project retain the original license of the source pr - **License**: [GNU Lesser General Public License v2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) - **Files**: - `src/main/java/me/nobaboy/nobaaddons/init/AutoDiscoveryMixinPlugin.java` - - `src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockTime.kt` - - `src/main/kotlin/me/nobaboy/nobaaddons/utils/Timestamp.kt` + - `src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockTime.kt` - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/BezierCurve.kt` - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/BezierFitter.kt` - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/Matrix.kt` - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/ParticlePathFitter.kt` - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/PolynomialFitter.kt` - - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/PolynomialUtils.kt` + - `src/main/kotlin/me/nobaboy/nobaaddons/utils/math/PolynomialUtils.kt` \ No newline at end of file diff --git a/src/main/java/me/nobaboy/nobaaddons/mixins/events/ChatMessageEventsMixin_ChatHud.java b/src/main/java/me/nobaboy/nobaaddons/mixins/events/ChatMessageEventsMixin_ChatHud.java index 5ec7dc92..2046d8b4 100644 --- a/src/main/java/me/nobaboy/nobaaddons/mixins/events/ChatMessageEventsMixin_ChatHud.java +++ b/src/main/java/me/nobaboy/nobaaddons/mixins/events/ChatMessageEventsMixin_ChatHud.java @@ -3,7 +3,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents; -import me.nobaboy.nobaaddons.utils.chat.Message; +import me.nobaboy.nobaaddons.utils.mc.chat.Message; import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.client.gui.hud.ChatHudLine; import net.minecraft.client.gui.hud.MessageIndicator; diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/NobaAddons.kt b/src/main/kotlin/me/nobaboy/nobaaddons/NobaAddons.kt index 2086f94f..5db822ec 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/NobaAddons.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/NobaAddons.kt @@ -15,11 +15,11 @@ import me.nobaboy.nobaaddons.generated.NobaAddonsCoreModules import me.nobaboy.nobaaddons.generated.NobaAddonsModules import me.nobaboy.nobaaddons.utils.CommonText import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.TextUtils.blue -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.darkGray -import me.nobaboy.nobaaddons.utils.TextUtils.literal +import me.nobaboy.nobaaddons.utils.mc.TextUtils.blue +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkGray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.literal import net.fabricmc.api.ClientModInitializer import net.fabricmc.loader.api.FabricLoader import net.fabricmc.loader.api.Version @@ -62,5 +62,4 @@ object NobaAddons : ClientModInitializer { NobaAddonsApis NobaAddonsModules } - } \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/HypixelAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/HypixelAPI.kt index 2e4aedfe..5cc5999b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/HypixelAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/HypixelAPI.kt @@ -1,8 +1,8 @@ package me.nobaboy.nobaaddons.api import me.nobaboy.nobaaddons.events.impl.HypixelEvents -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.annotations.ApiModule +import me.nobaboy.nobaaddons.utils.mc.MCUtils import net.hypixel.data.type.ServerType import net.hypixel.modapi.HypixelModAPI import net.hypixel.modapi.handler.ClientboundPacketHandler diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/InventoryAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/InventoryAPI.kt index 8a61bed3..6e3de697 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/InventoryAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/InventoryAPI.kt @@ -4,6 +4,7 @@ package me.nobaboy.nobaaddons.api /*import me.nobaboy.nobaaddons.mixins.accessors.PlayerInventoryAccessor *///?} +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.data.InventoryData @@ -11,10 +12,11 @@ import me.nobaboy.nobaaddons.events.impl.client.InventoryEvents import me.nobaboy.nobaaddons.events.impl.client.PacketEvents import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.events.impl.client.WorldEvents -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.annotations.ApiModule +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral import net.minecraft.client.gui.screen.ChatScreen import net.minecraft.entity.player.PlayerInventory import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket @@ -34,11 +36,11 @@ object InventoryAPI { private var currentInventory: InventoryData? = null private var currentWindow: Window? = null - private var inventorySuppressTime = Timestamp.distantPast() + private var inventorySuppressTime = Instant.DISTANT_PAST private var previousItemCounts: Map? = null val itemLog = ConcurrentHashMap() - private fun shouldSuppressItemLogUpdate(): Boolean = inventorySuppressTime.elapsedSeconds() < 2 + private fun shouldSuppressItemLogUpdate(): Boolean = inventorySuppressTime.elapsedSince().inWholeSeconds < 2 init { TickEvents.every(5, this::onQuarterSecond) @@ -62,7 +64,7 @@ object InventoryAPI { } itemLog.entries.removeIf { (_, diff) -> - diff.timestamp.elapsedSeconds() > NobaConfig.inventory.itemPickupLog.timeoutSeconds + diff.timestamp.elapsedSince().inWholeSeconds > NobaConfig.inventory.itemPickupLog.timeoutSeconds } } @@ -121,7 +123,7 @@ object InventoryAPI { private fun debounceItemLog() { previousItemCounts = null - inventorySuppressTime = Timestamp.now() + inventorySuppressTime = Instant.now } private fun close(sameName: Boolean = false) { @@ -145,7 +147,7 @@ object InventoryAPI { if(diff.change == 0) continue val logDiff = itemLog.getOrPut(name) { ItemDiff(name) } logDiff.change += diff.change - logDiff.timestamp = Timestamp.now() + logDiff.timestamp = Instant.now } } @@ -191,6 +193,6 @@ object InventoryAPI { data class ItemDiff( val name: Text, var change: Int = 0, - var timestamp: Timestamp = Timestamp.now(), + var timestamp: Instant = Instant.now, ) } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/PartyAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/PartyAPI.kt index 7526666b..3f65e07b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/PartyAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/PartyAPI.kt @@ -14,13 +14,13 @@ import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.repo.Repo import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.CooldownManager -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.toText import me.nobaboy.nobaaddons.utils.annotations.ApiModule import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents import net.hypixel.modapi.HypixelModAPI import net.hypixel.modapi.packet.impl.clientbound.ClientboundPartyInfoPacket @@ -73,10 +73,6 @@ object PartyAPI { HypixelModAPI.getInstance().listen(this::onPartyData) } - fun refreshPartyList() { - refreshPartyList = true - } - private fun onTick(cooldownManager: CooldownManager) { if(refreshPartyList && HypixelAPI.onHypixel) { getPartyInfo() @@ -148,4 +144,8 @@ object PartyAPI { ChatUtils.addMessage(text, prefix = false) } } + + fun refreshPartyList() { + refreshPartyList = true + } } \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/DungeonsAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/DungeonsAPI.kt index a2f3a5dd..5a5423db 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/DungeonsAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/DungeonsAPI.kt @@ -9,11 +9,11 @@ import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch -import me.nobaboy.nobaaddons.utils.ScoreboardUtils import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting import me.nobaboy.nobaaddons.utils.annotations.ApiModule +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.ScoreboardUtils @ApiModule object DungeonsAPI { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/MayorAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/MayorAPI.kt index 8d15a143..1691ec0e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/MayorAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/MayorAPI.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.api.skyblock +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.NobaAddons import me.nobaboy.nobaaddons.core.mayor.Mayor import me.nobaboy.nobaaddons.core.mayor.MayorPerk @@ -8,19 +9,20 @@ import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.client.InventoryEvents import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.CollectionUtils.nextAfter import me.nobaboy.nobaaddons.utils.HTTPUtils import me.nobaboy.nobaaddons.utils.RegexUtils.getGroupFromFullMatch -import me.nobaboy.nobaaddons.utils.SkyBlockTime -import me.nobaboy.nobaaddons.utils.SkyBlockTime.Companion.SKYBLOCK_YEAR_MILLIS import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.TextUtils.runCommand -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.asTimestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.isFuture +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.annotations.ApiModule -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.collections.CollectionUtils.nextAfter +import me.nobaboy.nobaaddons.utils.hypixel.SkyBlockTime +import me.nobaboy.nobaaddons.utils.hypixel.SkyBlockTime.Companion.SKYBLOCK_YEAR_MILLIS import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore import me.nobaboy.nobaaddons.utils.items.ItemUtils.stringLines +import me.nobaboy.nobaaddons.utils.mc.TextUtils.runCommand +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import kotlin.time.Duration.Companion.hours import kotlin.time.Duration.Companion.milliseconds @@ -42,7 +44,7 @@ object MayorAPI { var suppressAutoUpdate: Boolean = false set(value) { field = value - lastUpdate = Timestamp.distantPast() + lastUpdate = Instant.DISTANT_PAST } var currentMayor: ActiveMayor = Mayor.UNKNOWN.withNone() @@ -50,13 +52,13 @@ object MayorAPI { var currentMinister: ActiveMayor = Mayor.UNKNOWN.withNone() internal set - var jerryMayor: Pair = Mayor.UNKNOWN.withNone() to Timestamp.distantPast() + var jerryMayor: Pair = Mayor.UNKNOWN.withNone() to Instant.DISTANT_PAST internal set private var lastMayor: ActiveMayor? = null - private var nextMayorTimestamp = Timestamp.distantPast() + private var nextMayorTimestamp = Instant.DISTANT_PAST - private var lastUpdate = Timestamp.distantPast() + private var lastUpdate = Instant.DISTANT_PAST private val shouldUpdate: Boolean get() = !suppressAutoUpdate && lastUpdate.elapsedSince() > 20.minutes fun Mayor.isElected(): Boolean = currentMayor.mayor == this @@ -75,13 +77,13 @@ object MayorAPI { if(!SkyBlockAPI.inSkyBlock) return if(shouldUpdate) NobaAddons.runAsync { getCurrentMayor() } - nextMayorTimestamp = SkyBlockTime(SkyBlockTime.now().getElectionYear() + 1, ELECTION_END_MONTH, ELECTION_END_DAY).asTimestamp() + nextMayorTimestamp = SkyBlockTime(SkyBlockTime.now().getElectionYear() + 1, ELECTION_END_MONTH, ELECTION_END_DAY).toInstant() if(!Mayor.JERRY.isElected()) return if(jerryMayor.first.mayor == Mayor.UNKNOWN) return if(jerryMayor.second.isFuture()) return - jerryMayor = Mayor.UNKNOWN.withNone() to Timestamp.distantPast() + jerryMayor = Mayor.UNKNOWN.withNone() to Instant.DISTANT_PAST ChatUtils.addMessage(tr("nobaaddons.mayorApi.jerryMayorExpired", "The Perkpocalypse Mayor has expired! Click here to get the new mayor.").runCommand("/calendar")) } @@ -118,7 +120,7 @@ object MayorAPI { } private suspend fun getCurrentMayor() { - lastUpdate = Timestamp.now() + lastUpdate = Instant.now val election = HTTPUtils.fetchJson(ELECTION_API_URL).await() val mayor = election.mayor diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SkyBlockAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SkyBlockAPI.kt index cd5fcf11..2a349140 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SkyBlockAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SkyBlockAPI.kt @@ -17,12 +17,12 @@ import me.nobaboy.nobaaddons.utils.RegexUtils.forEachFullMatch import me.nobaboy.nobaaddons.utils.RegexUtils.getGroupFromFirstFullMatch import me.nobaboy.nobaaddons.utils.RegexUtils.getGroupFromFullMatch import me.nobaboy.nobaaddons.utils.Scheduler -import me.nobaboy.nobaaddons.utils.ScoreboardUtils -import me.nobaboy.nobaaddons.utils.SkyBlockSeason -import me.nobaboy.nobaaddons.utils.SkyBlockTime import me.nobaboy.nobaaddons.utils.annotations.ApiModule +import me.nobaboy.nobaaddons.utils.hypixel.SkyBlockSeason +import me.nobaboy.nobaaddons.utils.hypixel.SkyBlockTime import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore import me.nobaboy.nobaaddons.utils.items.ItemUtils.stringLines +import me.nobaboy.nobaaddons.utils.mc.ScoreboardUtils import net.hypixel.data.type.GameType import java.util.UUID import kotlin.uuid.ExperimentalUuidApi diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SlayerAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SlayerAPI.kt index 38cbdfaa..9a3115df 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SlayerAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/SlayerAPI.kt @@ -8,13 +8,13 @@ import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SlayerEvents import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.CollectionUtils.nextAfter import me.nobaboy.nobaaddons.utils.CommonPatterns -import me.nobaboy.nobaaddons.utils.EntityUtils -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch -import me.nobaboy.nobaaddons.utils.ScoreboardUtils import me.nobaboy.nobaaddons.utils.annotations.ApiModule +import me.nobaboy.nobaaddons.utils.collections.CollectionUtils.nextAfter +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.ScoreboardUtils import net.minecraft.entity.LivingEntity import net.minecraft.entity.decoration.ArmorStandEntity import net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/hoppity/HoppityAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/hoppity/HoppityAPI.kt index e2895ba9..908c0fd6 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/hoppity/HoppityAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/hoppity/HoppityAPI.kt @@ -3,9 +3,9 @@ package me.nobaboy.nobaaddons.api.skyblock.events.hoppity import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.inIsland import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.isSeason import me.nobaboy.nobaaddons.core.SkyBlockIsland -import me.nobaboy.nobaaddons.utils.InventoryUtils -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.SkyBlockSeason +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.hypixel.SkyBlockSeason import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId object HoppityAPI { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/BurrowAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/BurrowAPI.kt index d15a6087..836ed738 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/BurrowAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/BurrowAPI.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.api.skyblock.events.mythological +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.events.MythologicalMobs import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents @@ -9,13 +10,14 @@ import me.nobaboy.nobaaddons.events.impl.skyblock.MythologicalEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.features.events.mythological.BurrowType import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.BlockUtils.getBlockAt import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch import me.nobaboy.nobaaddons.utils.Scheduler -import me.nobaboy.nobaaddons.utils.TimedSet -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.annotations.ApiModule +import me.nobaboy.nobaaddons.utils.collections.TimedSet +import me.nobaboy.nobaaddons.utils.mc.BlockUtils.getBlockAt import net.minecraft.block.Blocks import net.minecraft.particle.ParticleTypes import kotlin.time.Duration.Companion.minutes @@ -38,7 +40,7 @@ object BurrowAPI { private var fakeBurrow: NobaVec? = null var mobBurrow: NobaVec? = null - private var lastBurrowChatMessage = Timestamp.distantPast() + private var lastBurrowChatMessage = Instant.DISTANT_PAST init { SkyBlockEvents.ISLAND_CHANGE.register { reset() } @@ -95,17 +97,17 @@ object BurrowAPI { val message = event.cleaned - if(message == DEFEAT_MOBS_MESSAGE) lastBurrowChatMessage = Timestamp.now() + if(message == DEFEAT_MOBS_MESSAGE) lastBurrowChatMessage = Instant.now DIG_BURROW_PATTERN.onFullMatch(message) { - lastBurrowChatMessage = Timestamp.now() + lastBurrowChatMessage = Instant.now if(lastDugBurrow?.let { tryDigBurrow(it) } != true) return fakeBurrow = lastDugBurrow return } DIG_MOB_PATTERN.onFullMatch(message) { - lastBurrowChatMessage = Timestamp.now() + lastBurrowChatMessage = Instant.now mobBurrow = lastDugBurrow val mob = MythologicalMobs.getByName(groups["mob"]?.value ?: return) ?: return diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/DianaAPI.kt b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/DianaAPI.kt index 6c704cb1..6f3d6e00 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/DianaAPI.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/api/skyblock/events/mythological/DianaAPI.kt @@ -4,7 +4,7 @@ import me.nobaboy.nobaaddons.api.skyblock.MayorAPI.isActive import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.inIsland import me.nobaboy.nobaaddons.core.SkyBlockIsland import me.nobaboy.nobaaddons.core.mayor.MayorPerk -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId import net.minecraft.entity.player.PlayerEntity diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/CalculateCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/CalculateCommands.kt index 930a6aea..6b6a2623 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/CalculateCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/CalculateCommands.kt @@ -10,22 +10,22 @@ import me.nobaboy.nobaaddons.core.Rarity import me.nobaboy.nobaaddons.core.Skill import me.nobaboy.nobaaddons.core.SkillData import me.nobaboy.nobaaddons.core.mayor.MayorPerk -import me.nobaboy.nobaaddons.utils.CollectionUtils.getOrLast import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators import me.nobaboy.nobaaddons.utils.NumberUtils.million import me.nobaboy.nobaaddons.utils.NumberUtils.parseDoubleOrNull import me.nobaboy.nobaaddons.utils.StringUtils.asDuration import me.nobaboy.nobaaddons.utils.StringUtils.isNumeric -import me.nobaboy.nobaaddons.utils.TextUtils.aqua -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.gold -import me.nobaboy.nobaaddons.utils.TextUtils.green -import me.nobaboy.nobaaddons.utils.TextUtils.red -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.withColor -import me.nobaboy.nobaaddons.utils.TextUtils.yellow -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.collections.CollectionUtils.getOrLast +import me.nobaboy.nobaaddons.utils.mc.TextUtils.aqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.green +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.withColor +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/HypixelChatCommandMocks.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/HypixelChatCommandMocks.kt index 6098edd9..6be6ee6a 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/HypixelChatCommandMocks.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/HypixelChatCommandMocks.kt @@ -5,9 +5,9 @@ import dev.celestialfault.commander.annotations.Command import dev.celestialfault.commander.annotations.Greedy import me.nobaboy.nobaaddons.commands.impl.CommandUtil import me.nobaboy.nobaaddons.commands.impl.NobaClientCommand -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource import net.fabricmc.loader.api.FabricLoader diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/InstanceCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/InstanceCommands.kt index 246b952b..0f4645e7 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/InstanceCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/InstanceCommands.kt @@ -3,8 +3,8 @@ package me.nobaboy.nobaaddons.commands import com.mojang.brigadier.CommandDispatcher import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap import me.nobaboy.nobaaddons.commands.impl.Context -import me.nobaboy.nobaaddons.utils.TextUtils.darkGray -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkGray +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/InternalCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/InternalCommands.kt index 078cf72e..c6940539 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/InternalCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/InternalCommands.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.commands import dev.celestialfault.commander.annotations.Command import dev.celestialfault.commander.annotations.Group import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils @Suppress("unused") @Group("internal") diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/NobaCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/NobaCommand.kt index 0747a5b0..c6b6ff69 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/NobaCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/NobaCommand.kt @@ -19,13 +19,13 @@ import me.nobaboy.nobaaddons.screens.NobaHudScreen import me.nobaboy.nobaaddons.screens.NobaMainScreen import me.nobaboy.nobaaddons.screens.keybinds.KeyBindsScreen import me.nobaboy.nobaaddons.screens.notifications.ChatNotificationsScreen -import me.nobaboy.nobaaddons.utils.LocationUtils -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.MCUtils.day import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators -import me.nobaboy.nobaaddons.utils.PingUtils -import me.nobaboy.nobaaddons.utils.ScreenUtils.queueOpen -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.LocationUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils.day +import me.nobaboy.nobaaddons.utils.mc.PingUtils +import me.nobaboy.nobaaddons.utils.mc.ScreenUtils.queueOpen +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/RepoCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/RepoCommands.kt index 8fe1b771..345f7eaa 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/RepoCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/RepoCommands.kt @@ -3,10 +3,10 @@ package me.nobaboy.nobaaddons.commands import dev.celestialfault.commander.annotations.Command import dev.celestialfault.commander.annotations.Group import me.nobaboy.nobaaddons.repo.RepoManager -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.openUrl -import me.nobaboy.nobaaddons.utils.TextUtils.underline -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.openUrl +import me.nobaboy.nobaaddons.utils.mc.TextUtils.underline +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/SWikiCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/SWikiCommand.kt index 1c21a4a6..5cc04104 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/SWikiCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/SWikiCommand.kt @@ -8,9 +8,9 @@ import me.nobaboy.nobaaddons.commands.impl.CommandUtil import me.nobaboy.nobaaddons.commands.impl.NobaClientCommand import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.utils.StringUtils.title -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.openUrl -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.openUrl +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/DebugCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/DebugCommands.kt index 357592d9..be56ffa5 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/DebugCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/DebugCommands.kt @@ -18,14 +18,14 @@ import me.nobaboy.nobaaddons.core.PersistentCache import me.nobaboy.nobaaddons.core.UpdateNotifier import me.nobaboy.nobaaddons.core.profile.ProfileData import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor.Companion.toNobaColor import me.nobaboy.nobaaddons.utils.StringUtils -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.toText import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.Message +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.Message import me.nobaboy.nobaaddons.utils.render.EntityOverlay import me.nobaboy.nobaaddons.utils.render.EntityOverlay.highlight import me.nobaboy.nobaaddons.utils.sound.SoundUtils diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/HudDebugCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/HudDebugCommands.kt index 35a243db..e841a164 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/HudDebugCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/HudDebugCommands.kt @@ -6,7 +6,7 @@ import me.nobaboy.nobaaddons.ui.ElementAlignment import me.nobaboy.nobaaddons.ui.TextHudElement import me.nobaboy.nobaaddons.ui.UIManager import me.nobaboy.nobaaddons.ui.data.GenericTextElement -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import net.minecraft.client.gui.DrawContext import net.minecraft.text.Text import net.minecraft.util.math.ColorHelper.channelFromFloat diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/ItemDebugCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/ItemDebugCommands.kt index 71720c66..ba16bbde 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/ItemDebugCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/ItemDebugCommands.kt @@ -5,10 +5,11 @@ import dev.celestialfault.commander.annotations.Group import dev.celestialfault.commander.annotations.RootCommand import me.nobaboy.nobaaddons.commands.debug.DebugCommands.dumpInfo import me.nobaboy.nobaaddons.commands.impl.Context -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.darkAqua -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkAqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem import me.nobaboy.nobaaddons.utils.items.ItemUtils.isSkyBlockItem import net.minecraft.command.argument.NbtPathArgumentType diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/MayorDebugCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/MayorDebugCommands.kt index c2505af2..187a975b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/MayorDebugCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/MayorDebugCommands.kt @@ -3,6 +3,7 @@ package me.nobaboy.nobaaddons.commands.debug import dev.celestialfault.commander.annotations.Command import dev.celestialfault.commander.annotations.Group import dev.celestialfault.commander.annotations.RootCommand +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.MayorAPI import me.nobaboy.nobaaddons.commands.debug.DebugCommands.dumpInfo import me.nobaboy.nobaaddons.commands.impl.CommandUtil @@ -11,14 +12,13 @@ import me.nobaboy.nobaaddons.commands.impl.Context import me.nobaboy.nobaaddons.core.mayor.Mayor import me.nobaboy.nobaaddons.core.mayor.MayorPerk import me.nobaboy.nobaaddons.utils.JavaUtils -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.underline -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.underline import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import net.minecraft.text.Text import net.minecraft.text.Texts @@ -85,7 +85,7 @@ object MayorDebugCommands { MayorAPI.suppressAutoUpdate = true MayorAPI.currentMayor = Mayor.JERRY.withAll() MayorAPI.currentMinister = Mayor.UNKNOWN.withNone() - MayorAPI.jerryMayor = mayor.withAll() to Timestamp.distantFuture() + MayorAPI.jerryMayor = mayor.withAll() to Instant.DISTANT_PAST ChatUtils.addMessage("Assuming Jerry mayor with $mayor perks") } } \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/PetDebugCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/PetDebugCommands.kt index 3ac4e1b5..a13ed3c5 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/PetDebugCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/debug/PetDebugCommands.kt @@ -11,9 +11,9 @@ import me.nobaboy.nobaaddons.commands.impl.Context import me.nobaboy.nobaaddons.core.Rarity import me.nobaboy.nobaaddons.core.Rarity.Companion.rarityFormatted import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import net.minecraft.text.Text @Suppress("unused") diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/commands/impl/CommandUtil.kt b/src/main/kotlin/me/nobaboy/nobaaddons/commands/impl/CommandUtil.kt index 722f56f5..e3a93fba 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/commands/impl/CommandUtil.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/commands/impl/CommandUtil.kt @@ -5,7 +5,8 @@ import com.mojang.brigadier.context.CommandContext import dev.celestialfault.commander.ArgumentHandler import dev.celestialfault.commander.Commander import dev.celestialfault.commander.ICommand -import me.nobaboy.nobaaddons.commands.adapters.* +import me.nobaboy.nobaaddons.commands.adapters.FormattingHandler +import me.nobaboy.nobaaddons.commands.adapters.RarityHandler import me.nobaboy.nobaaddons.core.DebugFlag import me.nobaboy.nobaaddons.core.Skill import me.nobaboy.nobaaddons.ui.ElementAlignment diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/ApiCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/ApiCategory.kt index 0b5c84fd..620d0b42 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/ApiCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/ApiCategory.kt @@ -6,10 +6,10 @@ import dev.isxander.yacl3.api.Option import dev.isxander.yacl3.api.controller.BooleanControllerBuilder import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.config.util.* -import me.nobaboy.nobaaddons.utils.TextUtils.red -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.underline -import me.nobaboy.nobaaddons.utils.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.underline +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow import me.nobaboy.nobaaddons.utils.tr import net.fabricmc.loader.api.FabricLoader import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/CrimsonIsleCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/CrimsonIsleCategory.kt index 0a4b8032..46868e4f 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/CrimsonIsleCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/CrimsonIsleCategory.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.config.categories import dev.isxander.yacl3.api.ConfigCategory import me.nobaboy.nobaaddons.config.util.* import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.enums.AnnounceChannel +import me.nobaboy.nobaaddons.utils.hypixel.AnnounceChannel import me.nobaboy.nobaaddons.utils.tr object CrimsonIsleCategory { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/EventsCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/EventsCategory.kt index 17cb24ad..301e0126 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/EventsCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/EventsCategory.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.config.categories import dev.isxander.yacl3.api.ConfigCategory import me.nobaboy.nobaaddons.config.util.* import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.enums.AnnounceChannel +import me.nobaboy.nobaaddons.utils.hypixel.AnnounceChannel import me.nobaboy.nobaaddons.utils.tr object EventsCategory { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/FishingCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/FishingCategory.kt index 5045e223..48b07cb7 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/FishingCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/FishingCategory.kt @@ -10,8 +10,8 @@ import me.nobaboy.nobaaddons.core.fishing.TrophyFishRarity import me.nobaboy.nobaaddons.features.fishing.crimsonisle.TrophyFishChat import me.nobaboy.nobaaddons.ui.TextShadow import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.TextUtils.white -import me.nobaboy.nobaaddons.utils.enums.AnnounceChannel +import me.nobaboy.nobaaddons.utils.mc.TextUtils.white +import me.nobaboy.nobaaddons.utils.hypixel.AnnounceChannel import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/GeneralCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/GeneralCategory.kt index 898d4207..5ef32c7b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/GeneralCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/GeneralCategory.kt @@ -2,8 +2,9 @@ package me.nobaboy.nobaaddons.config.categories import dev.isxander.yacl3.api.ConfigCategory import me.nobaboy.nobaaddons.config.util.* -import me.nobaboy.nobaaddons.utils.TextUtils.aqua -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.config.util.worldSwitchRequired +import me.nobaboy.nobaaddons.utils.mc.TextUtils.aqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.nobaboy.nobaaddons.utils.tr object GeneralCategory { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/QOLCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/QOLCategory.kt index d29ba266..40fb4b05 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/QOLCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/QOLCategory.kt @@ -3,8 +3,8 @@ package me.nobaboy.nobaaddons.config.categories import dev.isxander.yacl3.api.ConfigCategory import me.nobaboy.nobaaddons.config.util.* import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.darkAqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkAqua import me.nobaboy.nobaaddons.utils.tr object QOLCategory { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/SlayersCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/SlayersCategory.kt index b812f7ed..466460bd 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/SlayersCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/SlayersCategory.kt @@ -3,9 +3,9 @@ package me.nobaboy.nobaaddons.config.categories import dev.isxander.yacl3.api.ConfigCategory import me.nobaboy.nobaaddons.config.util.* import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red import me.nobaboy.nobaaddons.utils.tr import net.fabricmc.loader.api.FabricLoader import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/UIAndVisualsCategory.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/UIAndVisualsCategory.kt index c3d5987d..671dfdc8 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/UIAndVisualsCategory.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/categories/UIAndVisualsCategory.kt @@ -4,10 +4,10 @@ import dev.isxander.yacl3.api.ConfigCategory import me.nobaboy.nobaaddons.config.util.* import me.nobaboy.nobaaddons.screens.infoboxes.InfoBoxesScreen import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.red -import me.nobaboy.nobaaddons.utils.TextUtils.strikethrough -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.strikethrough +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.nobaboy.nobaaddons.utils.tr import net.minecraft.screen.ScreenTexts import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/CrimsonIsleConfig.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/CrimsonIsleConfig.kt index 79200e9e..bd5fe936 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/CrimsonIsleConfig.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/CrimsonIsleConfig.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.config.configs import dev.celestialfault.histoire.Object -import me.nobaboy.nobaaddons.utils.enums.AnnounceChannel +import me.nobaboy.nobaaddons.utils.hypixel.AnnounceChannel class CrimsonIsleConfig { @Object val announceVanquisher = AnnounceVanquisher() diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/EventsConfig.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/EventsConfig.kt index 6aec2801..b2d43c99 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/EventsConfig.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/EventsConfig.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.config.configs import dev.celestialfault.histoire.Object -import me.nobaboy.nobaaddons.utils.enums.AnnounceChannel +import me.nobaboy.nobaaddons.utils.hypixel.AnnounceChannel import me.nobaboy.nobaaddons.utils.sound.NotificationSound class EventsConfig { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/FishingConfig.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/FishingConfig.kt index a7a89501..6a9ecbb4 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/FishingConfig.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/configs/FishingConfig.kt @@ -4,7 +4,7 @@ import dev.celestialfault.histoire.Object import me.nobaboy.nobaaddons.core.Rarity import me.nobaboy.nobaaddons.core.fishing.TrophyFishRarity import me.nobaboy.nobaaddons.utils.NobaColor -import me.nobaboy.nobaaddons.utils.enums.AnnounceChannel +import me.nobaboy.nobaaddons.utils.hypixel.AnnounceChannel import me.nobaboy.nobaaddons.utils.sound.NotificationSound class FishingConfig { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/util/flags.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/util/flags.kt index 7aafb056..2f34626d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/util/flags.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/util/flags.kt @@ -1,9 +1,9 @@ package me.nobaboy.nobaaddons.config.util import dev.isxander.yacl3.api.OptionFlag -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.screen.ConfirmScreen import net.minecraft.client.gui.screen.Screen diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/config/util/option.kt b/src/main/kotlin/me/nobaboy/nobaaddons/config/util/option.kt index 7b7a6ebd..d2f88bd7 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/config/util/option.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/config/util/option.kt @@ -12,7 +12,7 @@ import dev.isxander.yacl3.api.controller.ControllerBuilder import dev.isxander.yacl3.gui.YACLScreen import me.nobaboy.nobaaddons.config.AbstractNobaConfig import me.nobaboy.nobaaddons.config.NobaConfig -import me.nobaboy.nobaaddons.utils.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText import net.minecraft.text.MutableText import net.minecraft.text.Text import kotlin.reflect.KMutableProperty diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/core/UpdateNotifier.kt b/src/main/kotlin/me/nobaboy/nobaaddons/core/UpdateNotifier.kt index 00475c55..8330aaaf 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/core/UpdateNotifier.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/core/UpdateNotifier.kt @@ -11,17 +11,17 @@ import me.nobaboy.nobaaddons.NobaAddons import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.repo.Repo -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.Scheduler -import me.nobaboy.nobaaddons.utils.TextUtils.appendLine -import me.nobaboy.nobaaddons.utils.TextUtils.aqua -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.gold -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.openUrl -import me.nobaboy.nobaaddons.utils.TextUtils.underline -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.appendLine +import me.nobaboy.nobaaddons.utils.mc.TextUtils.aqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.openUrl +import me.nobaboy.nobaaddons.utils.mc.TextUtils.underline +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.fabricmc.loader.api.Version diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/core/fishing/TrophyFish.kt b/src/main/kotlin/me/nobaboy/nobaaddons/core/fishing/TrophyFish.kt index d6f93d05..b7b499c9 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/core/fishing/TrophyFish.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/core/fishing/TrophyFish.kt @@ -4,8 +4,8 @@ import kotlinx.serialization.Serializable import me.nobaboy.nobaaddons.core.Rarity import me.nobaboy.nobaaddons.core.Rarity.Companion.rarityFormatted import me.nobaboy.nobaaddons.repo.Repo -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.obfuscated +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.obfuscated import net.minecraft.text.Text @Serializable diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/core/profile/ProfileData.kt b/src/main/kotlin/me/nobaboy/nobaaddons/core/profile/ProfileData.kt index 2410998b..eb9b33b5 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/core/profile/ProfileData.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/core/profile/ProfileData.kt @@ -1,16 +1,36 @@ package me.nobaboy.nobaaddons.core.profile +import dev.celestialfault.histoire.migrations.Migrations +import dev.celestialfault.histoire.migrations.getMap +import kotlinx.datetime.Instant +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.longOrNull +import me.nobaboy.nobaaddons.config.util.DiscardValue +import me.nobaboy.nobaaddons.config.util.modify import me.nobaboy.nobaaddons.core.fishing.TrophyFishRarity import me.nobaboy.nobaaddons.data.PetData import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.features.rift.RiftTimerData import java.util.UUID +private val migrations = Migrations("version") { + add { + val timers = it.getMap("riftTimers") + val unixToIso: (Any) -> Any = { + (it as? JsonPrimitive)?.longOrNull?.let(Instant::fromEpochMilliseconds)?.toString()?.let(::JsonPrimitive) ?: DiscardValue + } + timers.modify("nextFreeInfusion", unixToIso) + timers.modify("nextSplitSteal", unixToIso) + } +} + class ProfileData private constructor(profile: UUID?) : AbstractPerProfileConfig(profile, "data.json") { var pet: PetData? = null var riftTimers: RiftTimerData = RiftTimerData() var trophyFish: MutableMap> = mutableMapOf() + private var version: Int = migrations.currentVersion + companion object : AbstractPerProfileDataLoader() { override fun create(id: UUID?): ProfileData = ProfileData(id) diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/data/PartyData.kt b/src/main/kotlin/me/nobaboy/nobaaddons/data/PartyData.kt index 7d50e1b5..504d3e06 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/data/PartyData.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/data/PartyData.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.data import com.mojang.authlib.yggdrasil.ProfileResult import kotlinx.coroutines.Deferred import kotlinx.coroutines.future.asCompletableFuture -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import net.hypixel.modapi.packet.impl.clientbound.ClientboundPartyInfoPacket import java.util.UUID diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/events/impl/chat/ChatMessageEvents.kt b/src/main/kotlin/me/nobaboy/nobaaddons/events/impl/chat/ChatMessageEvents.kt index cd91f1ee..9134484b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/events/impl/chat/ChatMessageEvents.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/events/impl/chat/ChatMessageEvents.kt @@ -4,7 +4,7 @@ import me.nobaboy.nobaaddons.events.CancelableEvent import me.nobaboy.nobaaddons.events.Event import me.nobaboy.nobaaddons.events.EventDispatcher import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.chat.Message +import me.nobaboy.nobaaddons.utils.mc.chat.Message import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/CopyChatFeature.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/CopyChatFeature.kt index b694dbc1..3a649c09 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/CopyChatFeature.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/CopyChatFeature.kt @@ -5,9 +5,9 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.DebugFlag import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.mixins.accessors.ChatHudAccessor -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.minecraft.client.gui.hud.ChatHudLine diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ActiveChatChannel.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ActiveChatChannel.kt index 39c6936e..09b1edd3 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ActiveChatChannel.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ActiveChatChannel.kt @@ -1,22 +1,27 @@ +@file:UseSerializers(InstantUnixTimestampKSerializer::class) + package me.nobaboy.nobaaddons.features.chat.channeldisplay +import kotlinx.datetime.Instant import kotlinx.serialization.Serializable +import kotlinx.serialization.UseSerializers import me.nobaboy.nobaaddons.api.PartyAPI -import me.nobaboy.nobaaddons.utils.TextUtils.aqua -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.gold -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.red -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.withColor -import me.nobaboy.nobaaddons.utils.TextUtils.yellow -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.toShortString +import me.nobaboy.nobaaddons.utils.mc.TextUtils.aqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.withColor +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.TimeUtils.timeRemaining +import me.nobaboy.nobaaddons.utils.TimeUtils.toShortString +import me.nobaboy.nobaaddons.utils.serializers.InstantUnixTimestampKSerializer import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text @Serializable -data class ActiveChatChannel(val channel: ChatChannel, val dmWith: String? = null, var expires: Timestamp? = null) { +data class ActiveChatChannel(val channel: ChatChannel, val dmWith: String? = null, var expires: Instant? = null) { val name: Text get() = when(channel) { ChatChannel.DM -> dmWith?.toText()?.gold() ?: channel.toText() else -> channel.name.toText().withColor(channel.color) @@ -44,8 +49,7 @@ data class ActiveChatChannel(val channel: ChatChannel, val dmWith: String? = nul } private fun buildDmText(): Text = buildExtraInfo { - val expires = this@ActiveChatChannel.expires ?: Timestamp.distantPast() - val remaining = expires.timeRemaining() + val remaining = (expires ?: Instant.DISTANT_PAST).timeRemaining() when { remaining.isNegative() -> tr("nobaaddons.chat.channel.dmExpired", "Expired!").red() else -> remaining.toShortString().toText().yellow() diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannel.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannel.kt index a430e46f..d9c407ff 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannel.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannel.kt @@ -1,8 +1,8 @@ package me.nobaboy.nobaaddons.features.chat.channeldisplay import me.nobaboy.nobaaddons.utils.NobaColor -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.withColor +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.withColor enum class ChatChannel(val color: NobaColor, val channelName: String? = null) { ALL(NobaColor.GRAY), diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannelDisplay.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannelDisplay.kt index 4f575777..35d4d1c6 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannelDisplay.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/channeldisplay/ChatChannelDisplay.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.chat.channeldisplay +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.HypixelAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.PersistentCache @@ -10,12 +11,12 @@ import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.CommonPatterns import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.green -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.green import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module @@ -69,7 +70,7 @@ object ChatChannelDisplay { val channel = this.channel // avoid a possible race condition between checking if this is null and setting it if(channel.expires != null) { - channel.expires = Timestamp.now() + 5.minutes + channel.expires = Instant.now + 5.minutes } } @@ -83,7 +84,7 @@ object ChatChannelDisplay { } CONVERSATION_OPENED_REGEX.onFullMatch(event.cleaned) { - channel = ActiveChatChannel(ChatChannel.DM, groups["username"]!!.value, Timestamp.now() + 5.minutes) + channel = ActiveChatChannel(ChatChannel.DM, groups["username"]!!.value, Instant.now + 5.minutes) return } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatCommandManager.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatCommandManager.kt index 86a5ff6a..cf7eced6 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatCommandManager.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatCommandManager.kt @@ -7,7 +7,7 @@ import me.nobaboy.nobaaddons.NobaAddons import me.nobaboy.nobaaddons.api.HypixelAPI import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import net.fabricmc.loader.api.FabricLoader import net.minecraft.client.MinecraftClient import java.util.Collections diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatContext.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatContext.kt index 8daa7b4c..86e76db8 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatContext.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/ChatContext.kt @@ -1,6 +1,6 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils class ChatContext( val source: ChatCommandSource, diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/PartyMeCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/PartyMeCommand.kt index b33c35b3..f19a4b9a 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/PartyMeCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/PartyMeCommand.kt @@ -2,8 +2,8 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.dm import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatCommand import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands +import me.nobaboy.nobaaddons.utils.mc.MCUtils class PartyMeCommand : ChatCommand() { override val enabled: Boolean get() = config.dm.partyMe diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/WarpMeCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/WarpMeCommand.kt index 46192f08..7f1ba31a 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/WarpMeCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/dm/WarpMeCommand.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.dm import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatCommand import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext import me.nobaboy.nobaaddons.features.chat.chatcommands.impl.shared.WarpPlayerHandler -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import kotlin.time.Duration.Companion.seconds class WarpMeCommand : ChatCommand(3.seconds) { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/AllInviteCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/AllInviteCommand.kt index d7e89738..48017b46 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/AllInviteCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/AllInviteCommand.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.party import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands import net.hypixel.modapi.packet.impl.clientbound.ClientboundPartyInfoPacket import kotlin.time.Duration.Companion.seconds diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/CoordsCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/CoordsCommand.kt index 538726bd..e6004c85 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/CoordsCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/CoordsCommand.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.party import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatCommand import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.LocationUtils +import me.nobaboy.nobaaddons.utils.mc.LocationUtils import kotlin.time.Duration.Companion.seconds class CoordsCommand : ChatCommand(0.3.seconds) { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/PingCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/PingCommand.kt index f9e2103e..2c9be63d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/PingCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/PingCommand.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.party import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatCommand import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.PingUtils +import me.nobaboy.nobaaddons.utils.mc.PingUtils class PingCommand : ChatCommand() { override val enabled: Boolean get() = config.party.ping diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TpsCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TpsCommand.kt index a2661379..264c8e55 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TpsCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TpsCommand.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.party import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatCommand import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.PingUtils +import me.nobaboy.nobaaddons.utils.mc.PingUtils class TpsCommand : ChatCommand() { override val enabled: Boolean get() = config.party.tps diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TransferCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TransferCommand.kt index 19619684..8014d100 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TransferCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/TransferCommand.kt @@ -1,8 +1,8 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.party import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands +import me.nobaboy.nobaaddons.utils.mc.MCUtils import net.hypixel.modapi.packet.impl.clientbound.ClientboundPartyInfoPacket class TransferCommand : AbstractPartyChatCommand() { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/WarpCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/WarpCommand.kt index 01c83ed4..584b92e9 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/WarpCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/party/WarpCommand.kt @@ -5,7 +5,7 @@ import kotlinx.coroutines.delay import me.nobaboy.nobaaddons.NobaAddons import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext import me.nobaboy.nobaaddons.utils.StringUtils.isNumeric -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands import net.hypixel.modapi.packet.impl.clientbound.ClientboundPartyInfoPacket import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpOutCommand.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpOutCommand.kt index 296a71af..1c7a6918 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpOutCommand.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpOutCommand.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.chat.chatcommands.impl.shared import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatCommand import me.nobaboy.nobaaddons.features.chat.chatcommands.ChatContext -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import kotlin.time.Duration.Companion.seconds class WarpOutCommand(private val categoryEnabled: () -> Boolean) : ChatCommand(3.seconds) { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpPlayerHandler.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpPlayerHandler.kt index 3d8aa9ac..1798bedd 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpPlayerHandler.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/chatcommands/impl/shared/WarpPlayerHandler.kt @@ -8,9 +8,9 @@ import me.nobaboy.nobaaddons.data.PartyData import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.repo.Repo import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.CollectionUtils.anyContains -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.collections.CollectionUtils.anyContains +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds @@ -32,6 +32,16 @@ object WarpPlayerHandler { ChatMessageEvents.CHAT.register { onChatMessage(it.cleaned) } } + private fun onChatMessage(message: String) { + if(targetPlayer == null) return + + when { + INVITATION_FAIL_MESSAGES.anyContains(message, ignoreCase = true) -> state = State.CANT_INVITE + message.equals("$targetPlayer is already in the party.", ignoreCase = true) -> cancel() + message.contains("$targetPlayer joined the party.", ignoreCase = true) -> state = State.JOINED + } + } + fun warpPlayer(playerName: String, isWarpingOut: Boolean, command: String) { check(!isWarpingOut) { "Already warping another player!" } targetPlayer = playerName @@ -116,16 +126,6 @@ object WarpPlayerHandler { targetPlayer = null } - private fun onChatMessage(message: String) { - if(targetPlayer == null) return - - when { - INVITATION_FAIL_MESSAGES.anyContains(message, ignoreCase = true) -> state = State.CANT_INVITE - message.equals("$targetPlayer is already in the party.", ignoreCase = true) -> cancel() - message.contains("$targetPlayer joined the party.", ignoreCase = true) -> state = State.JOINED - } - } - private enum class State { INACTIVE, INVITED, diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/BlessingChatFilter.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/BlessingChatFilter.kt index c6e8d768..5655117c 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/BlessingChatFilter.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/BlessingChatFilter.kt @@ -13,8 +13,8 @@ import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.RegexUtils.forEachMatch import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch import me.nobaboy.nobaaddons.utils.StringUtils.startsWith -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/HealerOrbChatFilter.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/HealerOrbChatFilter.kt index bb860d57..760ec150 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/HealerOrbChatFilter.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/dungeons/HealerOrbChatFilter.kt @@ -8,8 +8,8 @@ import me.nobaboy.nobaaddons.features.chat.filters.IChatFilter import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.NumberUtils.parseDouble import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import net.minecraft.text.Text import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/miscellaneous/ProfileInfoChatFilter.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/miscellaneous/ProfileInfoChatFilter.kt index 565d4a46..c4da0ed2 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/miscellaneous/ProfileInfoChatFilter.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/filters/miscellaneous/ProfileInfoChatFilter.kt @@ -6,7 +6,7 @@ import me.nobaboy.nobaaddons.repo.Repo import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.CommonPatterns import me.nobaboy.nobaaddons.utils.RegexUtils.anyFullMatch -import me.nobaboy.nobaaddons.utils.TextUtils.commandOrNull +import me.nobaboy.nobaaddons.utils.mc.TextUtils.commandOrNull import net.minecraft.text.Text object ProfileInfoChatFilter : IChatFilter { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/notifications/NotificationMode.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/notifications/NotificationMode.kt index 2febb519..3e6e3eed 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/notifications/NotificationMode.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chat/notifications/NotificationMode.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.features.chat.notifications import dev.isxander.yacl3.api.NameableEnum -import me.nobaboy.nobaaddons.utils.EnumUtils +import me.nobaboy.nobaaddons.utils.collections.EnumUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/chocolatefactory/ChocolateFactoryFeatures.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/chocolatefactory/ChocolateFactoryFeatures.kt index b4235a33..3fbaf892 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/chocolatefactory/ChocolateFactoryFeatures.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/chocolatefactory/ChocolateFactoryFeatures.kt @@ -11,10 +11,10 @@ import me.nobaboy.nobaaddons.events.impl.interact.BlockInteractionEvent import me.nobaboy.nobaaddons.events.impl.interact.GenericInteractEvent import me.nobaboy.nobaaddons.events.impl.interact.ItemUseEvent import me.nobaboy.nobaaddons.utils.NobaColor -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.yellow -import me.nobaboy.nobaaddons.utils.chat.ChatUtils import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/crimsonisle/AnnounceVanquisher.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/crimsonisle/AnnounceVanquisher.kt index 43c812b0..de534e41 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/crimsonisle/AnnounceVanquisher.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/crimsonisle/AnnounceVanquisher.kt @@ -4,8 +4,8 @@ import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.LocationUtils import me.nobaboy.nobaaddons.utils.StringUtils +import me.nobaboy.nobaaddons.utils.mc.LocationUtils import me.owdding.ktmodules.Module @Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/HighlightStarredMobs.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/HighlightStarredMobs.kt index 8d179c5c..c0e1f214 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/HighlightStarredMobs.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/HighlightStarredMobs.kt @@ -4,10 +4,10 @@ import me.nobaboy.nobaaddons.api.skyblock.DungeonsAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.EntityUtils -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting import me.nobaboy.nobaaddons.utils.getNobaVec +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.render.HighlightMode import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.owdding.ktmodules.Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/SimonSaysTimer.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/SimonSaysTimer.kt index 0c02110c..50b30386 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/SimonSaysTimer.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/dungeons/SimonSaysTimer.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.dungeons +import kotlinx.datetime.Instant import kotlinx.io.IOException import me.nobaboy.nobaaddons.api.PartyAPI import me.nobaboy.nobaaddons.api.skyblock.DungeonsAPI @@ -14,17 +15,17 @@ import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.features.dungeons.data.SimonSaysTimes import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.lightPurple -import me.nobaboy.nobaaddons.utils.TextUtils.plus -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.lightPurple +import me.nobaboy.nobaaddons.utils.mc.TextUtils.plus +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module @@ -37,8 +38,8 @@ object SimonSaysTimer { private val DEVICE_COMPLETED_REGEX by Regex("^(?[A-z0-9_]+) completed a device! \\([1-7]/7\\)").fromRepo("dungeons.device_completed") private val buttonLocation = NobaVec(110, 121, 91) - private var startTime = Timestamp.distantPast() - private var completionTime = Timestamp.distantPast() + private var startTime = Instant.DISTANT_PAST + private var completionTime = Instant.DISTANT_PAST private var buttonPressed: Boolean = false private var deviceCompleted: Boolean = false @@ -110,7 +111,7 @@ object SimonSaysTimer { val username = groups["username"]!!.value if(username != MCUtils.playerName) return - completionTime = Timestamp.now() + completionTime = Instant.now deviceCompleted = true processCompletionTime() @@ -120,7 +121,7 @@ object SimonSaysTimer { private fun onInteract(event: BlockInteractionEvent.Interact) { if(!enabled || buttonPressed || event.player != MCUtils.player || event.location.roundToBlock() != buttonLocation) return - startTime = Timestamp.now() + startTime = Instant.now buttonPressed = true } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/hoppity/HoppityEggGuess.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/hoppity/HoppityEggGuess.kt index 2dff1625..928017ee 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/hoppity/HoppityEggGuess.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/hoppity/HoppityEggGuess.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.events.hoppity +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.events.hoppity.HoppityAPI import me.nobaboy.nobaaddons.config.NobaConfig @@ -8,13 +9,14 @@ import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.interact.ItemUseEvent import me.nobaboy.nobaaddons.events.impl.render.ParticleEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId import me.nobaboy.nobaaddons.utils.math.ParticlePathFitter +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module @@ -31,7 +33,7 @@ object HoppityEggGuess { private val particlePath = ParticlePathFitter(3) private var guessLocation: NobaVec? = null - private var lastAbilityUse = Timestamp.distantPast() + private var lastAbilityUse = Instant.DISTANT_PAST init { SkyBlockEvents.ISLAND_CHANGE.register { reset() } @@ -61,7 +63,7 @@ object HoppityEggGuess { if(event.itemInHand.skyBlockId != HoppityAPI.LOCATOR) return particlePath.reset() - lastAbilityUse = Timestamp.now() + lastAbilityUse = Instant.now } private fun onChatMessage(event: ChatMessageEvents.Chat) { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/AnnounceRareDrops.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/AnnounceRareDrops.kt index 0e41662d..b9247310 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/AnnounceRareDrops.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/AnnounceRareDrops.kt @@ -1,10 +1,11 @@ package me.nobaboy.nobaaddons.features.events.mythological import me.nobaboy.nobaaddons.events.impl.client.InventoryEvents -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TimedSet -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.collections.TimedSet import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.sound.SoundUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWarpLocations.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWarpLocations.kt index 56267293..df7fbb5e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWarpLocations.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWarpLocations.kt @@ -1,10 +1,10 @@ package me.nobaboy.nobaaddons.features.events.mythological import me.nobaboy.nobaaddons.config.NobaConfig -import me.nobaboy.nobaaddons.utils.LocationUtils.distanceToPlayer +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.StringUtils.title -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr object BurrowWarpLocations { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWaypoints.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWaypoints.kt index 2a421f16..c19d3004 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWaypoints.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/BurrowWaypoints.kt @@ -1,19 +1,21 @@ package me.nobaboy.nobaaddons.features.events.mythological +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.events.mythological.BurrowAPI import me.nobaboy.nobaaddons.api.skyblock.events.mythological.DianaAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.skyblock.MythologicalEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.LocationUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators -import me.nobaboy.nobaaddons.utils.TextUtils.aqua -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.mc.LocationUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.aqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.sound.SoundUtils import me.nobaboy.nobaaddons.utils.tr @@ -31,7 +33,7 @@ object BurrowWaypoints { private var guessLocation: NobaVec? = null private var nearestWarp: NearestWarp? = null - private var lastWarpSuggestTime = Timestamp.distantPast() + private var lastWarpSuggestTime = Instant.DISTANT_PAST private val isInquisitorSpawned: Boolean get() = InquisitorWaypoints.inquisitors.isNotEmpty() @@ -198,7 +200,7 @@ object BurrowWaypoints { val targetLocation = getTargetLocation() ?: return nearestWarp = BurrowWarpLocations.getNearestWarp(targetLocation) ?: return - lastWarpSuggestTime = Timestamp.now() + lastWarpSuggestTime = Instant.now RenderUtils.drawTitle(tr("nobaaddons.events.mythological.warpToPoint", "Warp to ${nearestWarp!!.warpPoint}"), NobaColor.GRAY, 2f, 30, 1.seconds) } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/GriffinBurrowGuess.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/GriffinBurrowGuess.kt index 590cf53c..25c5a98d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/GriffinBurrowGuess.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/GriffinBurrowGuess.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.events.mythological +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.events.mythological.DianaAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.EventDispatcher.Companion.registerIf @@ -9,7 +10,8 @@ import me.nobaboy.nobaaddons.events.impl.interact.ItemUseEvent import me.nobaboy.nobaaddons.events.impl.render.ParticleEvents import me.nobaboy.nobaaddons.events.impl.skyblock.MythologicalEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId import me.nobaboy.nobaaddons.utils.math.ParticlePathFitter import me.owdding.ktmodules.Module @@ -22,7 +24,7 @@ object GriffinBurrowGuess { private val enabled: Boolean get() = config.burrowGuess && DianaAPI.isActive private val particlePath = ParticlePathFitter(3) - private var lastAbilityUse = Timestamp.distantPast() + private var lastAbilityUse = Instant.DISTANT_PAST init { SkyBlockEvents.ISLAND_CHANGE.register { reset() } @@ -53,7 +55,7 @@ object GriffinBurrowGuess { if(event.itemInHand.skyBlockId != DianaAPI.SPADE) return particlePath.reset() - lastAbilityUse = Timestamp.now() + lastAbilityUse = Instant.now } private fun reset() { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/InquisitorWaypoints.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/InquisitorWaypoints.kt index 5fb8d88f..594c851b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/InquisitorWaypoints.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/events/mythological/InquisitorWaypoints.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.events.mythological +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.events.mythological.DianaAPI import me.nobaboy.nobaaddons.config.NobaConfig @@ -12,18 +13,21 @@ import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.repo.Repo import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.CommonPatterns -import me.nobaboy.nobaaddons.utils.EntityUtils -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.RegexUtils.firstPartialMatch import me.nobaboy.nobaaddons.utils.RegexUtils.onPartialMatch -import me.nobaboy.nobaaddons.utils.TextUtils.gold -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.toShortString -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.isPast +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.TimeUtils.timeRemaining +import me.nobaboy.nobaaddons.utils.TimeUtils.toShortString import me.nobaboy.nobaaddons.utils.getNobaVec +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module @@ -43,7 +47,7 @@ object InquisitorWaypoints { val inquisitors = mutableListOf() - private val inquisitorSpawnTimes = mutableListOf() + private val inquisitorSpawnTimes = mutableListOf() private val nearbyInquisitors = mutableListOf() private var lastInquisitor: OtherClientPlayerEntity? = null @@ -104,7 +108,7 @@ object InquisitorWaypoints { } private fun checkInquisitor() { - inquisitorSpawnTimes.add(Timestamp.now()) + inquisitorSpawnTimes.add(Instant.now) val lastTwo = inquisitorSpawnTimes.takeLast(2) if(lastTwo.size != 2) return @@ -139,7 +143,7 @@ object InquisitorWaypoints { data class Inquisitor( val spawner: String, val location: NobaVec, - val timestamp: Timestamp = Timestamp.now() + 75.seconds + val timestamp: Instant = Instant.now + 75.seconds ) { val remainingTime: String get() = timestamp.timeRemaining().toShortString() } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/AnnounceSeaCreatures.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/AnnounceSeaCreatures.kt index 2c81b83e..c09d5445 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/AnnounceSeaCreatures.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/AnnounceSeaCreatures.kt @@ -4,8 +4,8 @@ import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.fishing.SeaCreature import me.nobaboy.nobaaddons.events.impl.skyblock.FishingEvents -import me.nobaboy.nobaaddons.utils.LocationUtils import me.nobaboy.nobaaddons.utils.StringUtils +import me.nobaboy.nobaaddons.utils.mc.LocationUtils import me.owdding.ktmodules.Module @Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/CatchTimer.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/CatchTimer.kt index be2a633e..5c2d281e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/CatchTimer.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/CatchTimer.kt @@ -8,8 +8,8 @@ import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.ui.ElementAlignment import me.nobaboy.nobaaddons.ui.TextHudElement import me.nobaboy.nobaaddons.ui.UIManager -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FishingBobberTweaks.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FishingBobberTweaks.kt index cef500a0..efa53f37 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FishingBobberTweaks.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FishingBobberTweaks.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.fishing +import kotlinx.datetime.toKotlinInstant import me.nobaboy.nobaaddons.api.skyblock.PetAPI import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.inIsland @@ -8,10 +9,10 @@ import me.nobaboy.nobaaddons.core.SkyBlockIsland import me.nobaboy.nobaaddons.ducks.FishingBobberTimerDuck import me.nobaboy.nobaaddons.events.impl.client.EntityEvents import me.nobaboy.nobaaddons.events.impl.render.EntityNametagRenderEvents -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NumberUtils.roundTo -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.asTimestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.owdding.ktmodules.Module import net.minecraft.entity.projectile.FishingBobberEntity import net.minecraft.text.Text @@ -61,7 +62,7 @@ object FishingBobberTweaks { if(!entity.isOurs) return val time = (entity as FishingBobberTimerDuck).`nobaaddons$spawnedAt`() ?: return - val seconds = time.asTimestamp().elapsedSince().toDouble(DurationUnit.SECONDS) + val seconds = time.toKotlinInstant().elapsedSince().toDouble(DurationUnit.SECONDS) val slugTime = PetAPI.currentPet?.takeIf { it.id == "SLUG" }?.let { 20.0 - it.level * 0.1 diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FixFishHookFieldDesync.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FixFishHookFieldDesync.kt index cd292c8f..439c0dd5 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FixFishHookFieldDesync.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/FixFishHookFieldDesync.kt @@ -1,9 +1,9 @@ package me.nobaboy.nobaaddons.features.fishing import me.nobaboy.nobaaddons.config.NobaConfig -import me.nobaboy.nobaaddons.utils.EntityUtils import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.owdding.ktmodules.Module import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents import net.minecraft.entity.projectile.FishingBobberEntity diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/HotspotWaypoints.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/HotspotWaypoints.kt index a4d7c8f2..850de0ef 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/HotspotWaypoints.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/HotspotWaypoints.kt @@ -1,24 +1,26 @@ package me.nobaboy.nobaaddons.features.fishing +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.SkyBlockStat import me.nobaboy.nobaaddons.events.impl.client.EntityEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.EntityUtils -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.StringUtils import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.TextUtils.blue -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.yellow -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.toShortString -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.ChatUtils.clickAction -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.TimeUtils.timeRemaining +import me.nobaboy.nobaaddons.utils.TimeUtils.toShortString +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.blue +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils.clickAction import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.toNobaVec import me.owdding.ktmodules.Module @@ -54,7 +56,7 @@ object HotspotWaypoints { val statArmorStand = EntityUtils.getNextEntity(armorStand, 1) ?: return val stat = SkyBlockStat.getByName(statArmorStand.name.string.cleanFormatting()) ?: return - val timestamp = Timestamp.now() + 4.5.minutes - (armorStand.age / 20).seconds + val timestamp = Instant.now + 4.5.minutes - (armorStand.age / 20).seconds val hotspot = Hotspot(armorStand, stat, timestamp) val message = compileMessage(hotspot) @@ -98,7 +100,7 @@ object HotspotWaypoints { ) } - private data class Hotspot(val armorStand: ArmorStandEntity, val stat: SkyBlockStat, val timestamp: Timestamp) { + private data class Hotspot(val armorStand: ArmorStandEntity, val stat: SkyBlockStat, val timestamp: Instant) { val location = armorStand.pos.toNobaVec().lower(2).roundToBlock() val remainingTime: String get() = timestamp.timeRemaining().toShortString() diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/RevertTreasureMessages.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/RevertTreasureMessages.kt index 8697933c..9fbd4568 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/RevertTreasureMessages.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/RevertTreasureMessages.kt @@ -5,7 +5,7 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.repo.Repo.fromRepo import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText import me.owdding.ktmodules.Module import net.minecraft.text.MutableText import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/SeaCreatureAlert.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/SeaCreatureAlert.kt index c1df9345..9604529f 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/SeaCreatureAlert.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/SeaCreatureAlert.kt @@ -5,8 +5,8 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.fishing.SeaCreature import me.nobaboy.nobaaddons.events.impl.skyblock.FishingEvents import me.nobaboy.nobaaddons.utils.NobaColor -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/HighlightThunderSparks.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/HighlightThunderSparks.kt index 4b89ee2d..a69ccd98 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/HighlightThunderSparks.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/HighlightThunderSparks.kt @@ -6,10 +6,10 @@ import me.nobaboy.nobaaddons.core.SkyBlockIsland import me.nobaboy.nobaaddons.events.impl.client.EntityEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.repo.Repo.skullFromRepo -import me.nobaboy.nobaaddons.utils.BlockUtils.getBlockStateAt -import me.nobaboy.nobaaddons.utils.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.getNobaVec import me.nobaboy.nobaaddons.utils.items.ItemUtils.getSkullTexture +import me.nobaboy.nobaaddons.utils.mc.BlockUtils.getBlockStateAt +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.owdding.ktmodules.Module import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/TrophyFishChat.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/TrophyFishChat.kt index b40d158d..b0586ce5 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/TrophyFishChat.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/fishing/crimsonisle/TrophyFishChat.kt @@ -8,14 +8,14 @@ import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators import me.nobaboy.nobaaddons.utils.NumberUtils.ordinalSuffix import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.TextUtils.aqua -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.gold -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.literal -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.Message +import me.nobaboy.nobaaddons.utils.mc.TextUtils.aqua +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.literal +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.Message import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/general/DevFeatures.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/general/DevFeatures.kt index 7556223f..8221bb46 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/general/DevFeatures.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/general/DevFeatures.kt @@ -4,9 +4,9 @@ import com.google.gson.GsonBuilder import com.mojang.serialization.JsonOps import me.nobaboy.nobaaddons.core.PersistentCache import me.nobaboy.nobaaddons.mixins.accessors.HandledScreenAccessor -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import net.minecraft.client.gui.screen.ingame.HandledScreen import net.minecraft.item.ItemStack import net.minecraft.screen.ScreenHandler diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/general/RefillFromSacks.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/general/RefillFromSacks.kt index c00d7402..0fda9e57 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/general/RefillFromSacks.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/general/RefillFromSacks.kt @@ -1,9 +1,9 @@ package me.nobaboy.nobaaddons.features.general import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId import me.nobaboy.nobaaddons.utils.tr diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/ItemPickupLog.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/ItemPickupLog.kt index 3078cfcd..5a60982c 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/ItemPickupLog.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/ItemPickupLog.kt @@ -5,10 +5,10 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.config.UISettings import me.nobaboy.nobaaddons.ui.TextHudElement import me.nobaboy.nobaaddons.ui.UIManager -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.green -import me.nobaboy.nobaaddons.utils.TextUtils.literal -import me.nobaboy.nobaaddons.utils.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.green +import me.nobaboy.nobaaddons.utils.mc.TextUtils.literal +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/enchants/EnchantmentTooltips.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/enchants/EnchantmentTooltips.kt index 09e19b35..b4208e59 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/enchants/EnchantmentTooltips.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/enchants/EnchantmentTooltips.kt @@ -6,20 +6,20 @@ import me.nobaboy.nobaaddons.core.enchants.EnchantBase import me.nobaboy.nobaaddons.core.enchants.StackingEnchant import me.nobaboy.nobaaddons.core.enchants.UltimateEnchant import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NumberUtils.romanToArabic import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting import me.nobaboy.nobaaddons.utils.StringUtils.toAbbreviatedString -import me.nobaboy.nobaaddons.utils.TextUtils.blue -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.darkGray -import me.nobaboy.nobaaddons.utils.TextUtils.darkRed -import me.nobaboy.nobaaddons.utils.TextUtils.lightPurple -import me.nobaboy.nobaaddons.utils.TextUtils.toText import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem import me.nobaboy.nobaaddons.utils.items.ItemUtils.isSkyBlockItem import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.blue +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkGray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkRed +import me.nobaboy.nobaaddons.utils.mc.TextUtils.lightPurple +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.owdding.ktmodules.Module import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback import net.minecraft.client.util.InputUtil diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/AttributeShardSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/AttributeShardSlotInfo.kt index ecb523ec..32afe403 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/AttributeShardSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/AttributeShardSlotInfo.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.items import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem object AttributeShardSlotInfo : ISlotInfo { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/EnchantedBookSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/EnchantedBookSlotInfo.kt index bb07f391..b4cc9b14 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/EnchantedBookSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/EnchantedBookSlotInfo.kt @@ -4,7 +4,7 @@ import me.nobaboy.nobaaddons.core.enchants.EnchantBase import me.nobaboy.nobaaddons.core.enchants.UltimateEnchant import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem import net.minecraft.text.Text import net.minecraft.util.Formatting diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/RanchersBootsSpeedSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/RanchersBootsSpeedSlotInfo.kt index 94711261..19762b62 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/RanchersBootsSpeedSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/items/RanchersBootsSpeedSlotInfo.kt @@ -5,7 +5,7 @@ import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.inIsland import me.nobaboy.nobaaddons.core.SkyBlockIsland import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem import net.minecraft.entity.EquipmentSlot diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/BestiarySlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/BestiarySlotInfo.kt index 034b0d2c..2ce59b01 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/BestiarySlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/BestiarySlotInfo.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.uielements import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NumberUtils.tryRomanToArabic import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/CollectionTierSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/CollectionTierSlotInfo.kt index 30f5a19b..de50967e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/CollectionTierSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/CollectionTierSlotInfo.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.uielements import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NumberUtils.tryRomanToArabic import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/GardenPlotPestSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/GardenPlotPestSlotInfo.kt index 50d83b9a..f59cb6a0 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/GardenPlotPestSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/GardenPlotPestSlotInfo.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.uielements import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.RegexUtils.firstFullMatch import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkillLevelSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkillLevelSlotInfo.kt index 5a17cb1b..49103cba 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkillLevelSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkillLevelSlotInfo.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.uielements import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NumberUtils.tryRomanToArabic import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkyBlockLevelSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkyBlockLevelSlotInfo.kt index 60ff05e6..2d9c981e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkyBlockLevelSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/SkyBlockLevelSlotInfo.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.uielements import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils object SkyBlockLevelSlotInfo : ISlotInfo { override val enabled: Boolean get() = config.skyBlockLevel diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TrophyFishSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TrophyFishSlotInfo.kt index 843f752b..f99cc77c 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TrophyFishSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TrophyFishSlotInfo.kt @@ -5,7 +5,7 @@ import me.nobaboy.nobaaddons.api.skyblock.fishing.TrophyFishAPI import me.nobaboy.nobaaddons.core.fishing.TrophyFishRarity import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.StringUtils.toAbbreviatedString import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TuningPointsSlotInfo.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TuningPointsSlotInfo.kt index 4caa1d71..d73b196d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TuningPointsSlotInfo.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/inventory/slotinfo/uielements/TuningPointsSlotInfo.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.features.inventory.slotinfo.uielements import me.nobaboy.nobaaddons.events.impl.render.ScreenRenderEvents import me.nobaboy.nobaaddons.features.inventory.slotinfo.ISlotInfo import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.InventoryUtils +import me.nobaboy.nobaaddons.utils.mc.InventoryUtils import me.nobaboy.nobaaddons.utils.RegexUtils.firstFullMatch import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore import me.nobaboy.nobaaddons.utils.items.ItemUtils.stringLines diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/keybinds/impl/KeyBind.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/keybinds/impl/KeyBind.kt index da60bb41..4724dc79 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/keybinds/impl/KeyBind.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/keybinds/impl/KeyBind.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.features.keybinds.impl import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import me.nobaboy.nobaaddons.utils.CooldownManager -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import org.lwjgl.glfw.GLFW import kotlin.time.Duration.Companion.milliseconds diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/CorpseLocator.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/CorpseLocator.kt index e6b561cc..eeb46fdc 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/CorpseLocator.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/CorpseLocator.kt @@ -8,15 +8,15 @@ import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.utils.CommonPatterns -import me.nobaboy.nobaaddons.utils.EntityUtils -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.RegexUtils.onPartialMatch -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands import me.nobaboy.nobaaddons.utils.getNobaVec +import me.nobaboy.nobaaddons.utils.hypixel.HypixelCommands import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.owdding.ktmodules.Module import net.minecraft.entity.EquipmentSlot import net.minecraft.entity.decoration.ArmorStandEntity diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/MineshaftWaypoints.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/MineshaftWaypoints.kt index f7494b32..cb6916e0 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/MineshaftWaypoints.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/mining/glacitemineshaft/MineshaftWaypoints.kt @@ -3,10 +3,10 @@ package me.nobaboy.nobaaddons.features.mining.glacitemineshaft import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.SkyBlockIsland import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.LocationUtils -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec +import me.nobaboy.nobaaddons.utils.mc.LocationUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.toNobaVec import me.nobaboy.nobaaddons.utils.tr diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/qol/MouseLock.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/qol/MouseLock.kt index 4cd62dfe..992791ea 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/qol/MouseLock.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/qol/MouseLock.kt @@ -9,10 +9,10 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.SkyBlockIsland import me.nobaboy.nobaaddons.events.impl.client.PacketEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.LocationUtils -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.chat.ChatUtils import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem +import me.nobaboy.nobaaddons.utils.mc.LocationUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.toNobaVec import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimerData.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimerData.kt index 0a8bc83a..13b5385e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimerData.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimerData.kt @@ -1,11 +1,11 @@ package me.nobaboy.nobaaddons.features.rift +import kotlinx.datetime.Instant import kotlinx.serialization.Serializable -import me.nobaboy.nobaaddons.utils.Timestamp @Serializable data class RiftTimerData( var freeInfusions: Int = 3, - var nextFreeInfusion: Timestamp? = null, - var nextSplitSteal: Timestamp? = null, + var nextFreeInfusion: Instant? = null, + var nextSplitSteal: Instant? = null, ) \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimers.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimers.kt index 2286ea8a..ca9a27fb 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimers.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/rift/RiftTimers.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.rift +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.inIsland import me.nobaboy.nobaaddons.config.NobaConfig @@ -13,19 +14,23 @@ import me.nobaboy.nobaaddons.utils.CommonPatterns import me.nobaboy.nobaaddons.utils.RegexUtils.firstFullMatch import me.nobaboy.nobaaddons.utils.RegexUtils.indexOfFirstFullMatch import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting -import me.nobaboy.nobaaddons.utils.TextUtils.buildLiteral -import me.nobaboy.nobaaddons.utils.TextUtils.darkGray -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.yellow -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.asTimestamp -import me.nobaboy.nobaaddons.utils.Timestamp.Companion.toShortString -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.TimeUtils.asInstantOrNull +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.isFuture +import me.nobaboy.nobaaddons.utils.TimeUtils.isPast +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.TimeUtils.timeRemaining +import me.nobaboy.nobaaddons.utils.TimeUtils.toShortString import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore import me.nobaboy.nobaaddons.utils.items.ItemUtils.skyBlockId import me.nobaboy.nobaaddons.utils.items.ItemUtils.stringLines +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildLiteral +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkGray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback @@ -68,7 +73,7 @@ object RiftTimers { "Dimensional Infusion", "Fast Travel" -> updateFreeInfusions(event) "Split or Steal" -> { if(!SkyBlockIsland.RIFT.inIsland()) return - data.nextSplitSteal = Timestamp.now() + 2.hours + data.nextSplitSteal = Instant.now + 2.hours notifiedSplitStealCooldown = false } } @@ -79,11 +84,11 @@ object RiftTimers { if(string == "INFUSED! Used one of your free Rift charges!") { data.freeInfusions -= 1 if(data.nextFreeInfusion == null) { - data.nextFreeInfusion = Timestamp.now() + 4.hours + data.nextFreeInfusion = Instant.now + 4.hours } } else if(string.startsWith("SPLIT! You need to wait")) { val match = SPLIT_STEAL_COOLDOWN_REGEX.matchEntire(string) ?: return - data.nextSplitSteal = match.groups["time"]!!.value.asTimestamp() ?: return + data.nextSplitSteal = match.groups["time"]!!.value.asInstantOrNull() ?: return notifiedSplitStealCooldown = false } } @@ -149,7 +154,7 @@ object RiftTimers { val infusionCount = lore.firstFullMatch(FREE_INFUSIONS_REGEX)?.groups["count"]?.value?.toInt() ?: return data.freeInfusions = infusionCount data.nextFreeInfusion = if(infusionCount < 3) { - lore.firstFullMatch(NEXT_FREE_INFUSION_REGEX)?.groups["time"]?.value?.asTimestamp() + lore.firstFullMatch(NEXT_FREE_INFUSION_REGEX)?.groups["time"]?.value?.asInstantOrNull() } else { null } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/CompactSlayerMessages.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/CompactSlayerMessages.kt index cee95e1c..a6cda27d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/CompactSlayerMessages.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/CompactSlayerMessages.kt @@ -9,19 +9,19 @@ import me.nobaboy.nobaaddons.utils.RegexUtils.firstFullMatch import me.nobaboy.nobaaddons.utils.RegexUtils.onFullMatch import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting import me.nobaboy.nobaaddons.utils.StringUtils.toAbbreviatedString -import me.nobaboy.nobaaddons.utils.TextUtils.bold -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.command -import me.nobaboy.nobaaddons.utils.TextUtils.darkPurple -import me.nobaboy.nobaaddons.utils.TextUtils.gray -import me.nobaboy.nobaaddons.utils.TextUtils.green -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.lightPurple -import me.nobaboy.nobaaddons.utils.TextUtils.runCommand -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.TextUtils.yellow -import me.nobaboy.nobaaddons.utils.chat.ChatUtils -import me.nobaboy.nobaaddons.utils.chat.Message +import me.nobaboy.nobaaddons.utils.mc.TextUtils.bold +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.command +import me.nobaboy.nobaaddons.utils.mc.TextUtils.darkPurple +import me.nobaboy.nobaaddons.utils.mc.TextUtils.gray +import me.nobaboy.nobaaddons.utils.mc.TextUtils.green +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.lightPurple +import me.nobaboy.nobaaddons.utils.mc.TextUtils.runCommand +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.Message import me.nobaboy.nobaaddons.utils.tr import me.owdding.ktmodules.Module diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/MiniBossFeatures.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/MiniBossFeatures.kt index b4033b8b..0c70c49f 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/MiniBossFeatures.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/MiniBossFeatures.kt @@ -1,11 +1,13 @@ package me.nobaboy.nobaaddons.features.slayers +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.SlayerAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.client.SoundEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SlayerEvents -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.render.EntityOverlay.highlight import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.sound.SoundUtils @@ -21,7 +23,7 @@ object MiniBossFeatures { private val EXPLODE = Identifier.ofVanilla("entity.generic.explode") - private var lastAlert = Timestamp.distantPast() + private var lastAlert = Instant.now init { SoundEvents.SOUND.register(this::onSound) @@ -35,7 +37,7 @@ object MiniBossFeatures { RenderUtils.drawTitle(tr("nobaaddons.slayers.miniBossAlert.spawned", "MiniBoss Spawned!"), config.miniBossAlert.alertColor, duration = 1.5.seconds, id = "slayer_alert") SoundUtils.dingLowSound.play() - lastAlert = Timestamp.now() + lastAlert = Instant.now } private fun onMiniBossSpawn(event: SlayerEvents.MiniBossSpawn) { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/SlayerBossFeatures.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/SlayerBossFeatures.kt index b65b9178..0100c7ef 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/SlayerBossFeatures.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/SlayerBossFeatures.kt @@ -1,11 +1,13 @@ package me.nobaboy.nobaaddons.features.slayers +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.SlayerAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.skyblock.SlayerEvents -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.sound.SoundUtils import me.nobaboy.nobaaddons.utils.tr @@ -19,7 +21,7 @@ object SlayerBossFeatures { private val config get() = NobaConfig.slayers private val enabled: Boolean get() = SlayerAPI.currentQuest != null && SkyBlockAPI.inSkyBlock - private var bossSpawnTime = Timestamp.distantPast() + private var bossSpawnTime = Instant.DISTANT_PAST init { SlayerEvents.BOSS_SPAWN.register(this::onBossSpawn) @@ -29,7 +31,7 @@ object SlayerBossFeatures { private fun onBossSpawn(ignored: SlayerEvents.BossSpawn) { if(!enabled) return - if(config.bossKillTime.enabled) bossSpawnTime = Timestamp.now() + if(config.bossKillTime.enabled) bossSpawnTime = Instant.now if(config.bossAlert.enabled) { RenderUtils.drawTitle(tr("nobaaddons.slayers.bossAlert.spawned", "Boss Spawned!"), config.bossAlert.alertColor, duration = 1.5.seconds, id = "slayer_alert") SoundUtils.dingLowSound.play() diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/inferno/HighlightHellionShield.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/inferno/HighlightHellionShield.kt index f1d384e6..669eee2c 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/inferno/HighlightHellionShield.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/inferno/HighlightHellionShield.kt @@ -5,8 +5,8 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.core.slayer.SlayerBoss import me.nobaboy.nobaaddons.events.impl.client.EntityEvents import me.nobaboy.nobaaddons.events.impl.client.TickEvents -import me.nobaboy.nobaaddons.utils.EntityUtils import me.nobaboy.nobaaddons.utils.getNobaVec +import me.nobaboy.nobaaddons.utils.mc.EntityUtils import me.nobaboy.nobaaddons.utils.render.EntityOverlay.highlight import me.owdding.ktmodules.Module import net.minecraft.entity.LivingEntity diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/voidgloom/VoidgloomSeraphFeatures.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/voidgloom/VoidgloomSeraphFeatures.kt index 4937fbe7..b514bbab 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/voidgloom/VoidgloomSeraphFeatures.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/slayers/voidgloom/VoidgloomSeraphFeatures.kt @@ -1,5 +1,6 @@ package me.nobaboy.nobaaddons.features.slayers.voidgloom +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI.inIsland import me.nobaboy.nobaaddons.api.skyblock.SlayerAPI import me.nobaboy.nobaaddons.config.NobaConfig @@ -11,14 +12,15 @@ import me.nobaboy.nobaaddons.events.impl.client.WorldEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SlayerEvents import me.nobaboy.nobaaddons.repo.Repo.skullFromRepo -import me.nobaboy.nobaaddons.utils.EntityUtils -import me.nobaboy.nobaaddons.utils.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.Scheduler -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.TimeUtils.timeRemaining import me.nobaboy.nobaaddons.utils.getNobaVec import me.nobaboy.nobaaddons.utils.items.ItemUtils.getSkullTexture +import me.nobaboy.nobaaddons.utils.mc.EntityUtils +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.distanceToPlayer import me.nobaboy.nobaaddons.utils.render.EntityOverlay.highlight import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.sound.SoundUtils @@ -46,7 +48,7 @@ object VoidgloomSeraphFeatures { private var brokenHeartRadiation: BrokenHeartRadiation? = null - private val yangGlyphs = mutableMapOf() + private val yangGlyphs = mutableMapOf() private val flyingYangGlyphs = mutableSetOf() private val inBeaconPhase: Boolean get() = yangGlyphs.isNotEmpty() || flyingYangGlyphs.isNotEmpty() @@ -118,7 +120,7 @@ object VoidgloomSeraphFeatures { val armorStand = flyingYangGlyphs.firstOrNull { it.getNobaVec().distance(location) < 3 } ?: return flyingYangGlyphs.remove(armorStand) - yangGlyphs[location] = Timestamp.now() + 5.seconds + yangGlyphs[location] = Instant.now + 5.seconds if(config.yangGlyphAlert) { RenderUtils.drawTitle(tr("nobaaddons.slayers.yangGlyph.placed", "Yang Glyph!"), config.yangGlyphAlertColor, duration = 1.5.seconds) @@ -190,7 +192,7 @@ object VoidgloomSeraphFeatures { data class BrokenHeartRadiation( val entity: LivingEntity, - val timestamp: Timestamp = Timestamp.now() + 8.seconds, + val timestamp: Instant = Instant.now + 8.seconds, ) { val isValid: Boolean get() = timestamp.timeRemaining() > 0.seconds && (entity.vehicle != null || timestamp.timeRemaining() > 5.seconds) diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/InfoBoxHudElement.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/InfoBoxHudElement.kt index 35b4a566..87a18259 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/InfoBoxHudElement.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/InfoBoxHudElement.kt @@ -6,8 +6,8 @@ import me.nobaboy.nobaaddons.features.ui.infobox.functions.FunctionsManager import me.nobaboy.nobaaddons.screens.infoboxes.InfoBoxesScreen import me.nobaboy.nobaaddons.ui.TextHudElement import me.nobaboy.nobaaddons.utils.CommonPatterns -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.nobaboy.nobaaddons.utils.properties.CacheFor import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/MinecraftFunctions.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/MinecraftFunctions.kt index 2d49ce09..e3edd630 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/MinecraftFunctions.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/MinecraftFunctions.kt @@ -1,9 +1,9 @@ package me.nobaboy.nobaaddons.features.ui.infobox.functions.impl import me.nobaboy.nobaaddons.features.ui.infobox.functions.InfoBoxFunction -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.MCUtils.day -import me.nobaboy.nobaaddons.utils.PingUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils.day +import me.nobaboy.nobaaddons.utils.mc.PingUtils object MinecraftFunctions { object PingFunction : InfoBoxFunction { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/PlayerFunctions.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/PlayerFunctions.kt index a4e306b0..850f0bbe 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/PlayerFunctions.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/ui/infobox/functions/impl/PlayerFunctions.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.features.ui.infobox.functions.impl import me.nobaboy.nobaaddons.features.ui.infobox.functions.InfoBoxFunction -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NumberUtils.roundTo import kotlin.math.roundToInt import kotlin.math.sqrt diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/EtherwarpOverlay.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/EtherwarpOverlay.kt index 0fd3fd59..77c6b8c4 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/EtherwarpOverlay.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/EtherwarpOverlay.kt @@ -3,10 +3,10 @@ package me.nobaboy.nobaaddons.features.visuals import dev.isxander.yacl3.api.NameableEnum import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.config.NobaConfig -import me.nobaboy.nobaaddons.utils.LocationUtils.rayCast -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.items.ItemUtils.asSkyBlockItem +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.rayCast +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.toNobaVec import me.nobaboy.nobaaddons.utils.tr diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/TemporaryWaypoints.kt b/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/TemporaryWaypoints.kt index d6b5eb35..37f237df 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/TemporaryWaypoints.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/features/visuals/TemporaryWaypoints.kt @@ -1,19 +1,21 @@ package me.nobaboy.nobaaddons.features.visuals +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.api.skyblock.SkyBlockAPI import me.nobaboy.nobaaddons.api.skyblock.events.mythological.DianaAPI import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents import me.nobaboy.nobaaddons.utils.CommonPatterns -import me.nobaboy.nobaaddons.utils.LocationUtils.distanceToPlayer -import me.nobaboy.nobaaddons.utils.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.NumberUtils.addSeparators import me.nobaboy.nobaaddons.utils.RegexUtils.onPartialMatch -import me.nobaboy.nobaaddons.utils.Timestamp -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.distanceToPlayer +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.toNobaVec import me.nobaboy.nobaaddons.utils.tr @@ -53,7 +55,7 @@ object TemporaryWaypoints { val info = groups["info"]?.value?.take(32) ?: "" val text = "$username$info" - waypoints.add(Waypoint(location, text, Timestamp.now(), config.expirationTime.seconds)) + waypoints.add(Waypoint(location, text, Instant.now, config.expirationTime.seconds)) ChatUtils.addMessage(tr("nobaaddons.uiAndVisuals.temporaryWaypoints.fromChat", "Temporary Waypoint added at x: $x, y: $y, z: $z from $username")) } } @@ -94,10 +96,10 @@ object TemporaryWaypoints { } fun addWaypoint(x: Double, y: Double, z: Double, name: String) { - waypoints.add(Waypoint(NobaVec(x, y, z), name, Timestamp.now(), null)) + waypoints.add(Waypoint(NobaVec(x, y, z), name, Instant.now, null)) } - data class Waypoint(val location: NobaVec, val text: String, val timestamp: Timestamp, val duration: Duration?) { + private data class Waypoint(val location: NobaVec, val text: String, val timestamp: Instant, val duration: Duration?) { val expired: Boolean get() = duration != null && timestamp.elapsedSince() >= duration } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/repo/RepoManager.kt b/src/main/kotlin/me/nobaboy/nobaaddons/repo/RepoManager.kt index 3fee1beb..b12ac8bb 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/repo/RepoManager.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/repo/RepoManager.kt @@ -10,7 +10,7 @@ import me.nobaboy.nobaaddons.utils.ErrorManager import me.nobaboy.nobaaddons.utils.HTTPUtils import me.nobaboy.nobaaddons.utils.HTTPUtils.get import me.nobaboy.nobaaddons.utils.annotations.CoreModule -import me.nobaboy.nobaaddons.utils.chat.ChatUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import me.nobaboy.nobaaddons.utils.tr import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents import java.io.File diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaHudScreen.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaHudScreen.kt index 249ef81a..01bf440c 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaHudScreen.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaHudScreen.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.screens import me.nobaboy.nobaaddons.features.ui.infobox.InfoBoxesManager import me.nobaboy.nobaaddons.ui.HudElement import me.nobaboy.nobaaddons.ui.UIManager -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaMainScreen.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaMainScreen.kt index 7c94574b..e8aad7d0 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaMainScreen.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/NobaMainScreen.kt @@ -6,7 +6,7 @@ import me.nobaboy.nobaaddons.config.NobaConfig import me.nobaboy.nobaaddons.screens.keybinds.KeyBindsScreen import me.nobaboy.nobaaddons.screens.notifications.ChatNotificationsScreen import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/infoboxes/InfoBoxesScreen.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/infoboxes/InfoBoxesScreen.kt index 59bbed50..14d6eb41 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/infoboxes/InfoBoxesScreen.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/infoboxes/InfoBoxesScreen.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.screens.infoboxes import me.nobaboy.nobaaddons.features.ui.infobox.InfoBoxesManager -import me.nobaboy.nobaaddons.utils.ScreenUtils +import me.nobaboy.nobaaddons.utils.mc.ScreenUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsListWidget.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsListWidget.kt index 8b9477a5..6c1824d0 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsListWidget.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsListWidget.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.screens.keybinds import me.nobaboy.nobaaddons.features.keybinds.KeyBindsManager import me.nobaboy.nobaaddons.features.keybinds.impl.KeyBind import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.MinecraftClient import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsScreen.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsScreen.kt index 02753d04..5b1ee8fc 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsScreen.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/keybinds/KeyBindsScreen.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.screens.keybinds import me.nobaboy.nobaaddons.features.keybinds.impl.KeyBind -import me.nobaboy.nobaaddons.utils.ScreenUtils +import me.nobaboy.nobaaddons.utils.mc.ScreenUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsListWidget.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsListWidget.kt index fef25f1d..91cb400d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsListWidget.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsListWidget.kt @@ -2,9 +2,9 @@ package me.nobaboy.nobaaddons.screens.notifications import me.nobaboy.nobaaddons.features.chat.notifications.ChatNotificationsConfig import me.nobaboy.nobaaddons.utils.CommonText -import me.nobaboy.nobaaddons.utils.TextUtils.green -import me.nobaboy.nobaaddons.utils.TextUtils.red -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.green +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.MinecraftClient import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsScreen.kt b/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsScreen.kt index 07196c11..649c7cc1 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsScreen.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/screens/notifications/ChatNotificationsScreen.kt @@ -1,6 +1,6 @@ package me.nobaboy.nobaaddons.screens.notifications -import me.nobaboy.nobaaddons.utils.ScreenUtils +import me.nobaboy.nobaaddons.utils.mc.ScreenUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/ui/HudElement.kt b/src/main/kotlin/me/nobaboy/nobaaddons/ui/HudElement.kt index 6ced1ffc..238a1d9c 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/ui/HudElement.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/ui/HudElement.kt @@ -3,7 +3,7 @@ package me.nobaboy.nobaaddons.ui import me.nobaboy.nobaaddons.screens.NobaHudScreen import me.nobaboy.nobaaddons.ui.data.ElementBounds import me.nobaboy.nobaaddons.ui.data.ElementPosition -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NumberUtils.roundTo import me.nobaboy.nobaaddons.utils.render.RenderUtils import net.minecraft.client.gui.DrawContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextHudElement.kt b/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextHudElement.kt index 24b81121..879aca09 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextHudElement.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextHudElement.kt @@ -2,7 +2,7 @@ package me.nobaboy.nobaaddons.ui import me.nobaboy.nobaaddons.ui.data.ElementPosition import me.nobaboy.nobaaddons.ui.data.TextElement -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.render.RenderUtils import me.nobaboy.nobaaddons.utils.render.RenderUtils.getWidth diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextShadow.kt b/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextShadow.kt index c1956572..8e507da7 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextShadow.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/ui/TextShadow.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.ui import dev.isxander.yacl3.api.NameableEnum -import me.nobaboy.nobaaddons.utils.EnumUtils +import me.nobaboy.nobaaddons.utils.collections.EnumUtils import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/CooldownManager.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/CooldownManager.kt index 09680965..37485a24 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/CooldownManager.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/CooldownManager.kt @@ -1,14 +1,17 @@ package me.nobaboy.nobaaddons.utils +import kotlinx.datetime.Instant +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds open class CooldownManager(private val defaultDuration: Duration = 3.seconds) { - private var markedAt: Timestamp = Timestamp.distantPast() + private var markedAt: Instant = Instant.DISTANT_PAST private var cooldownDuration: Duration = defaultDuration fun startCooldown(duration: Duration = defaultDuration) { - this.markedAt = Timestamp.now() + this.markedAt = Instant.now this.cooldownDuration = duration } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/ErrorManager.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/ErrorManager.kt index 7f3beccc..164b4830 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/ErrorManager.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/ErrorManager.kt @@ -2,11 +2,14 @@ package me.nobaboy.nobaaddons.utils import me.nobaboy.nobaaddons.NobaAddons import me.nobaboy.nobaaddons.events.impl.client.TickEvents -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.hoverText -import me.nobaboy.nobaaddons.utils.TextUtils.red -import me.nobaboy.nobaaddons.utils.TextUtils.runCommand -import me.nobaboy.nobaaddons.utils.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.hoverText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.red +import me.nobaboy.nobaaddons.utils.mc.TextUtils.runCommand +import me.nobaboy.nobaaddons.utils.mc.TextUtils.yellow +import me.nobaboy.nobaaddons.utils.collections.TimedCache +import me.nobaboy.nobaaddons.utils.collections.TimedSet +import me.nobaboy.nobaaddons.utils.mc.MCUtils import net.minecraft.text.Text import net.minecraft.util.math.MathHelper import java.util.LinkedList diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimeUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimeUtils.kt new file mode 100644 index 00000000..72bfd4ef --- /dev/null +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimeUtils.kt @@ -0,0 +1,61 @@ +package me.nobaboy.nobaaddons.utils + +import kotlinx.datetime.Clock +import kotlinx.datetime.Instant +import me.nobaboy.nobaaddons.utils.RegexUtils.forEachMatch +import kotlin.text.replace +import kotlin.text.toLong +import kotlin.time.Duration +import kotlin.time.Duration.Companion.days +import kotlin.time.Duration.Companion.hours +import kotlin.time.Duration.Companion.minutes +import kotlin.time.Duration.Companion.seconds +import kotlin.time.DurationUnit + +private val timeRegex = Regex("([\\d,]+)([hms])") +private val durations: Map Duration> = mapOf( + "h" to { it.hours }, + "m" to { it.minutes }, + "s" to { it.seconds }, +) + +object TimeUtils { + // grumble grumble Instant.Companion.now() being error-level deprecated grumble grumble + inline val Instant.Companion.now get() = Clock.System.now() + + // TODO this is a duplicate StringUtils#asDuration, so move that one here and use it for this + fun String.asInstantOrNull(): Instant? { + var time: Duration = 0.seconds + + timeRegex.forEachMatch(this) { + time += durations[groups[2]!!.value]!!(groups[1]!!.value.replace(",", "").toLong()) + } + + return if(time > 0.seconds) Instant.now + time else null + } + + fun Instant.elapsedSince() = Instant.now - this + fun Instant.timeRemaining() = -elapsedSince() + + fun Instant.isPast(): Boolean = timeRemaining().isNegative() + fun Instant.isFuture(): Boolean = timeRemaining().isPositive() + + fun Duration.toShortString(): String = buildList { + val duration = this@toShortString + + if(duration.isNegative()) { + add("Soon!") + return@buildList + } + + val days = duration.inWholeDays.days + val hours = duration.inWholeHours.hours - days + val minutes = duration.inWholeMinutes.minutes - hours - days + val seconds = duration.inWholeSeconds.seconds - minutes - hours - days + + if(days >= 1.days) add(hours.toString(DurationUnit.DAYS, 0)) + if(hours >= 1.hours) add(hours.toString(DurationUnit.HOURS, 0)) + if(minutes >= 1.minutes) add(minutes.toString(DurationUnit.MINUTES, 0)) + if(seconds >= 1.seconds || duration < 1.seconds) add(seconds.toString(DurationUnit.SECONDS, 0)) + }.joinToString(" ") +} \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/Timestamp.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/Timestamp.kt deleted file mode 100644 index b0400c56..00000000 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/Timestamp.kt +++ /dev/null @@ -1,82 +0,0 @@ -package me.nobaboy.nobaaddons.utils - -import kotlinx.serialization.Serializable -import me.nobaboy.nobaaddons.utils.StringUtils.asDuration -import java.time.Instant -import kotlin.time.Duration -import kotlin.time.Duration.Companion.days -import kotlin.time.Duration.Companion.hours -import kotlin.time.Duration.Companion.milliseconds -import kotlin.time.Duration.Companion.minutes -import kotlin.time.Duration.Companion.seconds -import kotlin.time.DurationUnit - -/** - * This is taken and adapted from SkyHanni, which is licensed under the LGPL-2.1. - * - * [Original source](https://github.com/hannibal002/SkyHanni/blob/beta/src/main/java/at/hannibal2/skyhanni/utils/SimpleTimeMark.kt) - */ -// TODO use kotlinx.datetime.Instant instead? -@JvmInline -@Serializable -value class Timestamp(private val millis: Long) : Comparable { - operator fun unaryMinus() = Timestamp(-millis) - - operator fun plus(duration: Duration) = Timestamp(millis + duration.inWholeMilliseconds) - operator fun plus(milliseconds: Long) = Timestamp(millis + milliseconds) - operator fun plus(other: Timestamp) = (millis + other.millis).milliseconds - - operator fun minus(duration: Duration) = Timestamp(millis - duration.inWholeMilliseconds) - operator fun minus(milliseconds: Long) = Timestamp(millis - milliseconds) - operator fun minus(other: Timestamp) = (millis - other.millis).milliseconds - - fun elapsedSince() = now() - this - fun elapsedSeconds() = elapsedSince().inWholeSeconds - fun elapsedMinutes() = elapsedSince().inWholeMinutes - - fun timeRemaining() = -elapsedSince() - - fun isPast(): Boolean = timeRemaining().isNegative() - fun isFuture(): Boolean = timeRemaining().isPositive() - fun isDistantPast(): Boolean = millis == 0L - - fun toMillis(): Long = millis - override fun toString(): String = Instant.ofEpochMilli(toMillis()).toString() - - override fun compareTo(other: Timestamp): Int = millis.compareTo(other.millis) - - companion object { - fun now() = Timestamp(System.currentTimeMillis()) - fun distantPast() = Timestamp(0) - fun distantFuture() = Timestamp(Long.MAX_VALUE) - - fun Duration.fromNow() = now() + this - - fun Long.asTimestamp() = Timestamp(this) - fun SkyBlockTime.asTimestamp() = Timestamp(toMillis()) - fun Instant.asTimestamp() = Timestamp(this.toEpochMilli()) - - fun String.asTimestamp(): Timestamp? = asDuration()?.let { now() + it } - - // TODO this should be in a separate class (like a TimeUtils or similar), but I didn't want to make - // an entire extra class just for this one method - fun Duration.toShortString(): String = buildList { - val duration = this@toShortString - - if(duration.isNegative()) { - add("Soon!") - return@buildList - } - - val days = duration.inWholeDays.days - val hours = duration.inWholeHours.hours - days - val minutes = duration.inWholeMinutes.minutes - hours - days - val seconds = duration.inWholeSeconds.seconds - minutes - hours - days - - if(days >= 1.days) add(hours.toString(DurationUnit.DAYS, 0)) - if(hours >= 1.hours) add(hours.toString(DurationUnit.HOURS, 0)) - if(minutes >= 1.minutes) add(minutes.toString(DurationUnit.MINUTES, 0)) - if(seconds >= 1.seconds || duration < 1.seconds) add(seconds.toString(DurationUnit.SECONDS, 0)) - }.joinToString(" ") - } -} \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/CollectionUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/CollectionUtils.kt similarity index 91% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/CollectionUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/CollectionUtils.kt index fa8774f6..b2bdf924 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/CollectionUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/CollectionUtils.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.collections object CollectionUtils { fun List.anyEquals(other: String, ignoreCase: Boolean = false): Boolean = diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/EnumUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/EnumUtils.kt similarity index 90% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/EnumUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/EnumUtils.kt index 405bc026..55802252 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/EnumUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/EnumUtils.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.collections import net.minecraft.util.function.ValueLists import java.util.function.IntFunction diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimedCache.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/TimedCache.kt similarity index 93% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/TimedCache.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/TimedCache.kt index c482a31c..d77adc3d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimedCache.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/TimedCache.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.collections import com.google.common.cache.CacheBuilder import com.google.common.cache.RemovalCause diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimedSet.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/TimedSet.kt similarity index 94% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/TimedSet.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/TimedSet.kt index e73a2d56..fab70b1b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TimedSet.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/collections/TimedSet.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.collections import com.google.common.cache.RemovalCause import kotlin.time.Duration diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/enums/AnnounceChannel.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/AnnounceChannel.kt similarity index 87% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/enums/AnnounceChannel.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/AnnounceChannel.kt index 3dbd39f6..36000ea0 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/enums/AnnounceChannel.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/AnnounceChannel.kt @@ -1,7 +1,6 @@ -package me.nobaboy.nobaaddons.utils.enums +package me.nobaboy.nobaaddons.utils.hypixel import dev.isxander.yacl3.api.NameableEnum -import me.nobaboy.nobaaddons.utils.chat.HypixelCommands import me.nobaboy.nobaaddons.utils.tr import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/HypixelCommands.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/HypixelCommands.kt similarity index 91% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/HypixelCommands.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/HypixelCommands.kt index 12685a38..ce83d27b 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/HypixelCommands.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/HypixelCommands.kt @@ -1,8 +1,9 @@ -package me.nobaboy.nobaaddons.utils.chat +package me.nobaboy.nobaaddons.utils.hypixel import me.nobaboy.nobaaddons.api.HypixelAPI import me.nobaboy.nobaaddons.api.PartyAPI -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils import net.fabricmc.loader.api.FabricLoader object HypixelCommands { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockSeason.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockSeason.kt similarity index 71% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockSeason.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockSeason.kt index ca1b69a4..3e7800a9 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockSeason.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockSeason.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.hypixel // TODO Add season modifiers once needed enum class SkyBlockSeason { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockTime.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockTime.kt similarity index 78% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockTime.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockTime.kt index db016ba6..fecea1bb 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/SkyBlockTime.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/hypixel/SkyBlockTime.kt @@ -1,7 +1,8 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.hypixel +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.utils.NumberUtils.ordinalSuffix -import java.time.Instant +import me.nobaboy.nobaaddons.utils.TimeUtils.now /** * This is taken and adapted from SkyHanni, which is licensed under the LGPL-2.1. @@ -19,7 +20,8 @@ data class SkyBlockTime( val monthName get() = getMonthName(month) val dayName get() = "$day${day.ordinalSuffix()}" - fun toInstant(): Instant? = Instant.ofEpochMilli(toMillis()) + fun toInstantOrNull(): Instant? = Instant.fromEpochMilliseconds(toMillis()) + fun toInstant(): Instant = toInstantOrNull() ?: Instant.DISTANT_PAST fun toMillis(): Long = getSkyBlockTimeMillis(year, month, day, hour, minute, second) + SKYBLOCK_EPOCH_START_MILLIS @@ -29,19 +31,19 @@ data class SkyBlockTime( // SkyBlock Time Constants const val SKYBLOCK_YEAR_MILLIS = 124 * 60 * 60 * 1000L const val SKYBLOCK_SEASON_MILLIS = SKYBLOCK_YEAR_MILLIS / 4 - private const val SKYBLOCK_MONTH_MILLIS = SKYBLOCK_YEAR_MILLIS / 12 + const val SKYBLOCK_MONTH_MILLIS = SKYBLOCK_YEAR_MILLIS / 12 const val SKYBLOCK_DAY_MILLIS = SKYBLOCK_MONTH_MILLIS / 31 const val SKYBLOCK_HOUR_MILLIS = SKYBLOCK_DAY_MILLIS / 24 - private const val SKYBLOCK_MINUTE_MILLIS = SKYBLOCK_HOUR_MILLIS / 60 - private const val SKYBLOCK_SECOND_MILLIS = SKYBLOCK_MINUTE_MILLIS / 60 + const val SKYBLOCK_MINUTE_MILLIS = SKYBLOCK_HOUR_MILLIS / 60 + const val SKYBLOCK_SECOND_MILLIS = SKYBLOCK_MINUTE_MILLIS / 60 fun fromInstant(instant: Instant): SkyBlockTime = - calculateSkyBlockTime(instant.toEpochMilli() - SKYBLOCK_EPOCH_START_MILLIS) + calculateSkyBlockTime(instant.toEpochMilliseconds() - SKYBLOCK_EPOCH_START_MILLIS) fun fromYear(year: Int): SkyBlockTime = - fromInstant(Instant.ofEpochMilli(SKYBLOCK_EPOCH_START_MILLIS + (SKYBLOCK_YEAR_MILLIS * year))) + fromInstant(Instant.fromEpochMilliseconds(SKYBLOCK_EPOCH_START_MILLIS + (SKYBLOCK_YEAR_MILLIS * year))) - fun now(): SkyBlockTime = fromInstant(Instant.now()) + fun now(): SkyBlockTime = fromInstant(Instant.now) private fun calculateSkyBlockTime(milliseconds: Long): SkyBlockTime { var remainingMillis = milliseconds diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/items/SkyBlockItemData.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/items/SkyBlockItemData.kt index f35a3c34..739150d8 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/items/SkyBlockItemData.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/items/SkyBlockItemData.kt @@ -4,6 +4,7 @@ package me.nobaboy.nobaaddons.utils.items /*import kotlin.jvm.optionals.getOrNull *///?} +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.core.Rarity import me.nobaboy.nobaaddons.core.SkyBlockItemType import me.nobaboy.nobaaddons.core.attributes.Attribute @@ -11,7 +12,6 @@ import me.nobaboy.nobaaddons.core.enchants.Enchant import me.nobaboy.nobaaddons.core.enchants.EnchantBase import me.nobaboy.nobaaddons.core.enchants.StackingEnchant import me.nobaboy.nobaaddons.repo.Repo.fromRepo -import me.nobaboy.nobaaddons.utils.Timestamp import me.nobaboy.nobaaddons.utils.items.ItemUtils.lore import me.nobaboy.nobaaddons.utils.items.ItemUtils.nbt import me.nobaboy.nobaaddons.utils.properties.CacheOf @@ -95,7 +95,7 @@ class SkyBlockItemData(private val item: WeakReference) { val id: String by CacheOf(this::realNbt) { nbt.getString("id")!! } val uuid: String? by CacheOf(this::realNbt) { nbt.getString("uuid") } - val timestamp: Timestamp? by CacheOf(this::realNbt) { nbt.getLong("timestamp")?.let(::Timestamp) } + val timestamp: Instant? by CacheOf(this::realNbt) { nbt.getLong("timestamp")?.let(Instant::fromEpochMilliseconds) } val donatedToMuseum: Boolean by CacheOf(this::realNbt) { nbt.getBoolean("donated_museum") == true } // Potion diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/BlockUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/BlockUtils.kt similarity index 74% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/BlockUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/BlockUtils.kt index 013dde51..f06746e9 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/BlockUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/BlockUtils.kt @@ -1,5 +1,6 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc +import me.nobaboy.nobaaddons.utils.NobaVec import net.minecraft.block.Block import net.minecraft.block.BlockState diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/EntityUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/EntityUtils.kt similarity index 84% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/EntityUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/EntityUtils.kt index 55528106..1c579e87 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/EntityUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/EntityUtils.kt @@ -1,6 +1,7 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc -import me.nobaboy.nobaaddons.utils.LocationUtils.distanceTo +import me.nobaboy.nobaaddons.utils.mc.LocationUtils.distanceTo +import me.nobaboy.nobaaddons.utils.NobaVec import net.minecraft.entity.Entity object EntityUtils { diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/InventoryUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/InventoryUtils.kt similarity index 95% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/InventoryUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/InventoryUtils.kt index 0985b049..898f7a29 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/InventoryUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/InventoryUtils.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc //? if >=1.21.5 { /*import me.nobaboy.nobaaddons.mixins.accessors.PlayerInventoryAccessor diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/LocationUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/LocationUtils.kt similarity index 94% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/LocationUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/LocationUtils.kt index 56e5cfc9..7505db2d 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/LocationUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/LocationUtils.kt @@ -1,5 +1,7 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc +import me.nobaboy.nobaaddons.utils.NobaVec +import me.nobaboy.nobaaddons.utils.getNobaVec import me.nobaboy.nobaaddons.utils.render.FrustumUtils import net.minecraft.entity.Entity import net.minecraft.entity.player.PlayerEntity diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/MCUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/MCUtils.kt similarity index 98% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/MCUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/MCUtils.kt index 59196610..11399dee 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/MCUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/MCUtils.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc import me.nobaboy.nobaaddons.NobaAddons import net.fabricmc.loader.api.FabricLoader diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/PingUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/PingUtils.kt similarity index 92% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/PingUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/PingUtils.kt index 03dd2d6a..0aac66f0 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/PingUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/PingUtils.kt @@ -1,7 +1,10 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc import me.nobaboy.nobaaddons.events.impl.client.PacketEvents +import me.nobaboy.nobaaddons.utils.ErrorManager import me.nobaboy.nobaaddons.utils.NumberUtils.roundTo +import me.nobaboy.nobaaddons.utils.Scheduler +import me.nobaboy.nobaaddons.utils.collections.TimedSet import net.minecraft.network.packet.c2s.query.QueryPingC2SPacket import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket import net.minecraft.network.packet.s2c.query.PingResultS2CPacket diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/ScoreboardUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/ScoreboardUtils.kt similarity index 96% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/ScoreboardUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/ScoreboardUtils.kt index a8dce238..c25f90e3 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/ScoreboardUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/ScoreboardUtils.kt @@ -1,4 +1,4 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc import me.nobaboy.nobaaddons.utils.StringUtils.cleanFormatting import net.minecraft.scoreboard.ScoreboardDisplaySlot diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/ScreenUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/ScreenUtils.kt similarity index 72% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/ScreenUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/ScreenUtils.kt index 4747af8e..2b5fb61e 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/ScreenUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/ScreenUtils.kt @@ -1,5 +1,6 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc +import me.nobaboy.nobaaddons.utils.tr import net.minecraft.client.gui.screen.ConfirmScreen import net.minecraft.client.gui.screen.Screen import net.minecraft.screen.ScreenTexts @@ -25,7 +26,10 @@ object ScreenUtils { } }, tr("nobaaddons.screen.confirmClose", "Cancel Changes"), - tr("nobaaddons.screen.confirmClose.message", "You have unsaved changes; exiting now will discard them, would you like to continue?"), + tr( + "nobaaddons.screen.confirmClose.message", + "You have unsaved changes; exiting now will discard them, would you like to continue?" + ), ScreenTexts.YES, ScreenTexts.NO )) diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TextUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/TextUtils.kt similarity index 93% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/TextUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/TextUtils.kt index f5908ef7..24f106e6 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/TextUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/TextUtils.kt @@ -1,9 +1,10 @@ -package me.nobaboy.nobaaddons.utils +package me.nobaboy.nobaaddons.utils.mc //? if >=1.21.5 { /*import java.net.URI *///?} +import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage import net.minecraft.text.ClickEvent import net.minecraft.text.HoverEvent @@ -115,9 +116,4 @@ object TextUtils { operator fun MutableText.plus(other: Text): MutableText = this.append(other) operator fun MutableText.plus(other: String): MutableText = this.append(other) -} - -fun tr(key: String, default: String): MutableText = error("Compiler plugin did not run") - -@Suppress("unused") // uses of tr are replaced with this method at compile time -fun trResolved(key: String, vararg args: Any): MutableText = Text.stringifiedTranslatable(key, *args) +} \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/ChatUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/chat/ChatUtils.kt similarity index 91% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/ChatUtils.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/chat/ChatUtils.kt index d1040f7b..a26e1a02 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/ChatUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/chat/ChatUtils.kt @@ -1,17 +1,21 @@ -package me.nobaboy.nobaaddons.utils.chat +package me.nobaboy.nobaaddons.utils.mc.chat import kotlinx.coroutines.CompletableDeferred +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.NobaAddons import me.nobaboy.nobaaddons.events.impl.chat.ChatMessageEvents import me.nobaboy.nobaaddons.events.impl.client.TickEvents import me.nobaboy.nobaaddons.utils.CooldownManager import me.nobaboy.nobaaddons.utils.ErrorManager -import me.nobaboy.nobaaddons.utils.MCUtils -import me.nobaboy.nobaaddons.utils.TextUtils.buildText -import me.nobaboy.nobaaddons.utils.TextUtils.runCommand -import me.nobaboy.nobaaddons.utils.TextUtils.toText -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import me.nobaboy.nobaaddons.utils.annotations.UntranslatedMessage +import me.nobaboy.nobaaddons.utils.mc.MCUtils +import me.nobaboy.nobaaddons.utils.mc.TextUtils.buildText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.runCommand +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils.addMessage +import me.nobaboy.nobaaddons.utils.mc.chat.ChatUtils.addMessageWithClickAction import net.fabricmc.loader.api.FabricLoader import net.minecraft.text.MutableText import net.minecraft.text.Text @@ -195,7 +199,7 @@ object ChatUtils { @JvmRecord private data class ClickAction( val callback: () -> Unit, - val createdAt: Timestamp = Timestamp.now(), + val createdAt: Instant = Instant.now, val ttl: Duration = 1.minutes, ) } \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/Message.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/chat/Message.kt similarity index 86% rename from src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/Message.kt rename to src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/chat/Message.kt index 8a271ed4..b8a092ff 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/chat/Message.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/mc/chat/Message.kt @@ -1,7 +1,7 @@ -package me.nobaboy.nobaaddons.utils.chat +package me.nobaboy.nobaaddons.utils.mc.chat import me.nobaboy.nobaaddons.mixins.accessors.ChatHudAccessor -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import net.minecraft.client.gui.hud.ChatHudLine import net.minecraft.text.Text diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/properties/CacheFor.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/properties/CacheFor.kt index b69b0467..1eff33f8 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/properties/CacheFor.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/properties/CacheFor.kt @@ -1,6 +1,8 @@ package me.nobaboy.nobaaddons.utils.properties -import me.nobaboy.nobaaddons.utils.Timestamp +import kotlinx.datetime.Instant +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import kotlin.reflect.KProperty import kotlin.time.Duration @@ -8,14 +10,14 @@ class CacheFor(val duration: Duration, val getter: () -> T) { private val lock = Any() @Volatile private var value: T? = null - @Volatile private var lastCached: Timestamp = Timestamp.distantPast() + @Volatile private var lastCached: Instant = Instant.DISTANT_PAST - @Suppress("UNCHECKED_CAST") + @Suppress("UNCHECKED_CAST", "unused") operator fun getValue(instance: Any, property: KProperty<*>): T { synchronized(lock) { if(lastCached.elapsedSince() <= duration) return value as T value = getter() - lastCached = Timestamp.now() + lastCached = Instant.now return value as T } } diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/FrustumUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/FrustumUtils.kt index 212c041b..37e220cd 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/FrustumUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/FrustumUtils.kt @@ -1,7 +1,7 @@ package me.nobaboy.nobaaddons.utils.render import me.nobaboy.nobaaddons.mixins.accessors.WorldRendererAccessor -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NobaVec import net.minecraft.client.render.Frustum import net.minecraft.util.math.Box diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/RenderUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/RenderUtils.kt index 8d6ed072..d5560dff 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/RenderUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/RenderUtils.kt @@ -16,11 +16,11 @@ import org.lwjgl.opengl.GL11 //?} import me.nobaboy.nobaaddons.mixins.accessors.BeaconBlockEntityRendererInvoker -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor import me.nobaboy.nobaaddons.utils.NobaVec import me.nobaboy.nobaaddons.utils.StringUtils -import me.nobaboy.nobaaddons.utils.TextUtils.toText +import me.nobaboy.nobaaddons.utils.mc.TextUtils.toText import me.nobaboy.nobaaddons.utils.expand import me.nobaboy.nobaaddons.utils.toNobaVec import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/TitleManager.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/TitleManager.kt index 16e2ccd3..00886cff 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/TitleManager.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/render/TitleManager.kt @@ -1,9 +1,11 @@ package me.nobaboy.nobaaddons.utils.render +import kotlinx.datetime.Instant import me.nobaboy.nobaaddons.events.impl.skyblock.SkyBlockEvents -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.NobaColor -import me.nobaboy.nobaaddons.utils.Timestamp +import me.nobaboy.nobaaddons.utils.TimeUtils.elapsedSince +import me.nobaboy.nobaaddons.utils.TimeUtils.now import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback import net.minecraft.client.gui.DrawContext import net.minecraft.text.Text @@ -40,7 +42,7 @@ object TitleManager { id: String, subtext: Text?, ) { - val title = Title(text, color, scale, offset, duration, Timestamp.now(), subtext) + val title = Title(text, color, scale, offset, duration, Instant.now, subtext) titles[id] = title } @@ -50,7 +52,7 @@ object TitleManager { val scale: Float, val offset: Int, val duration: Duration, - val timestamp: Timestamp, + val timestamp: Instant, val subtext: Text?, ) { val expired: Boolean get() = timestamp.elapsedSince() >= duration diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/serializers/InstantUnixTimestampKSerializer.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/serializers/InstantUnixTimestampKSerializer.kt new file mode 100644 index 00000000..90b35a51 --- /dev/null +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/serializers/InstantUnixTimestampKSerializer.kt @@ -0,0 +1,21 @@ +package me.nobaboy.nobaaddons.utils.serializers + +import kotlinx.datetime.Instant +import kotlinx.serialization.KSerializer +import kotlinx.serialization.descriptors.PrimitiveKind +import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +object InstantUnixTimestampKSerializer : KSerializer { + override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Instant", PrimitiveKind.LONG) + + override fun serialize(encoder: Encoder, value: Instant) { + encoder.encodeLong(value.toEpochMilliseconds()) + } + + override fun deserialize(decoder: Decoder): Instant { + return Instant.fromEpochMilliseconds(decoder.decodeLong()) + } +} \ No newline at end of file diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/sound/SoundUtils.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/sound/SoundUtils.kt index 0ea5a0c6..60d3fece 100644 --- a/src/main/kotlin/me/nobaboy/nobaaddons/utils/sound/SoundUtils.kt +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/sound/SoundUtils.kt @@ -1,6 +1,6 @@ package me.nobaboy.nobaaddons.utils.sound -import me.nobaboy.nobaaddons.utils.MCUtils +import me.nobaboy.nobaaddons.utils.mc.MCUtils import me.nobaboy.nobaaddons.utils.Scheduler import net.minecraft.sound.SoundCategory import net.minecraft.sound.SoundEvent diff --git a/src/main/kotlin/me/nobaboy/nobaaddons/utils/translations.kt b/src/main/kotlin/me/nobaboy/nobaaddons/utils/translations.kt new file mode 100644 index 00000000..9c40cb1e --- /dev/null +++ b/src/main/kotlin/me/nobaboy/nobaaddons/utils/translations.kt @@ -0,0 +1,10 @@ +@file:Suppress("unused") + +package me.nobaboy.nobaaddons.utils + +import net.minecraft.text.MutableText +import net.minecraft.text.Text + +// uses of `tr` are replaced with `trResolved` at compile time +fun tr(key: String, default: String): MutableText = error("Compiler plugin did not run") +fun trResolved(key: String, vararg args: Any): MutableText = Text.stringifiedTranslatable(key, *args)