Revert "Merge pull request #1092 from CoderKuo/master"

This reverts commit 2e0d9eb846, reversing
changes made to 33d1009d6a.
This commit is contained in:
PiggyPiglet
2025-06-16 11:08:43 +08:00
parent 2e0d9eb846
commit c181d18f5e

View File

@@ -23,6 +23,7 @@ package me.clip.placeholderapi.replacer;
import java.util.Locale;
import java.util.function.Function;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -32,11 +33,6 @@ public final class CharsReplacer implements Replacer {
@NotNull
private final Closure closure;
// Cache StringBuilder to reduce object creation
private final ThreadLocal<StringBuilder> builderCache = ThreadLocal.withInitial(() -> new StringBuilder(256));
private final ThreadLocal<StringBuilder> identifierCache = ThreadLocal.withInitial(StringBuilder::new);
private final ThreadLocal<StringBuilder> parametersCache = ThreadLocal.withInitial(StringBuilder::new);
public CharsReplacer(@NotNull final Closure closure) {
this.closure = closure;
}
@@ -46,19 +42,11 @@ public final class CharsReplacer implements Replacer {
@Override
public String apply(@NotNull final String text, @Nullable final OfflinePlayer player,
@NotNull final Function<String, @Nullable PlaceholderExpansion> lookup) {
// Fast path: If there's no closure.head or closure.tail, return the text immediately
if (text.indexOf(closure.head) == -1 || text.lastIndexOf(closure.tail) == -1 || text.lastIndexOf(closure.tail) < text.indexOf(closure.head)) {
return text;
}
final char[] chars = text.toCharArray();
final StringBuilder builder = builderCache.get();
final StringBuilder identifier = identifierCache.get();
final StringBuilder parameters = parametersCache.get();
final StringBuilder builder = new StringBuilder(text.length());
try {
builder.setLength(0);
builder.ensureCapacity(text.length());
final StringBuilder identifier = new StringBuilder();
final StringBuilder parameters = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
final char l = chars[i];
@@ -72,9 +60,6 @@ public final class CharsReplacer implements Replacer {
boolean invalid = true;
boolean hadSpace = false;
identifier.setLength(0);
parameters.setLength(0);
while (++i < chars.length) {
final char p = chars[i];
@@ -103,6 +88,9 @@ public final class CharsReplacer implements Replacer {
final String lowercaseIdentifierString = identifierString.toLowerCase(Locale.ROOT);
final String parametersString = parameters.toString();
identifier.setLength(0);
parameters.setLength(0);
if (invalid) {
builder.append(closure.head).append(identifierString);
@@ -144,12 +132,6 @@ public final class CharsReplacer implements Replacer {
}
return builder.toString();
} finally {
// Reset cached StringBuilder
builder.setLength(0);
identifier.setLength(0);
parameters.setLength(0);
}
}
}