final Material b = event.getClickedBlock().getType();
p.sendMessage(ChatColor.GRAY + "This rock contains " + b.toString().toLowerCase().replaceAll("_", " ") + ".");
好吧,让我们说b等于CLAY,我想要打印出来" clay"在消息中。我在这里做的很有用。但是,让我们说b等于LAPIS_ORE,我想打印出"铜"在消息中。在这种情况下,它不会起作用,因为它会打印出青石矿石#34;而不是"铜"。在我使用的API中,铜不是Material类型,因此我无法声明变量Material LAPIS_ORE = COPPER;
。我怎么能打印出来"铜"来自材料类型LAPIS_ORE?
我试过了:
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")
答案 0 :(得分:0)
不是那种方式我确定:)你可以轻松搞定...... :)看看例子一种方法: http://forums.bukkit.org/threads/solved-checking-sign-text.57905/
享受它......