diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/RenderColumn.kt | 6 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListRenderer.kt | 38 |
2 files changed, 34 insertions, 10 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/RenderColumn.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/RenderColumn.kt index 2ee1e3442..894dee93b 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/RenderColumn.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/RenderColumn.kt @@ -1,8 +1,6 @@ package at.hannibal2.skyhanni.features.misc.compacttablist -class RenderColumn { - - val lines = mutableListOf<TabLine>() +class RenderColumn(val lines: MutableList<TabLine> = mutableListOf()) { fun size(): Int { return lines.size @@ -15,4 +13,4 @@ class RenderColumn { fun getMaxWidth(): Int { return lines.maxOfOrNull { it.getWidth() } ?: 0 } -}
\ No newline at end of file +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListRenderer.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListRenderer.kt index d5cc7f875..b796b6e79 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListRenderer.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListRenderer.kt @@ -1,8 +1,11 @@ package at.hannibal2.skyhanni.features.misc.compacttablist import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.SkipTabListLineEvent import at.hannibal2.skyhanni.mixins.transformers.AccessorGuiPlayerTabOverlay import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.StringUtils.matches +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraft.client.Minecraft import net.minecraft.client.gui.Gui import net.minecraft.client.gui.ScaledResolution @@ -91,18 +94,31 @@ object TabListRenderer { } var middleX = x + var lastTitle = null as TabLine? + var lastSubTitle = null as TabLine? for (column in columns) { var middleY = if (config.hideAdverts) headerY else headerY + padding + 2 + val filteredColumn = column.lines.filterTo(mutableListOf()) { tabLine -> + if (tabLine.type == TabStringType.TITLE) { + lastSubTitle = null + lastTitle = tabLine + } + if (tabLine.type == TabStringType.SUB_TITLE) { + lastSubTitle = tabLine + } + !SkipTabListLineEvent(tabLine, lastSubTitle, lastTitle).postAndCatch() + }.let(::RenderColumn) + Gui.drawRect( middleX - padding + 1, middleY - padding + 1, - middleX + column.getMaxWidth() + padding - 2, - middleY + column.size() * lineHeight + padding - 2, + middleX + filteredColumn.getMaxWidth() + padding - 2, + middleY + filteredColumn.size() * lineHeight + padding - 2, 0x20AAAAAA ) - for (tabLine in column.lines) { + for (tabLine in filteredColumn.lines) { val savedX = middleX val hideIcons = config.advancedPlayerList.hidePlayerIcons && !AdvancedPlayerList.ignoreCustomTabList() @@ -125,7 +141,7 @@ object TabListRenderer { if (tabLine.type == TabStringType.TITLE) { minecraft.fontRendererObj.drawStringWithShadow( text, - middleX + column.getMaxWidth() / 2f - tabLine.getWidth() / 2f, + middleX + filteredColumn.getMaxWidth() / 2f - tabLine.getWidth() / 2f, middleY.toFloat(), 0xFFFFFF ) @@ -140,7 +156,7 @@ object TabListRenderer { middleY += lineHeight middleX = savedX } - middleX += column.getMaxWidth() + columnSpacing + middleX += filteredColumn.getMaxWidth() + columnSpacing } if (footer.isNotEmpty()) { @@ -156,4 +172,14 @@ object TabListRenderer { } } } -}
\ No newline at end of file + + val fireSaleRegex by RepoPattern.pattern("tablist.firesaletitle", "^§b§lFire Sales: §r§f\\([0-9]+\\)$") + + @SubscribeEvent + fun hideFireFromTheTabListBecauseWhoWantsThose(event: SkipTabListLineEvent) { + if (config.hideFiresales && event.lastSubTitle != null && fireSaleRegex.matches(event.lastSubTitle.text)) { + event.cancel() + } + } + +} |
