final Material b = event.getClickedBlock().getType();
p.sendMessage(ChatColor.GRAY + "This rock contains " + b.toString().toLowerCase().replaceAll("_", " ") + ".");
好的,假设b等于红土,我想在消息中打印出“红土”。我在这里所做的工作是有效的。但是假设b等于铜,并且我想在消息中打印出“LAPIS_ORE”。在这种情况下,它不会工作,因为它将打印“青金石”而不是“铜”。在我使用的API中,铜不是一种材料类型,因此我不能声明一个变量Material LAPIS_ORE = COPPER;。否则我怎么能从Material type LAPIS_ORE打印出“to”呢?
我试过了:
String LAPIS_ORE = "copper";
p.sendMessage("This rock contains " + b.toString() + ".");
但这仍然不起作用,可能是因为LAPIS_ORE不是一个字符串,所以我还能怎么做呢?如果需要,如何声明新的物料类型并将其设置为等于LAPIS_ORE?
编辑:我可以用一个switch语句来做这件事,但是效率非常低。
编辑:已修复!比我想象的要简单而且有点让人难堪。b.toString().toLowerCase().replaceAll("_", " ").replaceAll("GLOWING_REDSTONE_ORE", "copper ore").replaceAll("REDSTONE_ORE", "copper ore")
发布于 2013-06-23 09:35:55
我敢肯定不是这样的:)你可以很容易地让它工作... :)请看示例:http://forums.bukkit.org/threads/solved-checking-sign-text.57905/
尽情享受吧。
https://stackoverflow.com/questions/17256881
复制相似问题