Minecraft聊天消息替换

时间:2017-07-06 10:20:16

标签: java minecraft bukkit

我正在制作权限插件,并希望用其排名标记替换播放器的名称。为此,我有以下代码:

{{1}}

每当我向聊天发送消息时,它似乎正常。 我在这里做错了什么?

此外,我正在使用配置文件(cFile)和rank.yml文件(rFile)。

2 个答案:

答案 0 :(得分:0)

首先,请确保包含@EventHandler注释。

@EventHandler
public void playerChat(AsyncPlayerChatEvent e) {
   [...]
}

接下来,检查是否已在onEnable()方法中注册了侦听器。 getServer().getPluginManager().registerEvents(new YourListener(...), this);

(如果您是主要班级,请将YourListener替换为this

最后,正如Luftbaum所说,在事件中使用AsyncPlayerChatEvent#setFormat。 用法示例:

 e.setFormat(colorize(rFile.getString("players." + target)) + ": " + e.getMessage());

修改

为了翻译颜色代码,例如'& 3'对于Bukkit的ChatColor格式,您可以使用ChatColor#translateAlternativeColorCodes方法。

ChatColor.translateAlternateColorCodes('&', stringThatContainsCodes);

答案 1 :(得分:0)

使用event.setFormat(playerRank + ": " + event.getMessage());

这基本上将消息格式化为您想要的方式。您可以使用ChatColor来执行颜色。还要确保你有@EventHandler。