java - 为 Bukkit 插件添加颜色代码支持

标签 java bukkit

我想在我的 config.yml 中添加颜色代码支持。如何正确地将 translateAlternateColorCode 添加到我的代码中?

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        Player  player = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("member")) {
            player.sendMessage(getConfig().getString("MemberText"));
        }

最佳答案

您可以简单地使用 translateAltranateColorCodes。这是一个例子:

String nonColoredText = getConfig().getString("MemberText"); //get the raw string from "MemberText"
String coloredText = translateAlternateColorCodes('&', nonColoredText); //translate alt color codes

上面的代码会将任何以 & 符号开头的文本更改为正确的颜色代码。例如,如果 &a 在配置中,它会将其更改为绿色或 ChatColor.GREEN,使消息显示为绿色。这也适用于其他角色。就像如果你想为颜色代码使用 $ 符号,你可以这样做:

String coloredText = translateAlternateColorCodes('$', nonColoredText);

因此,如果在上面的代码中输入 $a,它将转换为 ChatColor.GREEN,使文本变为绿色。

第一段代码所做的是,它从 MemberText 下的配置文件中获取字符串,并将其放入字符串 nonColoredText 中,然后,它是翻译备用颜色代码,以 & 开头,并将其放入 coloredText 中。然后您可以将 coloredText 发送给播放器,或者用它做其他事情。

一个简短的例子是,如果以下内容在 MemberText 下:

&a Welcome to My Server, &b I hope you have a great time! &e &l Check out the rules a /warp rules

它会把它放在 nonColoredText 中,coloredText 会把它翻译成:

ChatColor.GREEN + "Welcome to My Server," + ChatColor.AQUA + "I hope you have a great time!" + ChatColor.YELLOW + ChatColor.BOLD + "Check out the rules a /warp rules"

然后可以将该消息发送给玩家,并且它会相应地显示出来,并且色彩缤纷!

关于java - 为 Bukkit 插件添加颜色代码支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21844291/

相关文章:

java - hibernate map member 的字段直接不用setter/getter

java - Android fragment z 索引覆盖

java - 在同一文件中保存/加载两个 HashMap

java - Minecraft (bukkit) 插件,向用户发送可点击的链接

java - 尝试创建数组时出现堆栈溢出错误

java - 将 P-25Y-11M-16D 转换为天

java - 带有自定义注释的 Guice 动态注入(inject)

java - 使用 Spigot 恢复 map

java - 如何使用类名作为方法参数的类型

Java - 如何从另一个线程访问静态同步方法?