Strip colors from chat, if the user does not have the permission.

This commit is contained in:
snowleo 2012-01-16 20:29:55 +01:00
parent 0fb07d4cc1
commit 26d63f3666
2 changed files with 4 additions and 1 deletions

View File

@ -478,7 +478,7 @@ public class Util
}
return buf.toString();
}
private static transient final Pattern COLOR_PATTERN = Pattern.compile("(?i)\u00A7[0-9A-F]");
private static transient final Pattern COLOR_PATTERN = Pattern.compile("\u00A7+[0-9A-FKa-fk]");
public static String stripColor(final String input)
{

View File

@ -2,6 +2,7 @@ package com.earth2me.essentials.chat;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.Locale;
import java.util.Map;
import org.bukkit.Server;
@ -32,6 +33,8 @@ public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer
if (user.isAuthorized("essentials.chat.color"))
{
event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "\u00a7$1"));
} else {
event.setMessage(Util.stripColor(event.getMessage()));
}
event.setFormat(ess.getSettings().getChatFormat(user.getGroup()).replace('&', '\u00a7').replace("\u00a7\u00a7", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase(Locale.ENGLISH)));
}