2013-06-23 59 views
0

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;。我还能从材料类型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

在toString方法设置条件检查。如果它是青金石矿石,然后发送铜。 – stinepike

回答