mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 23:38:25 +01:00
Added PlayerLecternPageChangeEvent
This commit is contained in:
parent
5e08466cc1
commit
4048b356d0
2 changed files with 193 additions and 0 deletions
127
Spigot-API-Patches/Added-PlayerLecternPageChangeEvent.patch
Normal file
127
Spigot-API-Patches/Added-PlayerLecternPageChangeEvent.patch
Normal file
|
@ -0,0 +1,127 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||
Date: Mon, 23 Nov 2020 12:58:16 -0800
|
||||
Subject: [PATCH] Added PlayerLecternPageChangeEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerLecternPageChangeEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerLecternPageChangeEvent.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/event/player/PlayerLecternPageChangeEvent.java
|
||||
@@ -0,0 +0,0 @@
|
||||
+package io.papermc.paper.event.player;
|
||||
+
|
||||
+import org.bukkit.block.Lectern;
|
||||
+import org.bukkit.entity.Player;
|
||||
+import org.bukkit.event.Cancellable;
|
||||
+import org.bukkit.event.HandlerList;
|
||||
+import org.bukkit.event.player.PlayerEvent;
|
||||
+import org.bukkit.inventory.ItemStack;
|
||||
+import org.jetbrains.annotations.NotNull;
|
||||
+import org.jetbrains.annotations.Nullable;
|
||||
+
|
||||
+public class PlayerLecternPageChangeEvent extends PlayerEvent implements Cancellable {
|
||||
+
|
||||
+ private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||
+
|
||||
+ private boolean cancelled;
|
||||
+ private final Lectern lectern;
|
||||
+ private final ItemStack book;
|
||||
+ private final PageChangeDirection pageChangeDirection;
|
||||
+ private final int oldPage;
|
||||
+ private int newPage;
|
||||
+
|
||||
+ public PlayerLecternPageChangeEvent(@NotNull Player player, @NotNull Lectern lectern, @NotNull ItemStack book, @NotNull PageChangeDirection pageChangeDirection, int oldPage, int newPage) {
|
||||
+ super(player);
|
||||
+ this.lectern = lectern;
|
||||
+ this.book = book;
|
||||
+ this.pageChangeDirection = pageChangeDirection;
|
||||
+ this.oldPage = oldPage;
|
||||
+ this.newPage = newPage;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the lectern involved.
|
||||
+ *
|
||||
+ * @return the Lectern
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ public Lectern getLectern() {
|
||||
+ return lectern;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the current ItemStack on the lectern.
|
||||
+ *
|
||||
+ * @return the ItemStack on the Lectern
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ public ItemStack getBook() {
|
||||
+ return this.book;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the page change direction. This is essentially returns which button the player clicked, left or right.
|
||||
+ *
|
||||
+ * @return the page change direction
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ public PageChangeDirection getPageChangeDirection() {
|
||||
+ return pageChangeDirection;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the page changed from. <i>Pages are 0-indexed.</i>
|
||||
+ *
|
||||
+ * @return the page changed from
|
||||
+ */
|
||||
+ public int getOldPage() {
|
||||
+ return oldPage;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the page changed to. <i>Pages are 0-indexed.</i>
|
||||
+ *
|
||||
+ * @return the page changed to
|
||||
+ */
|
||||
+ public int getNewPage() {
|
||||
+ return newPage;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the page changed to. <i>Pages are 0-indexed.</i>
|
||||
+ * Page indices that are greater than the number of pages will show the last page.
|
||||
+ *
|
||||
+ * @param newPage the new paged changed to
|
||||
+ */
|
||||
+ public void setNewPage(int newPage) {
|
||||
+ this.newPage = newPage;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isCancelled() {
|
||||
+ return cancelled;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setCancelled(boolean cancel) {
|
||||
+ this.cancelled = cancel;
|
||||
+ }
|
||||
+
|
||||
+ @NotNull
|
||||
+ @Override
|
||||
+ public HandlerList getHandlers() {
|
||||
+ return HANDLER_LIST;
|
||||
+ }
|
||||
+
|
||||
+ @NotNull
|
||||
+ public static HandlerList getHandlerList() {
|
||||
+ return HANDLER_LIST;
|
||||
+ }
|
||||
+
|
||||
+ public enum PageChangeDirection {
|
||||
+ LEFT,
|
||||
+ RIGHT,
|
||||
+ }
|
||||
+}
|
|
@ -0,0 +1,66 @@
|
|||
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/Container.java
|
||||
+++ b/src/main/java/net/minecraft/server/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/server/ContainerLectern.java b/src/main/java/net/minecraft/server/ContainerLectern.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/ContainerLectern.java
|
||||
+++ b/src/main/java/net/minecraft/server/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()) {
|
Loading…
Reference in a new issue