#655: Added support for the VM tag jansi.passthrough when processing messages sent to a ColouredConsoleSender.

This commit is contained in:
Martoph 2020-04-23 11:06:13 +10:00 committed by md_5
parent e0cfb34742
commit ef706b064e

View file

@ -14,10 +14,12 @@ public class ColouredConsoleSender extends CraftConsoleCommandSender {
private final Terminal terminal;
private final Map<ChatColor, String> replacements = new EnumMap<ChatColor, String>(ChatColor.class);
private final ChatColor[] colors = ChatColor.values();
private final boolean jansiPassthrough;
protected ColouredConsoleSender() {
super();
this.terminal = ((CraftServer) getServer()).getReader().getTerminal();
this.jansiPassthrough = Boolean.getBoolean("jansi.passthrough");
replacements.put(ChatColor.BLACK, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.BLACK).boldOff().toString());
replacements.put(ChatColor.DARK_BLUE, Ansi.ansi().a(Attribute.RESET).fg(Ansi.Color.BLUE).boldOff().toString());
@ -45,7 +47,8 @@ public class ColouredConsoleSender extends CraftConsoleCommandSender {
@Override
public void sendMessage(String message) {
if (terminal.isAnsiSupported()) {
// support jansi passthrough VM option when jansi doesn't detect an ANSI supported terminal
if (jansiPassthrough || terminal.isAnsiSupported()) {
if (!conversationTracker.isConversingModaly()) {
String result = message;
for (ChatColor color : colors) {