From eb7fd3da94cec90674e29e93ca0d744e2a2889fb Mon Sep 17 00:00:00 2001 From: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Date: Thu, 6 Jun 2024 00:01:30 +1000 Subject: Backend: More second passed (#1899) Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- .../skyhanni/features/misc/MarkedPlayerManager.kt | 120 ++++++++++----------- .../features/misc/NonGodPotEffectDisplay.kt | 5 +- 2 files changed, 59 insertions(+), 66 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc') diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt index 5edabcbb1..696e2f5c4 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt @@ -4,8 +4,8 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.config.enums.OutsideSbFeature import at.hannibal2.skyhanni.events.ConfigLoadEvent -import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent +import at.hannibal2.skyhanni.events.SecondPassedEvent import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper import at.hannibal2.skyhanni.utils.ChatUtils import at.hannibal2.skyhanni.utils.ColorUtils.withAlpha @@ -16,81 +16,77 @@ import net.minecraft.client.Minecraft import net.minecraft.client.entity.EntityOtherPlayerMP import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -class MarkedPlayerManager { - companion object { +object MarkedPlayerManager { + val config get() = SkyHanniMod.feature.gui.markedPlayers - val config get() = SkyHanniMod.feature.gui.markedPlayers + private val playerNamesToMark = mutableListOf() + private val markedPlayers = mutableMapOf() - val playerNamesToMark = mutableListOf() - private val markedPlayers = mutableMapOf() - - fun command(args: Array) { - if (args.size != 1) { - ChatUtils.userError("Usage: /shmarkplayer ") - return - } - - val displayName = args[0] - val name = displayName.lowercase() + fun command(args: Array) { + if (args.size != 1) { + ChatUtils.userError("Usage: /shmarkplayer ") + return + } + val displayName = args[0] + val name = displayName.lowercase() - if (name == LorenzUtils.getPlayerName().lowercase()) { - ChatUtils.userError("You can't add or remove yourself this way! Go to the settings and toggle 'Mark your own name'.") - return - } + if (name == LorenzUtils.getPlayerName().lowercase()) { + ChatUtils.userError("You can't add or remove yourself this way! Go to the settings and toggle 'Mark your own name'.") + return + } - if (name !in playerNamesToMark) { - playerNamesToMark.add(name) - findPlayers() - ChatUtils.chat("§aMarked §eplayer §b$displayName§e!") - } else { - playerNamesToMark.remove(name) - markedPlayers[name]?.let { RenderLivingEntityHelper.removeCustomRender(it) } - markedPlayers.remove(name) - ChatUtils.chat("§cUnmarked §eplayer §b$displayName§e!") - } + if (name !in playerNamesToMark) { + playerNamesToMark.add(name) + findPlayers() + ChatUtils.chat("§aMarked §eplayer §b$displayName§e!") + } else { + playerNamesToMark.remove(name) + markedPlayers[name]?.let { RenderLivingEntityHelper.removeCustomRender(it) } + markedPlayers.remove(name) + ChatUtils.chat("§cUnmarked §eplayer §b$displayName§e!") } + } - private fun findPlayers() { - for (entity in EntityUtils.getEntities()) { - if (entity in markedPlayers.values) continue + private fun findPlayers() { + for (entity in EntityUtils.getEntities()) { + if (entity in markedPlayers.values) continue - val name = entity.name.lowercase() - if (name in playerNamesToMark) { - markedPlayers[name] = entity - entity.setColor() - } + val name = entity.name.lowercase() + if (name in playerNamesToMark) { + markedPlayers[name] = entity + entity.setColor() } } + } - private fun refreshColours() = - markedPlayers.forEach { - it.value.setColor() - } - - private fun EntityOtherPlayerMP.setColor() { - RenderLivingEntityHelper.setEntityColorWithNoHurtTime( - this, - config.entityColor.get().toColor().withAlpha(127), - ::isEnabled - ) + private fun refreshColours() = + markedPlayers.forEach { + it.value.setColor() } - fun isMarkedPlayer(player: String): Boolean = player.lowercase() in playerNamesToMark + private fun EntityOtherPlayerMP.setColor() { + RenderLivingEntityHelper.setEntityColorWithNoHurtTime( + this, + config.entityColor.get().toColor().withAlpha(127), + ::isEnabled + ) + } - private fun isEnabled() = (LorenzUtils.inSkyBlock || OutsideSbFeature.MARKED_PLAYERS.isSelected()) - && config.highlightInWorld + fun isMarkedPlayer(player: String): Boolean = player.lowercase() in playerNamesToMark - fun replaceInChat(string: String): String { - if (!config.highlightInChat) return string + private fun isEnabled() = (LorenzUtils.inSkyBlock || OutsideSbFeature.MARKED_PLAYERS.isSelected()) + && config.highlightInWorld - val color = config.chatColor.getChatColor() - var text = string - for (markedPlayer in playerNamesToMark) { - text = text.replace(markedPlayer, "$color$markedPlayer§r") - } - return text + fun replaceInChat(string: String): String { + if (!config.highlightInChat) return string + + val color = config.chatColor.getChatColor() + var text = string + for (markedPlayer in playerNamesToMark) { + text = text.replace(markedPlayer, "$color$markedPlayer§r") } + return text } @SubscribeEvent @@ -109,12 +105,10 @@ class MarkedPlayerManager { } @SubscribeEvent - fun onTick(event: LorenzTickEvent) { + fun onSecondPassed(event: SecondPassedEvent) { if (!isEnabled()) return - if (event.repeatSeconds(1)) { - findPlayers() - } + findPlayers() } @SubscribeEvent diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt index d4f94d6e2..a0a203879 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt @@ -6,10 +6,10 @@ import at.hannibal2.skyhanni.data.ProfileStorageData import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent import at.hannibal2.skyhanni.events.LorenzChatEvent -import at.hannibal2.skyhanni.events.LorenzTickEvent import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent import at.hannibal2.skyhanni.events.PacketEvent import at.hannibal2.skyhanni.events.ProfileJoinEvent +import at.hannibal2.skyhanni.events.SecondPassedEvent import at.hannibal2.skyhanni.features.dungeon.DungeonAPI import at.hannibal2.skyhanni.features.rift.RiftAPI import at.hannibal2.skyhanni.test.command.ErrorManager @@ -175,9 +175,8 @@ class NonGodPotEffectDisplay { } @SubscribeEvent - fun onTick(event: LorenzTickEvent) { + fun onSecondPassed(event: SecondPassedEvent) { if (!isEnabled()) return - if (!event.repeatSeconds(1)) return if (!ProfileStorageData.loaded) return update() -- cgit