diff --git a/server/src/main/java/dev/plex/listener/impl/BookListener.java b/server/src/main/java/dev/plex/listener/impl/BookListener.java new file mode 100644 index 0000000..701f628 --- /dev/null +++ b/server/src/main/java/dev/plex/listener/impl/BookListener.java @@ -0,0 +1,30 @@ +package dev.plex.listener.impl; + +import dev.plex.listener.PlexListener; +import dev.plex.util.PlexUtils; +import dev.plex.util.minimessage.SafeMiniMessage; +import java.util.ArrayList; +import java.util.List; +import net.kyori.adventure.inventory.Book; +import net.kyori.adventure.text.Component; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.inventory.meta.BookMeta; + +public class BookListener extends PlexListener +{ + @EventHandler(priority = EventPriority.HIGHEST) + public void onBookEdit(PlayerEditBookEvent event) + { + List pages = new ArrayList<>(); + + for (Component page : event.getNewBookMeta().pages()) + { + pages.add(SafeMiniMessage.mmDeserialize(PlexUtils.getTextFromComponent(page))); + } + + + event.setNewBookMeta((BookMeta)event.getNewBookMeta().pages(pages)); + } +} diff --git a/server/src/main/java/dev/plex/listener/impl/SignListener.java b/server/src/main/java/dev/plex/listener/impl/SignListener.java new file mode 100644 index 0000000..ce4b613 --- /dev/null +++ b/server/src/main/java/dev/plex/listener/impl/SignListener.java @@ -0,0 +1,20 @@ +package dev.plex.listener.impl; + +import dev.plex.listener.PlexListener; +import dev.plex.util.PlexUtils; +import dev.plex.util.minimessage.SafeMiniMessage; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.SignChangeEvent; + +public class SignListener extends PlexListener +{ + @EventHandler(priority = EventPriority.HIGHEST) + public void onSignEdit(SignChangeEvent event) + { + for (int i = 0; i < event.lines().size(); i++) + { + event.line(i, SafeMiniMessage.mmDeserialize(PlexUtils.getTextFromComponent(event.line(i)))); + } + } +}