From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/world/inventory/Container.java
+++ b/src/main/java/net/minecraft/world/inventory/Container.java
@@ -0,0 +0,0 @@ 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/world/inventory/ContainerLectern.java
+++ b/src/main/java/net/minecraft/world/inventory/ContainerLectern.java
@@ -0,0 +0,0 @@ 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 {
 
@@ -0,0 +0,0 @@ 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;
@@ -0,0 +0,0 @@ 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()) {