From 635341ff1283dd506ff67d1cdf24ebf4d8e16e45 Mon Sep 17 00:00:00 2001 From: Boy <sivertpaulsen2@gmail.com> Date: Tue, 12 Dec 2023 14:34:15 +0100 Subject: [PATCH] refactor: code cleanup --- .../com/mineinabyss/emojy/EmojyHelpers.kt | 2 +- .../mineinabyss/emojy/nms/EmojyNMSHandlers.kt | 7 ++--- .../emojy/nms/v1_19_R1/EmojyNMSHandler.kt | 4 +-- .../emojy/nms/v1_19_R2/EmojyNMSHandler.kt | 4 +-- .../emojy/nms/v1_19_R3/EmojyNMSHandler.kt | 4 +-- .../emojy/nms/v1_20_R1/EmojyNMSHandler.kt | 4 +-- .../emojy/nms/v1_20_R2/EmojyNMSHandler.kt | 6 ++-- .../emojy/nms/v1_20_R3/EmojyNMSHandler.kt | 29 +++++++++++-------- 8 files changed, 31 insertions(+), 29 deletions(-) diff --git a/core/src/main/kotlin/com/mineinabyss/emojy/EmojyHelpers.kt b/core/src/main/kotlin/com/mineinabyss/emojy/EmojyHelpers.kt index 339fb08..f4d8819 100644 --- a/core/src/main/kotlin/com/mineinabyss/emojy/EmojyHelpers.kt +++ b/core/src/main/kotlin/com/mineinabyss/emojy/EmojyHelpers.kt @@ -11,7 +11,7 @@ import net.kyori.adventure.text.TextReplacementConfig import net.kyori.adventure.translation.GlobalTranslator import org.bukkit.entity.Player -fun Component.transform(player: Player?, insert: Boolean, isUtf: Boolean) = player?.let { replaceEmoteIds(it, insert) } ?: transformEmoteIds(insert, isUtf) +fun Component.transform(player: Player?, insert: Boolean, isUtf: Boolean = true) = player?.let { replaceEmoteIds(it, insert) } ?: transformEmoteIds(insert, isUtf) private val spaceRegex: Regex = "(?<!\\\\):space_(-?\\d+):".toRegex() private val escapedSpaceRegex: Regex = "\\\\(:space_(-?\\d+):)".toRegex() diff --git a/core/src/main/kotlin/com/mineinabyss/emojy/nms/EmojyNMSHandlers.kt b/core/src/main/kotlin/com/mineinabyss/emojy/nms/EmojyNMSHandlers.kt index 106ee91..fe2b904 100644 --- a/core/src/main/kotlin/com/mineinabyss/emojy/nms/EmojyNMSHandlers.kt +++ b/core/src/main/kotlin/com/mineinabyss/emojy/nms/EmojyNMSHandlers.kt @@ -3,7 +3,6 @@ package com.mineinabyss.emojy.nms import com.google.gson.JsonObject import com.google.gson.JsonParser import com.mineinabyss.emojy.transform -import io.papermc.paper.text.PaperComponents import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer import org.bukkit.entity.Player @@ -31,13 +30,13 @@ object EmojyNMSHandlers { } private val gson = GsonComponentSerializer.gson() - fun JsonObject.formatString(player: Player? = null): String { + fun JsonObject.formatString() : String { return if (this.has("args") || this.has("text") || this.has("extra") || this.has("translate")) { - gson.serialize(gson.deserializeFromTree(this).transform(player, true, true)) + gson.serialize(gson.deserializeFromTree(this).transform(null, true)) } else this.toString() } - fun transformer(player: Player? = null) = { string: String -> + fun transformer() = { string: String -> runCatching { val element = JsonParser.parseString(string) if (element.isJsonObject) element.asJsonObject.formatString() diff --git a/v1_19_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R1/EmojyNMSHandler.kt b/v1_19_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R1/EmojyNMSHandler.kt index 4594740..9d8f3c0 100644 --- a/v1_19_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R1/EmojyNMSHandler.kt +++ b/v1_19_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R1/EmojyNMSHandler.kt @@ -211,7 +211,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { private fun JsonObject.returnFormattedString(insert: Boolean = true): String { return if (this.has("args") || this.has("text") || this.has("extra") || this.has("translate")) { - gson.serialize(gson.deserialize(this.toString()).transform(null, insert, true)) + gson.serialize(gson.deserialize(this.toString()).transform(null, insert)) } else this.toString() } @@ -235,7 +235,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { } override fun readUtf(maxLength: Int): String { - return super.readUtf(maxLength).miniMsg().transform(player, false, true).serialize() + return super.readUtf(maxLength).miniMsg().transform(player, false).serialize() } diff --git a/v1_19_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R2/EmojyNMSHandler.kt b/v1_19_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R2/EmojyNMSHandler.kt index ea6a257..2d5767f 100644 --- a/v1_19_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R2/EmojyNMSHandler.kt +++ b/v1_19_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R2/EmojyNMSHandler.kt @@ -215,7 +215,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { private fun JsonObject.returnFormattedString(): String { return if (this.has("args") || this.has("text") || this.has("extra") || this.has("translate")) { - gson.serialize(gson.deserialize(this.toString()).transform(null, true, true)) + gson.serialize(gson.deserialize(this.toString()).transform(null, true)) } else this.toString() } @@ -239,7 +239,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { } override fun readUtf(maxLength: Int): String { - return super.readUtf(maxLength).miniMsg().transform(player, false, true).serialize() + return super.readUtf(maxLength).miniMsg().transform(player, false).serialize() } } diff --git a/v1_19_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R3/EmojyNMSHandler.kt b/v1_19_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R3/EmojyNMSHandler.kt index ccd2325..834123b 100644 --- a/v1_19_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R3/EmojyNMSHandler.kt +++ b/v1_19_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_19_R3/EmojyNMSHandler.kt @@ -225,7 +225,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { private fun JsonObject.returnFormattedString(): String { return if (this.has("args") || this.has("text") || this.has("extra") || this.has("translate")) { - gson.serialize(gson.deserialize(this.toString()).transform(player, true, true)) + gson.serialize(gson.deserialize(this.toString()).transform(player, true)) } else this.toString() } @@ -249,7 +249,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { } override fun readUtf(maxLength: Int): String { - return super.readUtf(maxLength).miniMsg().transform(player, false, true).serialize() + return super.readUtf(maxLength).miniMsg().transform(player, false).serialize() } diff --git a/v1_20_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R1/EmojyNMSHandler.kt b/v1_20_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R1/EmojyNMSHandler.kt index 2b193a6..a322e02 100644 --- a/v1_20_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R1/EmojyNMSHandler.kt +++ b/v1_20_R1/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R1/EmojyNMSHandler.kt @@ -2,7 +2,6 @@ package com.mineinabyss.emojy.nms.v1_20_R1 -import com.google.gson.JsonObject import com.google.gson.JsonParser import com.mineinabyss.emojy.emojy import com.mineinabyss.emojy.nms.EmojyNMSHandlers @@ -16,7 +15,6 @@ import io.netty.buffer.ByteBuf import io.netty.channel.* import io.netty.handler.codec.ByteToMessageDecoder import io.netty.handler.codec.MessageToByteEncoder -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.ListTag import net.minecraft.nbt.StringTag @@ -184,7 +182,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { } override fun readUtf(maxLength: Int): String { - return super.readUtf(maxLength).miniMsg().transform(player, false, true).serialize() + return super.readUtf(maxLength).miniMsg().transform(player, false).serialize() } } diff --git a/v1_20_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R2/EmojyNMSHandler.kt b/v1_20_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R2/EmojyNMSHandler.kt index 2a65910..d87da35 100644 --- a/v1_20_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R2/EmojyNMSHandler.kt +++ b/v1_20_R2/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R2/EmojyNMSHandler.kt @@ -146,7 +146,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { } override fun readComponent(): net.minecraft.network.chat.Component { - return PaperAdventure.asVanilla(PaperAdventure.asAdventure(super.readComponent()).transform(player, true, true)) + return PaperAdventure.asVanilla(PaperAdventure.asAdventure(super.readComponent()).transform(player, true, false)) } override fun writeUtf(string: String, maxLength: Int): FriendlyByteBuf { @@ -159,7 +159,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { } override fun readUtf(maxLength: Int): String { - return super.readUtf(maxLength).miniMsg().transform(player, true, true).serialize() + return super.readUtf(maxLength).miniMsg().transform(player, true).serialize() } override fun writeNbt(compound: Tag?): FriendlyByteBuf { @@ -170,7 +170,7 @@ class EmojyNMSHandler : IEmojyNMSHandler { override fun readNbt(): CompoundTag? { return super.readNbt()?.apply { - transform(this, EmojyNMSHandlers.transformer(player)) + transform(this, EmojyNMSHandlers.transformer()) } } diff --git a/v1_20_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R3/EmojyNMSHandler.kt b/v1_20_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R3/EmojyNMSHandler.kt index 9761317..80be579 100644 --- a/v1_20_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R3/EmojyNMSHandler.kt +++ b/v1_20_R3/src/main/kotlin/com/mineinabyss/emojy/nms/v1_20_R3/EmojyNMSHandler.kt @@ -2,7 +2,6 @@ package com.mineinabyss.emojy.nms.v1_20_R2 -import com.google.gson.JsonObject import com.google.gson.JsonParser import com.mineinabyss.emojy.emojy import com.mineinabyss.emojy.nms.EmojyNMSHandlers @@ -15,8 +14,8 @@ import io.netty.buffer.ByteBuf import io.netty.channel.* import io.netty.handler.codec.ByteToMessageDecoder import io.netty.handler.codec.MessageToByteEncoder +import io.papermc.paper.adventure.PaperAdventure import net.kyori.adventure.text.Component -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.ListTag import net.minecraft.nbt.StringTag @@ -143,7 +142,11 @@ class EmojyNMSHandler : IEmojyNMSHandler { private class CustomDataSerializer(val player: Player?, bytebuf: ByteBuf) : FriendlyByteBuf(bytebuf) { override fun writeComponent(component: Component): FriendlyByteBuf { - return super.writeComponent(component.transform(null, true, true)) + return super.writeComponent(component.transform(null, true, false)) + } + + override fun readComponent(): net.minecraft.network.chat.Component { + return PaperAdventure.asVanilla(PaperAdventure.asAdventure(super.readComponent()).transform(player, true, false)) } override fun writeUtf(string: String, maxLength: Int): FriendlyByteBuf { @@ -155,16 +158,22 @@ class EmojyNMSHandler : IEmojyNMSHandler { return super.writeUtf(string, maxLength) } + override fun readUtf(maxLength: Int): String { + return super.readUtf(maxLength).miniMsg().transform(player, true).serialize() + } + override fun writeNbt(compound: Tag?): FriendlyByteBuf { return super.writeNbt(compound?.apply { - when (this) { - is CompoundTag -> transform(this, EmojyNMSHandlers.transformer()) - is ListTag -> transform(this, EmojyNMSHandlers.transformer()) - is StringTag -> transform(this, EmojyNMSHandlers.transformer()) - } + transform(this as CompoundTag, EmojyNMSHandlers.transformer()) }) } + override fun readNbt(): CompoundTag? { + return super.readNbt()?.apply { + transform(this, EmojyNMSHandlers.transformer()) + } + } + private fun transform(compound: CompoundTag, transformer: Function<String, String>) { for (key in compound.allKeys) when (val base = compound.get(key)) { is CompoundTag -> transform(base, transformer) @@ -188,10 +197,6 @@ class EmojyNMSHandler : IEmojyNMSHandler { transformer.apply(string.asString) } - override fun readUtf(maxLength: Int): String { - return super.readUtf(maxLength).miniMsg().transform(player, true, true).serialize() - } - } private class CustomPacketEncoder(val player: Player? = null) : MessageToByteEncoder<Packet<*>>() {