aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch
blob: 3c9f223aa5c8ab2bf54698d14a1c43523a6e18f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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..6ed2a6c8c033937d933b6d4834953b8112a98bb3
--- /dev/null
+++ b/src/main/java/io/papermc/paper/event/player/PlayerLecternPageChangeEvent.java
@@ -0,0 +1,117 @@
+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.ApiStatus;
+import org.jetbrains.annotations.NotNull;
+
+public class PlayerLecternPageChangeEvent extends PlayerEvent implements Cancellable {
+
+    private static final HandlerList HANDLER_LIST = new HandlerList();
+
+    private final Lectern lectern;
+    private final ItemStack book;
+    private final PageChangeDirection pageChangeDirection;
+    private final int oldPage;
+    private int newPage;
+
+    private boolean cancelled;
+
+    @ApiStatus.Internal
+    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 this.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 this.pageChangeDirection;
+    }
+
+    /**
+     * Gets the page changed from. <i>Pages are 0-indexed.</i>
+     *
+     * @return the page changed from
+     */
+    public int getOldPage() {
+        return this.oldPage;
+    }
+
+    /**
+     * Gets the page changed to. <i>Pages are 0-indexed.</i>
+     *
+     * @return the page changed to
+     */
+    public int getNewPage() {
+        return this.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 this.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,
+    }
+}