Add Player#getHiddenEntities API

This commit is contained in:
Lexi
2022-06-23 22:06:34 -04:00
parent 80f0497360
commit 28f111ddaa
2 changed files with 56 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Lexi <lexi@qixils.dev>
Date: Thu, 23 Jun 2022 22:03:18 -0400
Subject: [PATCH] Add Player#getHiddenEntities API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e185b33daf7054e226944d30cfa8f08c97b4ce5f..07b95d18aec6813e1ca1b8dc15a5329ea9b37ed8 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1426,6 +1426,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@org.jetbrains.annotations.ApiStatus.Experimental // Paper
public boolean canSee(@NotNull Entity entity);
+ // Parchment start
+ /**
+ * Gets a view of the hidden entity UUIDs.
+ *
+ * @param plugin Plugin that has hidden entities
+ * @return a view of hidden entity UUIDs
+ */
+ @org.jetbrains.annotations.ApiStatus.Experimental
+ public java.util.@NotNull Set<UUID> getHiddenEntities(@NotNull Plugin plugin);
+ // Parchment end
+
/**
* Checks to see if this player is currently flying or not.
*

View File

@@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Lexi <lexi@qixils.dev>
Date: Thu, 23 Jun 2022 22:03:18 -0400
Subject: [PATCH] Add Player#getHiddenEntities API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index abcce6bd0b32d0188751393a6f56f2e82530912c..c4533c3a479046f81273d7bdb13d6f4fea24037d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1680,6 +1680,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
registerEntity(player);
}
}
+
+ // Parchment start
+ @Override
+ public Set<UUID> getHiddenEntities(Plugin plugin) {
+ return hiddenEntities.entrySet().stream()
+ .filter(entry -> entry.getValue().contains(CraftPlayer.getPluginWeakReference(plugin)))
+ .map(Map.Entry::getKey)
+ .collect(java.util.stream.Collectors.toSet());
+ }
+ // Parchment end
+
public void setPlayerProfile(com.destroystokyo.paper.profile.PlayerProfile profile) {
ServerPlayer self = getHandle();
self.gameProfile = com.destroystokyo.paper.profile.CraftPlayerProfile.asAuthlibCopy(profile);