mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: ffecc4e2 Revert "Optimize entity list iteration requiring entities be in" 0a4286cc Prevent Fire from loading chunks 07915ea1 Add Player Client Options API (#2883) bc48a317 Optimize entity list iteration requiring entities be in loaded chunks 88092fef Optimize ChunkProviderServer's chunk level checking helper methods 01e8ce8d Forced Watchdog Crash support and Improve Async Shutdown fdb8fe78 Be less strict with vanilla teleport command limits
135 lines
3.9 KiB
Diff
135 lines
3.9 KiB
Diff
From a6ae43a653ae0fbe98bc01c3d5c55900a4009e07 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Sat, 10 Aug 2019 22:19:56 -0500
|
|
Subject: [PATCH] Implement AFK API
|
|
|
|
---
|
|
.../net/pl3x/purpur/event/PlayerAFKEvent.java | 70 +++++++++++++++++++
|
|
src/main/java/org/bukkit/entity/Player.java | 21 ++++++
|
|
.../org/bukkit/event/player/PlayerEvent.java | 2 +-
|
|
3 files changed, 92 insertions(+), 1 deletion(-)
|
|
create mode 100644 src/main/java/net/pl3x/purpur/event/PlayerAFKEvent.java
|
|
|
|
diff --git a/src/main/java/net/pl3x/purpur/event/PlayerAFKEvent.java b/src/main/java/net/pl3x/purpur/event/PlayerAFKEvent.java
|
|
new file mode 100644
|
|
index 000000000..0c8b3e5e4
|
|
--- /dev/null
|
|
+++ b/src/main/java/net/pl3x/purpur/event/PlayerAFKEvent.java
|
|
@@ -0,0 +1,70 @@
|
|
+package net.pl3x.purpur.event;
|
|
+
|
|
+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.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
+
|
|
+public class PlayerAFKEvent extends PlayerEvent implements Cancellable {
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private final boolean setAfk;
|
|
+ private boolean shouldKick;
|
|
+ private String broadcast;
|
|
+ private boolean cancel;
|
|
+
|
|
+ public PlayerAFKEvent(@NotNull Player player, boolean setAfk, boolean shouldKick, @Nullable String broadcast, boolean async) {
|
|
+ super(player, async);
|
|
+ this.setAfk = setAfk;
|
|
+ this.shouldKick = shouldKick;
|
|
+ this.broadcast = broadcast;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Whether player is going afk or coming back
|
|
+ *
|
|
+ * @return True if going afk. False is coming back
|
|
+ */
|
|
+ public boolean isGoingAfk() {
|
|
+ return setAfk;
|
|
+ }
|
|
+
|
|
+ public boolean shouldKick() {
|
|
+ return shouldKick;
|
|
+ }
|
|
+
|
|
+ public void setShouldKick(boolean shouldKick) {
|
|
+ this.shouldKick = shouldKick;
|
|
+ }
|
|
+
|
|
+ @Nullable
|
|
+ public String getBroadcastMsg() {
|
|
+ return broadcast;
|
|
+ }
|
|
+
|
|
+ public void setBroadcastMsg(@Nullable String broadcast) {
|
|
+ this.broadcast = broadcast;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isCancelled() {
|
|
+ return cancel;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setCancelled(boolean cancel) {
|
|
+ this.cancel = cancel;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ @NotNull
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
|
index 787bb144b..edc481170 100644
|
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
|
@@ -1830,4 +1830,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
@Override
|
|
Spigot spigot();
|
|
// Spigot end
|
|
+
|
|
+ // Purpur start
|
|
+ /**
|
|
+ * Check if player is AFK
|
|
+ *
|
|
+ * @return True if AFK
|
|
+ */
|
|
+ boolean isAfk();
|
|
+
|
|
+ /**
|
|
+ * Set player as AFK
|
|
+ *
|
|
+ * @param setAfk Whether to set AFK or not
|
|
+ */
|
|
+ void setAfk(boolean setAfk);
|
|
+
|
|
+ /**
|
|
+ * Reset the idle timer back to 0
|
|
+ */
|
|
+ void resetIdleTimer();
|
|
+ // Purpur end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerEvent.java b/src/main/java/org/bukkit/event/player/PlayerEvent.java
|
|
index 793b661b6..ad79d0db6 100644
|
|
--- a/src/main/java/org/bukkit/event/player/PlayerEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/player/PlayerEvent.java
|
|
@@ -14,7 +14,7 @@ public abstract class PlayerEvent extends Event {
|
|
player = who;
|
|
}
|
|
|
|
- PlayerEvent(@NotNull final Player who, boolean async) {
|
|
+ public PlayerEvent(@NotNull final Player who, boolean async) { // Purpur - package-private -> public
|
|
super(async);
|
|
player = who;
|
|
|
|
--
|
|
2.24.0
|
|
|