Skip to content

Commit

Permalink
Make all color codes reset formatting directives
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Oct 15, 2022
1 parent ac33673 commit 8a360c5
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 4 deletions.
Expand Up @@ -77,7 +77,6 @@ public Goal getGoal() {
public int getPriority() {
return goal.getPriority();
}

});
hasPrioritisableGoal = true;
}
Expand Down
Expand Up @@ -10,10 +10,34 @@ public ForwardingBehaviorGoalAdapter(Behavior behavior) {
this.behavior = behavior;
}

@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
ForwardingBehaviorGoalAdapter other = (ForwardingBehaviorGoalAdapter) obj;
if (behavior == null) {
if (other.behavior != null) {
return false;
}
} else if (!behavior.equals(other.behavior)) {
return false;
}
return true;
}

public Behavior getWrapped() {
return behavior;
}

@Override
public int hashCode() {
return 31 + ((behavior == null) ? 0 : behavior.hashCode());
}

@Override
public void reset() {
behavior.reset();
Expand Down
13 changes: 10 additions & 3 deletions src/main/java/net/citizensnpcs/api/util/Messaging.java
Expand Up @@ -22,11 +22,13 @@

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.Collections2;
import com.google.common.collect.Maps;

import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.Tag;
Expand Down Expand Up @@ -100,10 +102,10 @@ private static String convertLegacyCodes(String message) {
Matcher m = LEGACY_COLORCODE_MATCHER.matcher(message);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, COLORCODE_CONVERTER.get(m.group(1)) + "<csr>");
m.appendReplacement(sb, COLORCODE_CONVERTER.get(m.group(1)));
}
m.appendTail(sb);
return sb.toString();
return MINIMESSAGE_COLORCODE_MATCHER.matcher(sb.toString()).replaceAll("$0<csr>");
}

public static void debug(Object... msg) {
Expand Down Expand Up @@ -223,11 +225,12 @@ public static String tryTranslate(Object possible) {
private static final Pattern ERROR_MATCHER = Pattern.compile("{{", Pattern.LITERAL);
private static String HIGHLIGHT_COLOUR = "<yellow>";
private static final Pattern HIGHLIGHT_MATCHER = Pattern.compile("[[", Pattern.LITERAL);
private static Pattern LEGACY_COLORCODE_MATCHER = Pattern.compile(ChatColor.COLOR_CHAR + "([0-9a-r])",
private static final Pattern LEGACY_COLORCODE_MATCHER = Pattern.compile(ChatColor.COLOR_CHAR + "([0-9a-r])",
Pattern.CASE_INSENSITIVE);
private static Logger LOGGER = Logger.getLogger("Citizens");
private static String MESSAGE_COLOUR = "<green>";
private static MiniMessage MINIMESSAGE;
private static Pattern MINIMESSAGE_COLORCODE_MATCHER;
private static final Joiner SPACE = Joiner.on(" ").useForNull("null");
private static final Pattern TRANSLATION_MATCHER = Pattern.compile("^[a-zA-Z0-9]+\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9.]+");
static {
Expand All @@ -253,6 +256,10 @@ public static String tryTranslate(Object possible) {
COLORCODE_CONVERTER.put("l", "<b>");
COLORCODE_CONVERTER.put("r", "<r>");
try {
MINIMESSAGE_COLORCODE_MATCHER = Pattern.compile(
Joiner.on('|').join(
Collections2.transform(NamedTextColor.NAMES.values(), (c) -> '<' + c.toString() + '>')),
Pattern.CASE_INSENSITIVE);
MINIMESSAGE = MiniMessage.builder()
.editTags(t -> t.resolver(TagResolver.resolver("csr", Tag.styling(
s -> Arrays.stream(TextDecoration.values()).forEach(td -> s.decoration(td, false))))))
Expand Down

0 comments on commit 8a360c5

Please sign in to comment.