diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/compat/TextCompat.kt | 53 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt | 23 |
2 files changed, 55 insertions, 21 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/TextCompat.kt b/src/main/java/at/hannibal2/skyhanni/utils/compat/TextCompat.kt new file mode 100644 index 000000000..f34efe473 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/TextCompat.kt @@ -0,0 +1,53 @@ +package at.hannibal2.skyhanni.utils.compat + +import net.minecraft.util.IChatComponent +//#if MC > 1.16 +//$$ import net.minecraft.ChatFormatting +//$$ import net.minecraft.network.chat.TextColor +//#endif +//#if MC > 1.20 +//$$ import net.minecraft.text.MutableText +//$$ import net.minecraft.text.PlainTextContent +//#endif + +fun IChatComponent.getDirectlyContainedText() = +//#if MC < 1.16 + this.unformattedTextForChat +//#elseif MC < 1.20 +//$$ this.contents +//#else +//$$ (this.content as? PlainTextContent)?.string().orEmpty() +//#endif + +fun IChatComponent.getFormattedTextCompat() = +//#if MC < 1.16 + this.formattedText +//#else +//$$run { +//$$ val sb = StringBuilder() +//$$ for (component in iterator()) { +//$$ sb.append(component.style.color?.toChatFormatting()?.toString() ?: "§r") +//$$ sb.append(component.getDirectlyContainedText()) +//$$ sb.append("§r") +//$$ } +//$$ sb.toString() +//$$} +//$$ +//$$private val textColorLUT = ChatFormatting.entries +//$$ .mapNotNull { formatting -> formatting.color?.let { it to formatting } } +//$$ .toMap() +//$$ +//$$fun TextColor.toChatFormatting(): ChatFormatting? { +//$$ return textColorLUT[this.value] +//$$} +//$$ +//$$fun Component.iterator(): Sequence<Component> { +//$$ return sequenceOf(this) + siblings.asSequence().flatMap { it.iterator() } // TODO: in theory we want to properly inherit styles here +//$$} +//#endif + +//#if MC > 1.20 +//$$fun MutableText.withColor(formatting: Formatting): Text { +//$$ return this.styled { it.withColor(formatting) } +//$$} +//#endif diff --git a/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt b/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt index 7916eb4e5..6402e44b4 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/compat/World.kt @@ -6,7 +6,6 @@ import net.minecraft.entity.Entity import net.minecraft.entity.item.EntityArmorStand import net.minecraft.entity.player.EntityPlayer import net.minecraft.potion.Potion -import net.minecraft.util.IChatComponent fun WorldClient.getLoadedPlayers(): List<EntityPlayer> = //#if MC < 1.14 @@ -15,18 +14,17 @@ fun WorldClient.getLoadedPlayers(): List<EntityPlayer> = //$$ this.players() //#endif - fun Entity.getNameAsString(): String = this.name //#if MC >= 1.14 -//$$ .getString() +//$$ .string //#endif fun EntityArmorStand.getArmorOrFullInventory() = //#if MC < 1.12 this.inventory //#else -//$$ this.getArmorInventoryList() +//$$ this.armorInventoryList //#endif fun Minecraft.isOnMainThread() = @@ -36,21 +34,6 @@ fun Minecraft.isOnMainThread() = //$$ this.isSameThread //#endif -fun IChatComponent.getFormattedTextCompat() = -//#if MC < 1.16 - this.formattedText -//#else -//$$ run { -//$$ val sb = StringBuilder() -//$$ for (component in iterator()) { -//$$ sb.append(component.style.formattingCode) -//$$ sb.append(component.unformattedComponentText) -//$$ sb.append("§r") -//$$ } -//$$ sb.toString() -//$$ } -//#endif - object Effects { val invisibility = //#if MC <1.12 @@ -59,5 +42,3 @@ object Effects { //$$ net.minecraft.init.PotionTypes.INVISIBILITY //#endif } - - |
