From 6ebda3c627f3ed55c17b9666ddeecb43ec65b23f Mon Sep 17 00:00:00 2001 From: leguan Date: Sun, 28 Jan 2024 19:43:50 +0100 Subject: [PATCH] Add OfflinePlayer#ifOnline --- .../api/0459-Add-OfflinePlayer-ifOnline.patch | 23 ++++++++++ .../1045-Add-OfflinePlayer-ifOnline.patch | 46 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 patches/api/0459-Add-OfflinePlayer-ifOnline.patch create mode 100644 patches/server/1045-Add-OfflinePlayer-ifOnline.patch diff --git a/patches/api/0459-Add-OfflinePlayer-ifOnline.patch b/patches/api/0459-Add-OfflinePlayer-ifOnline.patch new file mode 100644 index 000000000000..91dc0f73e648 --- /dev/null +++ b/patches/api/0459-Add-OfflinePlayer-ifOnline.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: leguan +Date: Sun, 28 Jan 2024 19:05:33 +0100 +Subject: [PATCH] Add OfflinePlayer#ifOnline + + +diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java +index abb5109ed08a3a651c2c27d4d17a3d49eb06da1e..2b7a49e595bf42a0bf80e0715f3912467b2d3eb6 100644 +--- a/src/main/java/org/bukkit/OfflinePlayer.java ++++ b/src/main/java/org/bukkit/OfflinePlayer.java +@@ -545,4 +545,12 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio + */ + @Nullable + public Location getLocation(); ++ ++ // Paper start - Add OfflinePlayer#ifOnline ++ /** ++ * Runs the provided consumer if the player is online. ++ * @param consumer the consumer that has to be run. ++ */ ++ void ifOnline(java.util.function.@NotNull Consumer consumer); ++ // Paper end - Add OfflinePlayer#ifOnline + } diff --git a/patches/server/1045-Add-OfflinePlayer-ifOnline.patch b/patches/server/1045-Add-OfflinePlayer-ifOnline.patch new file mode 100644 index 000000000000..166d527520b5 --- /dev/null +++ b/patches/server/1045-Add-OfflinePlayer-ifOnline.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: leguan +Date: Sun, 28 Jan 2024 19:39:01 +0100 +Subject: [PATCH] Add OfflinePlayer#ifOnline + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +index 4a875bce9563f3b9351ebecde9b0eb1287beb50e..a5ce3a727271b6808fefa4c61989c6e949ecdd5f 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +@@ -358,6 +358,15 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa + return null; + } + ++ // Paper start - Add OfflinePlayer#ifOnline ++ @Override ++ public void ifOnline(final java.util.function.@org.jetbrains.annotations.NotNull Consumer consumer) { ++ if (this.isOnline()) { ++ consumer.accept(this.getPlayer()); ++ } ++ } ++ // Paper end - Add OfflinePlayer#ifOnline ++ + @Override + public Location getBedSpawnLocation() { + return this.getRespawnLocation(); +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +index 39b25c2478eadd373383a3445a7f27ea30d18550..79e6e82fa0c56189f578ba7fd320e056bde481e3 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +@@ -1576,6 +1576,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + CraftStatistic.setStatistic(this.getHandle().getStats(), statistic, entityType, newValue, this.getHandle()); + } + ++ // Paper start - Add OfflinePlayer#ifOnline ++ @Override ++ public void ifOnline(final java.util.function.@org.jetbrains.annotations.NotNull Consumer consumer) { ++ if (this.isOnline()) { ++ consumer.accept(this.getPlayer()); ++ } ++ } ++ // Paper end - Add OfflinePlayer#ifOnline ++ + @Override + public void setPlayerTime(long time, boolean relative) { + this.getHandle().timeOffset = time;