我正在尝试为我的插件添加颜色支持,当我这样做时,它可以工作,但我在它的左侧得到一个奇怪的符号。 ()。这是我的代码:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if(sender instanceof Player)
{
Player player = (Player)sender;
if(player.hasPermission("di.use"))
{
if(label.equalsIgnoreCase("di"))
{
if(args.length == 0)
{
///////////////////////////////////////////////////////
player.sendMessage(ChatColor.DARK_GRAY+""+ChatColor.BOLD + "+" + ChatColor.AQUA+""+ChatColor.BOLD + "---------------" + ChatColor.GREEN+""+ChatColor.BOLD + "[" + ChatColor.YELLOW+""+ChatColor.BOLD + "DonationInfo" + ChatColor.GREEN+""+ChatColor.BOLD + "]" + ChatColor.AQUA+""+ChatColor.BOLD + "--------------" + ChatColor.DARK_GRAY+""+ChatColor.BOLD + "+");
player.sendMessage(ChatColor.AQUA+""+ChatColor.BOLD + "/di" + ChatColor.DARK_AQUA+""+ChatColor.BOLD+ " Spinel " + ChatColor.BLUE+""+ChatColor.BOLD + " - " + ChatColor.AQUA+""+ChatColor.BOLD + "Spinel Donation Info");
player.sendMessage(ChatColor.AQUA+""+ChatColor.BOLD + "/di" + ChatColor.DARK_BLUE+""+ChatColor.BOLD+ " Sapphire " + ChatColor.BLUE+""+ChatColor.BOLD + " - " + ChatColor.AQUA+""+ChatColor.BOLD + "Sapphire Donation Info");
player.sendMessage(ChatColor.AQUA+""+ChatColor.BOLD + "/di" + ChatColor.RED+""+ChatColor.BOLD+ " Ruby " + ChatColor.BLUE+""+ChatColor.BOLD + " - " + ChatColor.AQUA+""+ChatColor.BOLD + "Ruby Donation Info");
player.sendMessage(ChatColor.AQUA+""+ChatColor.BOLD + "/di" + ChatColor.LIGHT_PURPLE+""+ChatColor.BOLD+ " Amethyst " + ChatColor.BLUE+""+ChatColor.BOLD + " - " + ChatColor.AQUA+""+ChatColor.BOLD + "Amethyst Donation Info");
player.sendMessage(ChatColor.DARK_GRAY+""+ChatColor.BOLD + "+" + ChatColor.AQUA+""+ChatColor.BOLD + "-----------------------------------------" + ChatColor.DARK_GRAY+""+ChatColor.BOLD + "+");
return true;
//////////////////////////////////////////////////////
}
}
}else{
player.sendMessage(ChatColor.RED + "Your do not have permissions to use this command!");
}
if(args[0].equalsIgnoreCase("Spinel"))
{String a = getConfig().getString("Spinel");
String coloredText = ChatColor.translateAlternateColorCodes('§', a);
///////////////////////////////////////////////////////////
player.sendMessage(coloredText);
return true;
///////////////////////////////////////////////////////////
}
if(args[0].equalsIgnoreCase("Sapphire"))
{String b = getConfig().getString("Sapphire");
String coloredText = ChatColor.translateAlternateColorCodes('§', b);
///////////////////////////////////////////////////////////
player.sendMessage(coloredText);
return true;
///////////////////////////////////////////////////////////
}
if(args[0].equalsIgnoreCase("Ruby"))
{String c = getConfig().getString("Ruby");
String coloredText = ChatColor.translateAlternateColorCodes('§', c);
///////////////////////////////////////////////////////////
player.sendMessage(coloredText);
return true;
///////////////////////////////////////////////////////////
}
if(args[0].equalsIgnoreCase("Amethyst"))
{String d = getConfig().getString("Amethyst");
String coloredText = ChatColor.translateAlternateColorCodes('§', d);
///////////////////////////////////////////////////////////
player.sendMessage(coloredText);
return true;
///////////////////////////////////////////////////////////
}
if(player.hasPermission("di.admin"))
{
if(args[0].equalsIgnoreCase("reload"))
{
this.reloadConfig();
//////////////////////////////////////////////////////////
player.sendMessage(ChatColor.AQUA+""+ChatColor.BOLD+"[Donation_Info]" + ChatColor.DARK_AQUA+""+ChatColor.BOLD + " || " + ChatColor.AQUA+""+ChatColor.BOLD + "Plugin reloaded!");
//////////////////////////////////////////////////////////
}
}
}
请帮帮我。谢谢。
答案 0 :(得分:1)
首先,我想我会指出这是Java
。 Bukkit插件使用Java
编码。 Java就是JavaScript,因为汽车是胡萝卜......你的代码不是用JavaScript。
无论如何,你的代码无法正常工作的原因是因为你无法使用Minecraft的§
符号,因为MineCraft不允许所有特殊字符,所以当你尝试用它翻译颜色代码时,它{ {1}}工作,但DOES
未被移除,而是替换为§
。
如果要翻译备用颜色代码,可以使用Å
。所以,让我们说,例如,您希望将消息设为绿色,并显示消息 Hi 。你可以使用:
ChatColor.translateAlternetColorCodes(Char, String)
字符串String toTranslate = "&4Donation 1";
String translated = ChatColor.translateAlternetColorCodes('&', toTranslate);
将成为translated
。
您可以将第一行代码的参数中的ChatColor.DARK_RED + "Donation 1"
更改为任何其他字符,例如,您可以使用&
。如果你使用了$
,那么$
也会发出一条暗红色的消息,上面写着"嗨"。但是,您不能使用$4Donation 1
符号和其他一些特殊字符来翻译颜色代码。
以下是颜色代码的完整列表:List Here
如果您出于某种原因确实需要使用§
符号,那么 MAY 可以通过这样做来躲过它:
§
以上可能有用,虽然我不推荐它,因为它有点凌乱,你必须String toTranslate = "§4Donation 1";
String translated = ChatColor.translateAlternetColorCodes('§', toTranslate)
String final = translated.replaceAll("Å", "") //replace the special characters with nothing, but keep the color
(不是它不好),而且它&#39 ;创建UTF-8
符号比创建§
符号要困难得多。
答案 1 :(得分:0)
如果您已经有§
,那么您不需要做任何事情;我确实相信我的世界会使用特殊字符解析颜色代码。
当translateAlternateColorCodes(...)
不是符号§
时,您只需要使用{{1}}。
否则,jojodmo解释得很好。