Skip to content

Commit

Permalink
Further micro-optimise
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Nov 15, 2020
1 parent 07da887 commit aa239e8
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions src/main/java/net/citizensnpcs/api/util/Placeholders.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,23 @@ public static String replace(String text, CommandSender sender, NPC npc) {
return text;
}
Matcher matcher = CITIZENS_PLACEHOLDERS.matcher(text);
StringBuffer sb = new StringBuffer(text.length());
StringBuffer sb = null;
while (matcher.find()) {
if (sb == null) {
sb = new StringBuffer(text.length());
}
String match = matcher.group(1);
String replacement = null;
if (match.equals("owner")) {
matcher.appendReplacement(sb, npc.getOrAddTrait(Owner.class).getOwner());
replacement = npc.getOrAddTrait(Owner.class).getOwner();
} else if (match.equals("npc")) {
matcher.appendReplacement(sb, npc.getName());
replacement = npc.getName();
} else if (match.equals("id")) {
matcher.appendReplacement(sb, Integer.toString(npc.getId()));
replacement = Integer.toString(npc.getId());
}
matcher.appendReplacement(sb, replacement);
}
return matcher.appendTail(sb).toString();
return sb == null ? text : matcher.appendTail(sb).toString();
}

public static String replace(String text, OfflinePlayer player) {
Expand Down

0 comments on commit aa239e8

Please sign in to comment.