user2510422
user2510422

Reputation: 43

Getting Material Type & Changing to New Material

final Material b = event.getClickedBlock().getType();

p.sendMessage(ChatColor.GRAY + "This rock contains " + b.toString().toLowerCase().replaceAll("_", " ") + ".");

Alright, so lets say b is equal to CLAY and I want to print out "clay" in the message. What I've done here works. But lets say b is equal to LAPIS_ORE and I want to print out "copper" in the message. In this case it won't work because it would print out "lapis ore" instead of "copper". In the API that I am using, copper is not a Material type, so therefore I cannot declare a variable Material LAPIS_ORE = COPPER;. How else would I be able to print out "copper" from Material type LAPIS_ORE?

I tried:

String LAPIS_ORE = "copper";

p.sendMessage("This rock contains " + b.toString() + ".");

But that still didn't work out, probably because LAPIS_ORE is not a string, so how else would I do it? If needed, how could I declare a new Material type and set it equal to LAPIS_ORE?

Edit: I can do this with a switch statement but that is very inefficient.

Edit: Fixed it! Was simpler than I thought and kind of embarassing. b.toString().toLowerCase().replaceAll("_", " ").replaceAll("GLOWING_REDSTONE_ORE", "copper ore").replaceAll("REDSTONE_ORE", "copper ore")

Upvotes: 0

Views: 66

Answers (1)

MineScript
MineScript

Reputation: 321

Not that way i am sure :) you can easy get it work ... :) see example one way to do it: http://forums.bukkit.org/threads/solved-checking-sign-text.57905/

Enjoy it...

Upvotes: 0

Related Questions