aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0406-Add-event-for-player-editing-sign.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0406-Add-event-for-player-editing-sign.patch')
-rw-r--r--patches/api/0406-Add-event-for-player-editing-sign.patch136
1 files changed, 136 insertions, 0 deletions
diff --git a/patches/api/0406-Add-event-for-player-editing-sign.patch b/patches/api/0406-Add-event-for-player-editing-sign.patch
new file mode 100644
index 0000000000..b534aebde9
--- /dev/null
+++ b/patches/api/0406-Add-event-for-player-editing-sign.patch
@@ -0,0 +1,136 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: by77er <[email protected]>
+Date: Sat, 10 Jun 2023 19:06:24 -0400
+Subject: [PATCH] Add event for player editing sign
+
+
+diff --git a/src/main/java/io/papermc/paper/event/player/PlayerOpenSignEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerOpenSignEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..c38c32ae349e094ffef84386607f4b9d5fe361f5
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/event/player/PlayerOpenSignEvent.java
+@@ -0,0 +1,108 @@
++package io.papermc.paper.event.player;
++
++import org.bukkit.block.Sign;
++import org.bukkit.block.sign.Side;
++import org.bukkit.entity.HumanEntity;
++import org.bukkit.entity.Player;
++import org.bukkit.event.Cancellable;
++import org.bukkit.event.HandlerList;
++import org.bukkit.event.player.PlayerEvent;
++import org.jetbrains.annotations.ApiStatus;
++import org.jetbrains.annotations.NotNull;
++
++/**
++ * Called when a player begins editing a sign's text.
++ * <p>
++ * Cancelling this event stops the sign editing menu from opening.
++ */
++public class PlayerOpenSignEvent extends PlayerEvent implements Cancellable {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ private final Sign sign;
++ private final Side side;
++ private final Cause cause;
++
++ private boolean cancelled;
++
++ @ApiStatus.Internal
++ public PlayerOpenSignEvent(final @NotNull Player editor, final @NotNull Sign sign, final @NotNull Side side, final @NotNull Cause cause) {
++ super(editor);
++ this.sign = sign;
++ this.side = side;
++ this.cause = cause;
++ }
++
++ /**
++ * Gets the sign that was clicked.
++ *
++ * @return {@link Sign} that was clicked
++ */
++ @NotNull
++ public Sign getSign() {
++ return this.sign;
++ }
++
++ /**
++ * Gets which side of the sign was clicked.
++ *
++ * @return {@link Side} that was clicked
++ * @see Sign#getSide(Side)
++ */
++ @NotNull
++ public Side getSide() {
++ return this.side;
++ }
++
++ /**
++ * The cause of this sign open.
++ *
++ * @return the cause
++ */
++ public @NotNull Cause getCause() {
++ return this.cause;
++ }
++
++ @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;
++ }
++
++ /**
++ * The cause of the {@link PlayerOpenSignEvent}.
++ */
++ public enum Cause {
++ /**
++ * The event was triggered by the placement of a sign.
++ */
++ PLACE,
++ /**
++ * The event was triggered by an interaction with a sign.
++ */
++ INTERACT,
++ /**
++ * The event was triggered via a plugin with {@link HumanEntity#openSign(Sign, Side)}
++ */
++ PLUGIN,
++ /**
++ * Fallback cause for any unknown cause.
++ */
++ UNKNOWN,
++ }
++}
+diff --git a/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java b/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java
+index ea197b1bc0a41355f8cdda3026f16c55f2d4fac9..62f41dbdf93e1912f4ee1376f000ffdc9073043d 100644
+--- a/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java
++++ b/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java
+@@ -10,8 +10,11 @@ import org.jetbrains.annotations.NotNull;
+
+ /**
+ * This event is fired when a sign is opened by the player.
++ * @deprecated use {@link io.papermc.paper.event.player.PlayerOpenSignEvent}
+ */
+ @ApiStatus.Experimental
++@Deprecated(forRemoval = true) // Paper
[email protected](false) // Paper
+ public class PlayerSignOpenEvent extends PlayerEvent implements Cancellable {
+
+ private static final HandlerList handlers = new HandlerList();