29 lines
956 B
Java
29 lines
956 B
Java
package io.gitlab.jfronny.chattransform;
|
|
|
|
import io.gitlab.jfronny.commons.log.Logger;
|
|
|
|
import java.util.*;
|
|
import java.util.regex.Pattern;
|
|
import java.util.stream.Collectors;
|
|
|
|
public class ChatTransform {
|
|
public static final String MOD_ID = "chat-transform";
|
|
public static final Logger LOG = Logger.forName(MOD_ID);
|
|
|
|
public static String transform(String text) {
|
|
for (Map.Entry<String, String> e : Cfg.substitutions
|
|
.entrySet()
|
|
.stream()
|
|
.collect(Collectors.groupingBy(s -> s.getKey().length()))
|
|
.entrySet()
|
|
.stream()
|
|
.sorted(Map.Entry.<Integer, List<Map.Entry<String, String>>>comparingByKey().reversed())
|
|
.map(Map.Entry::getValue)
|
|
.flatMap(Collection::stream)
|
|
.toList()) {
|
|
text = text.replaceAll(Pattern.quote(e.getKey()), e.getValue());
|
|
}
|
|
return text;
|
|
}
|
|
}
|