From da452cdcbdb573f431c72bfb8035a7f3ce999009 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Tue, 28 Nov 2023 22:01:15 +0100 Subject: code cleanup, and used SkyHanni framework at more spots --- .../SkyhanniPlayersWhenTheySeeUngiftedPlayers.kt | 84 ---------------------- .../event/UniqueGiftingOpportnitiesFeatures.kt | 79 ++++++++++++++++++++ 2 files changed, 79 insertions(+), 84 deletions(-) delete mode 100644 src/main/java/at/hannibal2/skyhanni/features/event/SkyhanniPlayersWhenTheySeeUngiftedPlayers.kt create mode 100644 src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/SkyhanniPlayersWhenTheySeeUngiftedPlayers.kt b/src/main/java/at/hannibal2/skyhanni/features/event/SkyhanniPlayersWhenTheySeeUngiftedPlayers.kt deleted file mode 100644 index e720e3e30..000000000 --- a/src/main/java/at/hannibal2/skyhanni/features/event/SkyhanniPlayersWhenTheySeeUngiftedPlayers.kt +++ /dev/null @@ -1,84 +0,0 @@ -package at.hannibal2.skyhanni.features.event - -import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.data.ProfileStorageData -import at.hannibal2.skyhanni.events.EntityCustomNameUpdateEvent -import at.hannibal2.skyhanni.events.LorenzChatEvent -import at.hannibal2.skyhanni.events.RenderMobColoredEvent -import at.hannibal2.skyhanni.events.withAlpha -import at.hannibal2.skyhanni.utils.EntityUtils.isNPC -import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName -import at.hannibal2.skyhanni.utils.LorenzColor -import at.hannibal2.skyhanni.utils.LorenzUtils -import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher -import at.hannibal2.skyhanni.utils.getLorenzVec -import net.minecraft.client.Minecraft -import net.minecraft.entity.item.EntityArmorStand -import net.minecraft.entity.player.EntityPlayer -import net.minecraftforge.event.entity.EntityJoinWorldEvent -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent - -object SkyhanniPlayersWhenTheySeeUngiftedPlayers { - val playerList: MutableSet? - get() = ProfileStorageData.playerSpecific?.playersThatHaveBeenGifted - - val pattern = "§6\\+1 Unique Gift given! To ([^§]+)§r§6!".toPattern() - fun hasGiftedPlayer(player: EntityPlayer): Boolean = - playerList?.contains(player.name) == true - - fun addGiftedPlayer(playerName: String): Unit { - playerList?.add(playerName) - } - - val config get() = SkyHanniMod.feature.event.winter.giftingOpportunities - - fun isEnabled(): Boolean { - return LorenzUtils.inSkyBlock && config.highlightSpecialNeedsPlayers && - (Minecraft.getMinecraft().thePlayer?.heldItem?.getInternalName()?.endsWith("_GIFT") == true - || (!config.highlighWithGiftOnly)) - } - - val hasNotGiftedNametag = "§a§lꤥ" - val hasGiftedNametag = "§c§lꤥ" - - fun analyzeArmorStand(entity: EntityArmorStand) { - if (!config.useArmorStandDetection) return - val world = Minecraft.getMinecraft().theWorld ?: return - if (entity.name != hasGiftedNametag) return - val matchedPlayer = - world.playerEntities.singleOrNull { - !it.isNPC() && it.getLorenzVec().distance(entity.getLorenzVec()) < 2 - } ?: return - addGiftedPlayer(matchedPlayer.name) - - } - - @SubscribeEvent - fun onEntityChangeName(event: EntityCustomNameUpdateEvent) { - val entity = event.entity as? EntityArmorStand ?: return - analyzeArmorStand(entity) - } - - @SubscribeEvent - fun onEntityJoinWorldEvent(event: EntityJoinWorldEvent) { - val entity = event.entity as? EntityArmorStand ?: return - analyzeArmorStand(entity) - } - - @SubscribeEvent - fun onRenderMobColored(event: RenderMobColoredEvent) { - if (!isEnabled()) return - val entity = event.entity - if (entity is EntityPlayer && !entity.isNPC() && !hasGiftedPlayer(entity)) - event.color = LorenzColor.DARK_GREEN.toColor().withAlpha(127) - } - - - @SubscribeEvent - fun onChat(event: LorenzChatEvent) { - pattern.matchMatcher(event.message) { - addGiftedPlayer(group(1)) - } - } - -} diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt new file mode 100644 index 000000000..6679f402c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/event/UniqueGiftingOpportnitiesFeatures.kt @@ -0,0 +1,79 @@ +package at.hannibal2.skyhanni.features.event + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.data.ProfileStorageData +import at.hannibal2.skyhanni.events.EntityCustomNameUpdateEvent +import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.events.RenderMobColoredEvent +import at.hannibal2.skyhanni.events.withAlpha +import at.hannibal2.skyhanni.utils.EntityUtils +import at.hannibal2.skyhanni.utils.EntityUtils.isNPC +import at.hannibal2.skyhanni.utils.InventoryUtils +import at.hannibal2.skyhanni.utils.LorenzColor +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.getLorenzVec +import net.minecraft.entity.item.EntityArmorStand +import net.minecraft.entity.player.EntityPlayer +import net.minecraftforge.event.entity.EntityJoinWorldEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +object UniqueGiftingOpportnitiesFeatures { + private val playerList: MutableSet? + get() = ProfileStorageData.playerSpecific?.playersThatHaveBeenGifted + + private val pattern = "§6\\+1 Unique Gift given! To ([^§]+)§r§6!".toPattern() + + private fun hasGiftedPlayer(player: EntityPlayer) = playerList?.contains(player.name) == true + + private fun addGiftedPlayer(playerName: String) { + playerList?.add(playerName) + } + + private val config get() = SkyHanniMod.feature.event.winter.giftingOpportunities + + private fun isEnabled() = LorenzUtils.inSkyBlock && config.enabled && + (InventoryUtils.itemInHandId.endsWith("_GIFT") + || !config.highlighWithGiftOnly) + + private val hasNotGiftedNametag = "§a§lꤥ" + private val hasGiftedNametag = "§c§lꤥ" + + private fun analyzeArmorStand(entity: EntityArmorStand) { + if (!config.useArmorStandDetection) return + if (entity.name != hasGiftedNametag) return + + val matchedPlayer = EntityUtils.getEntitiesNearby(entity.getLorenzVec(), 2.0) + .singleOrNull { !it.isNPC() } ?: return + addGiftedPlayer(matchedPlayer.name) + + } + + @SubscribeEvent + fun onEntityChangeName(event: EntityCustomNameUpdateEvent) { + val entity = event.entity as? EntityArmorStand ?: return + analyzeArmorStand(entity) + } + + @SubscribeEvent + fun onEntityJoinWorldEvent(event: EntityJoinWorldEvent) { + val entity = event.entity as? EntityArmorStand ?: return + analyzeArmorStand(entity) + } + + @SubscribeEvent + fun onRenderMobColored(event: RenderMobColoredEvent) { + if (!isEnabled()) return + val entity = event.entity + if (entity is EntityPlayer && !entity.isNPC() && !hasGiftedPlayer(entity)) + event.color = LorenzColor.DARK_GREEN.toColor().withAlpha(127) + } + + @SubscribeEvent + fun onChat(event: LorenzChatEvent) { + pattern.matchMatcher(event.message) { + addGiftedPlayer(group(1)) + } + } + +} -- cgit