summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/misc
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2024-06-06 00:01:30 +1000
committerGitHub <noreply@github.com>2024-06-05 16:01:30 +0200
commiteb7fd3da94cec90674e29e93ca0d744e2a2889fb (patch)
treea83d663c1229207b0cf5977290aa2609ba22efec /src/main/java/at/hannibal2/skyhanni/features/misc
parent5a04ad230cc4fb94884b34f795124d3b65af07ea (diff)
downloadskyhanni-eb7fd3da94cec90674e29e93ca0d744e2a2889fb.tar.gz
skyhanni-eb7fd3da94cec90674e29e93ca0d744e2a2889fb.tar.bz2
skyhanni-eb7fd3da94cec90674e29e93ca0d744e2a2889fb.zip
Backend: More second passed (#1899)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/MarkedPlayerManager.kt120
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt5
2 files changed, 59 insertions, 66 deletions
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<String>()
+ private val markedPlayers = mutableMapOf<String, EntityOtherPlayerMP>()
- val playerNamesToMark = mutableListOf<String>()
- private val markedPlayers = mutableMapOf<String, EntityOtherPlayerMP>()
-
- fun command(args: Array<String>) {
- if (args.size != 1) {
- ChatUtils.userError("Usage: /shmarkplayer <name>")
- return
- }
-
- val displayName = args[0]
- val name = displayName.lowercase()
+ fun command(args: Array<String>) {
+ if (args.size != 1) {
+ ChatUtils.userError("Usage: /shmarkplayer <name>")
+ 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<EntityOtherPlayerMP>()) {
- if (entity in markedPlayers.values) continue
+ private fun findPlayers() {
+ for (entity in EntityUtils.getEntities<EntityOtherPlayerMP>()) {
+ 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()