Minecraft颜色代码无法正常工作(Spigot)

时间:2017-02-20 14:40:25

标签: java minecraft bukkit

我用这个:

public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) {
    event.getPlayer().sendRawMessage(Color.RED.toString()+"TEXT...");
}

但在聊天中显示为Color:[rgb0xFF00]TEXT...

我也尝试了getPlayer().sendMessage(...)Color.RED,但两者都没有效果。

我做错了什么?

修改:我找到了解决方案,请参阅下面的答案。

2 个答案:

答案 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...");
}