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 stringList = bookMeta.getPages(); for (int i = 0; i < stringList.size(); i++) { String string = stringList.get(i); bookMeta.setPage(i + 1, string.replace(oldChar, newChar)); } } }