From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 23 Nov 2020 12:58:51 -0800 Subject: [PATCH] Added PlayerLecternPageChangeEvent diff --git a/src/main/java/net/minecraft/world/inventory/Container.java b/src/main/java/net/minecraft/world/inventory/Container.java index e7c29d194d5c3e3b1b79228758f7a3d8aa060fbd..9c6330da4e026a7753698b5d103c009730154c3e 100644 --- a/src/main/java/net/minecraft/world/inventory/Container.java +++ b/src/main/java/net/minecraft/world/inventory/Container.java @@ -562,6 +562,7 @@ public abstract class Container { this.getSlot(i).set(itemstack); } + public void setData(int index, int value) { this.a(index, value); } // Paper - OBFHELPER public void a(int i, int j) { ((ContainerProperty) this.d.get(i)).set(j); } diff --git a/src/main/java/net/minecraft/world/inventory/ContainerLectern.java b/src/main/java/net/minecraft/world/inventory/ContainerLectern.java index 910c3eab0675b84694317427d7317caba89d74c3..10c829efd9ecb7dfa29e92586f99e40a8984f840 100644 --- a/src/main/java/net/minecraft/world/inventory/ContainerLectern.java +++ b/src/main/java/net/minecraft/world/inventory/ContainerLectern.java @@ -13,6 +13,7 @@ import org.bukkit.craftbukkit.inventory.CraftInventoryView; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerTakeLecternBookEvent; // CraftBukkit end +import io.papermc.paper.event.player.PlayerLecternPageChangeEvent; // Paper public class ContainerLectern extends Container { @@ -60,6 +61,7 @@ public class ContainerLectern extends Container { @Override public boolean a(EntityHuman entityhuman, int i) { int j; + PlayerLecternPageChangeEvent playerLecternPageChangeEvent; CraftInventoryLectern bukkitView; // Paper if (i >= 100) { j = i - 100; @@ -69,11 +71,25 @@ public class ContainerLectern extends Container { switch (i) { case 1: j = this.containerProperties.getProperty(0); - this.a(0, j - 1); + // Paper start + bukkitView = (CraftInventoryLectern) getBukkitView().getTopInventory(); + playerLecternPageChangeEvent = new PlayerLecternPageChangeEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), bukkitView.getHolder(), bukkitView.getBook(), PlayerLecternPageChangeEvent.PageChangeDirection.LEFT, j, j - 1); + if (!playerLecternPageChangeEvent.callEvent()) { + return false; + } + this.setData(0, playerLecternPageChangeEvent.getNewPage()); + // Paper end return true; case 2: j = this.containerProperties.getProperty(0); - this.a(0, j + 1); + // Paper start + bukkitView = (CraftInventoryLectern) getBukkitView().getTopInventory(); + playerLecternPageChangeEvent = new PlayerLecternPageChangeEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), bukkitView.getHolder(), bukkitView.getBook(), PlayerLecternPageChangeEvent.PageChangeDirection.RIGHT, j, j + 1); + if (!playerLecternPageChangeEvent.callEvent()) { + return false; + } + this.setData(0, playerLecternPageChangeEvent.getNewPage()); + // Paper end return true; case 3: if (!entityhuman.eK()) {