diff options
author | Linnea Gräf <nea@nea.moe> | 2024-01-21 14:06:34 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-01-21 14:06:34 +0100 |
commit | 3e1f75e32253bca3312f478a60d315bec37bc112 (patch) | |
tree | 14260e41bd2d8669d6d3ffa9a9a30d1d9ee2fe6c /src/main/kotlin/moe/nea/firmament/util | |
parent | 18ebd21cb0f97dea8367e65002e0bf32e5c686e2 (diff) | |
download | firmament-3e1f75e32253bca3312f478a60d315bec37bc112.tar.gz firmament-3e1f75e32253bca3312f478a60d315bec37bc112.tar.bz2 firmament-3e1f75e32253bca3312f478a60d315bec37bc112.zip |
Bump to 1.20.4
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util')
5 files changed, 21 insertions, 16 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt b/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt index cccff64..4f8c90c 100644 --- a/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt +++ b/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt @@ -17,17 +17,17 @@ fun ItemStack.appendLore(args: List<Text>) { val compoundTag = getOrCreateSubNbt("display") val loreList = compoundTag.getOrCreateList("Lore", NbtString.STRING_TYPE) for (arg in args) { - loreList.add(NbtString.of(Text.Serializer.toJson(arg))) + loreList.add(NbtString.of(Text.Serialization.toJsonString(arg))) } } fun ItemStack.modifyLore(update: (List<Text>) -> List<Text>) { val compoundTag = getOrCreateSubNbt("display") val loreList = compoundTag.getOrCreateList("Lore", NbtString.STRING_TYPE) - val parsed = loreList.map { Text.Serializer.fromJson(it.asString())!! } + val parsed = loreList.map { Text.Serialization.fromJson(it.asString())!! } val updated = update(parsed) loreList.clear() - loreList.addAll(updated.map { NbtString.of(Text.Serializer.toJson(it)) }) + loreList.addAll(updated.map { NbtString.of(Text.Serialization.toJsonString(it)) }) } diff --git a/src/main/kotlin/moe/nea/firmament/util/ScoreboardUtil.kt b/src/main/kotlin/moe/nea/firmament/util/ScoreboardUtil.kt index 1ddf1db..1935a14 100644 --- a/src/main/kotlin/moe/nea/firmament/util/ScoreboardUtil.kt +++ b/src/main/kotlin/moe/nea/firmament/util/ScoreboardUtil.kt @@ -6,7 +6,8 @@ package moe.nea.firmament.util -import java.util.Optional +import java.util.* +import net.minecraft.client.gui.hud.InGameHud import net.minecraft.scoreboard.ScoreboardDisplaySlot import net.minecraft.scoreboard.Team import net.minecraft.text.StringVisitable @@ -17,10 +18,14 @@ import net.minecraft.util.Formatting fun getScoreboardLines(): List<Text> { val scoreboard = MC.player?.scoreboard ?: return listOf() val activeObjective = scoreboard.getObjectiveForSlot(ScoreboardDisplaySlot.SIDEBAR) ?: return listOf() - return scoreboard.getAllPlayerScores(activeObjective).reversed().take(15).map { - val team = scoreboard.getPlayerTeam(it.playerName) - Team.decorateName(team, Text.literal(it.playerName)) - } + return scoreboard.getScoreboardEntries(activeObjective) + .filter { !it.hidden() } + .sortedWith(InGameHud.SCOREBOARD_ENTRY_COMPARATOR) + .take(15).map { + val team = scoreboard.getScoreHolderTeam(it.owner) + val text = it.name() + Team.decorateName(team, text) + } } diff --git a/src/main/kotlin/moe/nea/firmament/util/item/NbtItemData.kt b/src/main/kotlin/moe/nea/firmament/util/item/NbtItemData.kt index ff3e09d..d226da0 100644 --- a/src/main/kotlin/moe/nea/firmament/util/item/NbtItemData.kt +++ b/src/main/kotlin/moe/nea/firmament/util/item/NbtItemData.kt @@ -17,12 +17,12 @@ fun textFromNbt() { val ItemStack.loreAccordingToNbt get() = getOrCreateSubNbt(ItemStack.DISPLAY_KEY).getList(ItemStack.LORE_KEY, NbtElement.STRING_TYPE.toInt()) - .map { lazy(LazyThreadSafetyMode.NONE) { Text.Serializer.fromJson((it as NbtString).asString()) } } + .map { lazy(LazyThreadSafetyMode.NONE) { Text.Serialization.fromJson((it as NbtString).asString()) } } val ItemStack.displayNameAccordingToNbt get() = getOrCreateSubNbt(ItemStack.DISPLAY_KEY).let { if (it.contains(ItemStack.NAME_KEY, NbtElement.STRING_TYPE.toInt())) - Text.Serializer.fromJson(it.getString(ItemStack.NAME_KEY)) + Text.Serialization.fromJson(it.getString(ItemStack.NAME_KEY)) else null } diff --git a/src/main/kotlin/moe/nea/firmament/util/item/SkullItemData.kt b/src/main/kotlin/moe/nea/firmament/util/item/SkullItemData.kt index 39088ec..4b72c5e 100644 --- a/src/main/kotlin/moe/nea/firmament/util/item/SkullItemData.kt +++ b/src/main/kotlin/moe/nea/firmament/util/item/SkullItemData.kt @@ -42,11 +42,13 @@ data class MinecraftTexturesPayloadKt( fun GameProfile.setTextures(textures: MinecraftTexturesPayloadKt) { val json = Firmament.json.encodeToString(textures) val encoded = java.util.Base64.getEncoder().encodeToString(json.encodeToByteArray()) - properties.put(PlayerSkinProvider.TEXTURES, Property(PlayerSkinProvider.TEXTURES, encoded)) + properties.put(propertyTextures, Property(propertyTextures, encoded)) } +private val propertyTextures = "textures" + fun decodeProfileTextureProperty(property: Property): MinecraftTexturesPayloadKt? { - assertTrueOr(property.name == PlayerSkinProvider.TEXTURES) { return null } + assertTrueOr(property.name == propertyTextures) { return null } return try { var encodedF: String = property.value while (encodedF.length % 4 != 0 && encodedF.last() == '=') { diff --git a/src/main/kotlin/moe/nea/firmament/util/textutil.kt b/src/main/kotlin/moe/nea/firmament/util/textutil.kt index 2ed9af3..f811bd8 100644 --- a/src/main/kotlin/moe/nea/firmament/util/textutil.kt +++ b/src/main/kotlin/moe/nea/firmament/util/textutil.kt @@ -6,9 +6,8 @@ package moe.nea.firmament.util -import net.minecraft.text.LiteralTextContent +import net.minecraft.text.PlainTextContent import net.minecraft.text.Text -import net.minecraft.text.TextContent import net.minecraft.text.TranslatableTextContent import moe.nea.firmament.Firmament @@ -33,8 +32,7 @@ class TextMatcher(text: Text) { state.offset = 0 state.currentText = firstOrNull state.textContent = when (val content = firstOrNull.content) { - is LiteralTextContent -> content.string - TextContent.EMPTY -> "" + is PlainTextContent.Literal -> content.string else -> { Firmament.logger.warn("TextContent of type ${content.javaClass} not understood.") return false |