From 761f8ed4e829928ae0cdb2551140d48522459d95 Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:30:34 +0200 Subject: [PATCH] Fix && being considered using color. --- .../kotlin/io/delilaheve/AnvilEventListener.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/io/delilaheve/AnvilEventListener.kt b/src/main/kotlin/io/delilaheve/AnvilEventListener.kt index 11d1ed2..78725b2 100644 --- a/src/main/kotlin/io/delilaheve/AnvilEventListener.kt +++ b/src/main/kotlin/io/delilaheve/AnvilEventListener.kt @@ -195,8 +195,10 @@ class AnvilEventListener(private val packetManager: PacketManager) : Listener { var useColor = false // Handle color code if(canUseColorCode){ - useColor = replaceAll(textToColor, "&", "§", 2) - replaceAll(textToColor, "§§", "&", 2) + var nbReplacement = replaceAll(textToColor, "&", "§", 2) + nbReplacement -= 2 * replaceAll(textToColor, "§§", "&", 2) + + if(nbReplacement > 0) useColor = true } //TODO handle hexadecimal color @@ -210,19 +212,20 @@ class AnvilEventListener(private val packetManager: PacketManager) : Listener { * @param from The source that should be replaced. * @param to The string that should replace. * @param endOffset Amount of character that should be ignored at the end. + * @return The number of replacement was that was done. */ - private fun replaceAll(builder: java.lang.StringBuilder, from: String, to: String, endOffset: Int): Boolean { + private fun replaceAll(builder: java.lang.StringBuilder, from: String, to: String, endOffset: Int): Int { var index = builder.indexOf(from) - if(index == -1 || index >= builder.length - endOffset) return false + var numberOfChanges = 0 while (index != -1 && index < builder.length - endOffset) { - CustomAnvil.log("$index ; ${builder.length - endOffset} ") builder.replace(index, index + from.length, to) index += to.length index = builder.indexOf(from, index) + numberOfChanges+=1 } - return true + return numberOfChanges } /**