forked from SteamWar/SteamWar
49 lines
1.6 KiB
Java
49 lines
1.6 KiB
Java
package de.steamwar.tutorial.commands;
|
|
|
|
import de.steamwar.command.SWCommand;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.inventory.meta.BookMeta;
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
|
|
import java.util.List;
|
|
|
|
public class BookReplaceCommand extends SWCommand {
|
|
|
|
public BookReplaceCommand() {
|
|
super("bookreplace");
|
|
}
|
|
|
|
@Register("color")
|
|
public void color(Player player) {
|
|
ItemStack itemStack = player.getInventory().getItemInMainHand();
|
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
|
if (itemMeta instanceof BookMeta) {
|
|
BookMeta bookMeta = (BookMeta) itemMeta;
|
|
replace(bookMeta, '&', '§');
|
|
itemStack.setItemMeta(bookMeta);
|
|
player.getInventory().setItemInMainHand(itemStack);
|
|
}
|
|
}
|
|
|
|
@Register("uncolor")
|
|
public void uncolor(Player player) {
|
|
ItemStack itemStack = player.getInventory().getItemInMainHand();
|
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
|
if (itemMeta instanceof BookMeta) {
|
|
BookMeta bookMeta = (BookMeta) itemMeta;
|
|
replace(bookMeta, '§', '&');
|
|
itemStack.setItemMeta(bookMeta);
|
|
player.getInventory().setItemInMainHand(itemStack);
|
|
}
|
|
}
|
|
|
|
private void replace(BookMeta bookMeta, char oldChar, char newChar) {
|
|
List<String> stringList = bookMeta.getPages();
|
|
for (int i = 0; i < stringList.size(); i++) {
|
|
String string = stringList.get(i);
|
|
bookMeta.setPage(i + 1, string.replace(oldChar, newChar));
|
|
}
|
|
}
|
|
}
|