Paper/Spigot-Server-Patches/0641-Added-PlayerLecternPageChangeEvent.patch

67 Zeilen
3.5 KiB
Diff

2020-11-23 21:59:17 +01:00
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/server/Container.java b/src/main/java/net/minecraft/server/Container.java
index 73a057b074af938a03decb0a53784aff321411ab..1eba0ccad798ee0d9e9d573e58a8dcd5363b6ffd 100644
--- a/src/main/java/net/minecraft/server/Container.java
+++ b/src/main/java/net/minecraft/server/Container.java
@@ -546,6 +546,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/server/ContainerLectern.java b/src/main/java/net/minecraft/server/ContainerLectern.java
index 360c1c16fa3a09e7548081b3edd3c4dd3ec06efc..d7bb956287fe8a5c76570242d68bab7e2f1a8c3f 100644
--- a/src/main/java/net/minecraft/server/ContainerLectern.java
+++ b/src/main/java/net/minecraft/server/ContainerLectern.java
@@ -7,6 +7,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 {
@@ -54,6 +55,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;
@@ -63,11 +65,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()) {