diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/util/BookReplaceCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/util/BookReplaceCommand.java new file mode 100644 index 00000000..324f15af --- /dev/null +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/util/BookReplaceCommand.java @@ -0,0 +1,51 @@ +package de.steamwar.bausystem.features.util; + +import de.steamwar.bausystem.linkage.LinkageType; +import de.steamwar.bausystem.linkage.Linked; +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; + +@Linked(LinkageType.COMMAND) +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)); + } + } +}