我用这个:
public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) {
event.getPlayer().sendRawMessage(Color.RED.toString()+"TEXT...");
}
但在聊天中显示为Color:[rgb0xFF00]TEXT...
。
我也尝试了getPlayer().sendMessage(...)
和Color.RED
,但两者都没有效果。
我做错了什么?
修改:我找到了解决方案,请参阅下面的答案。
答案 0 :(得分:1)
好的,我找到了解决方案。你必须使用org.bukkit.ChatColor而不是org.bukkit.Color! (愚蠢的我)
所以:
public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) {
event.getPlayer().sendMessage(ChatColor.RED+"TEXT...");
}
答案 1 :(得分:0)
根据this,您需要发送特定的文本代码,而不仅仅是颜色。做一个像这样的函数:
String getColorCode(Color c){
switch(c){
case Color.RED:
return "§c";
case Color.BLACK:
return "§0";
// each color code can be found at http://minecraft.gamepedia.com/Formatting_codes
}
return "";
}
然后为您的消息调用此函数:
public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) {
event.getPlayer().sendRawMessage(getColorCode(Color.RED) + "TEXT...");
}