Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 04:20:04 +01:00
96d5e6ca48
Currently includes generated key holder classes for types used in the Registry Modification API
133 Zeilen
3.9 KiB
Diff
133 Zeilen
3.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: by77er <by77er@gmail.com>
|
|
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..a82c0db092684bcb5e3c99f8158eb407268b0b5a
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/event/player/PlayerOpenSignEvent.java
|
|
@@ -0,0 +1,104 @@
|
|
+package io.papermc.paper.event.player;
|
|
+
|
|
+import org.bukkit.block.Sign;
|
|
+import org.bukkit.block.sign.Side;
|
|
+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 boolean cancel = false;
|
|
+ private final Sign sign;
|
|
+ private final Side side;
|
|
+ private final Cause cause;
|
|
+
|
|
+ @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 sign;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets which side of the sign was clicked.
|
|
+ *
|
|
+ * @return {@link Side} that was clicked
|
|
+ * @see Sign#getSide(Side)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Side getSide() {
|
|
+ return side;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * The cause of this sign open.
|
|
+ *
|
|
+ * @return the cause
|
|
+ */
|
|
+ public @NotNull Cause getCause() {
|
|
+ return cause;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancel;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ this.cancel = 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 org.bukkit.entity.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
|
|
+@org.bukkit.Warning(false) // Paper
|
|
public class PlayerSignOpenEvent extends PlayerEvent implements Cancellable {
|
|
|
|
private static final HandlerList handlers = new HandlerList();
|