aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0331-Multiple-Entries-with-Scoreboards.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0331-Multiple-Entries-with-Scoreboards.patch')
-rw-r--r--patches/api/0331-Multiple-Entries-with-Scoreboards.patch128
1 files changed, 128 insertions, 0 deletions
diff --git a/patches/api/0331-Multiple-Entries-with-Scoreboards.patch b/patches/api/0331-Multiple-Entries-with-Scoreboards.patch
new file mode 100644
index 0000000000..920c2f117e
--- /dev/null
+++ b/patches/api/0331-Multiple-Entries-with-Scoreboards.patch
@@ -0,0 +1,128 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Cryptite <[email protected]>
+Date: Tue, 21 Sep 2021 18:17:34 -0500
+Subject: [PATCH] Multiple Entries with Scoreboards
+
+
+diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java
+index dff76db4a4c37c760144f00c1aa8f2bcac45ba1f..cacb58d25c249e2ecd6083ed0f30d5ffb345220a 100644
+--- a/src/main/java/org/bukkit/scoreboard/Team.java
++++ b/src/main/java/org/bukkit/scoreboard/Team.java
+@@ -309,6 +309,60 @@ public interface Team extends net.kyori.adventure.audience.ForwardingAudience {
+ */
+ void addEntry(@NotNull String entry);
+
++ // Paper start
++ /**
++ * This puts a collection of entities onto this team for the scoreboard which results in one
++ * packet for the updates rather than a packet-per-entity.
++ * <p>
++ * Entities on other teams will be removed from their respective teams.
++ *
++ * @param entities the entities to add
++ * @throws IllegalArgumentException if entities are null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ default void addEntities(@NotNull org.bukkit.entity.Entity @NotNull ...entities) {
++ this.addEntities(java.util.List.of(entities));
++ }
++
++ /**
++ * This puts a collection of entities onto this team for the scoreboard which results in one
++ * packet for the updates rather than a packet-per-entity.
++ * <p>
++ * Entities on other teams will be removed from their respective teams.
++ *
++ * @param entities the entities to add
++ * @throws IllegalArgumentException if entities are null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ void addEntities(@NotNull java.util.Collection<org.bukkit.entity.Entity> entities) throws IllegalStateException, IllegalArgumentException;
++
++ /**
++ * This puts a collection of entries onto this team for the scoreboard which results in one
++ * packet for the updates rather than a packet-per-entry.
++ * <p>
++ * Entries on other teams will be removed from their respective teams.
++ *
++ * @param entries the entries to add
++ * @throws IllegalArgumentException if entries are null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ default void addEntries(@NotNull String... entries) throws IllegalStateException, IllegalArgumentException {
++ this.addEntries(java.util.List.of(entries));
++ }
++
++ /**
++ * This puts a collection of entries onto this team for the scoreboard which results in one
++ * packet for the updates rather than a packet-per-entry.
++ * <p>
++ * Entries on other teams will be removed from their respective teams.
++ *
++ * @param entries the entries to add
++ * @throws IllegalArgumentException if entries are null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ void addEntries(@NotNull java.util.Collection<String> entries) throws IllegalStateException, IllegalArgumentException;
++ // Paper end
++
+ /**
+ * Removes the player from this team.
+ *
+@@ -329,6 +383,56 @@ public interface Team extends net.kyori.adventure.audience.ForwardingAudience {
+ */
+ boolean removeEntry(@NotNull String entry);
+
++ // Paper start
++ /**
++ * Removes a collection of entities from this team which results in one
++ * packet for the updates rather than a packet-per-entity.
++ *
++ * @param entities the entries to remove
++ * @return if any of the entities were a part of this team
++ * @throws IllegalArgumentException if entities is null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ default boolean removeEntities(@NotNull org.bukkit.entity.Entity @NotNull ... entities) throws IllegalStateException, IllegalArgumentException {
++ return this.removeEntities(java.util.List.of(entities));
++ }
++
++ /**
++ * Removes a collection of entities from this team which results in one
++ * packet for the updates rather than a packet-per-entity.
++ *
++ * @param entities the entries to remove
++ * @return if any of the entities were a part of this team
++ * @throws IllegalArgumentException if entities is null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ boolean removeEntities(@NotNull java.util.Collection<org.bukkit.entity.Entity> entities) throws IllegalStateException, IllegalArgumentException;
++
++ /**
++ * Removes a collection of entries from this team which results in one
++ * packet for the updates rather than a packet-per-entry.
++ *
++ * @param entries the entries to remove
++ * @return if any of the entries were a part of this team
++ * @throws IllegalArgumentException if entries is null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ default boolean removeEntries(@NotNull String... entries) throws IllegalStateException, IllegalArgumentException {
++ return this.removeEntries(java.util.List.of(entries));
++ }
++
++ /**
++ * Removes a collection of entries from this team which results in one
++ * packet for the updates rather than a packet-per-entry.
++ *
++ * @param entries the entries to remove
++ * @return if any of the entries were a part of this team
++ * @throws IllegalArgumentException if entries is null
++ * @throws IllegalStateException if this team has been unregistered
++ */
++ boolean removeEntries(@NotNull java.util.Collection<String> entries) throws IllegalStateException, IllegalArgumentException;
++ // Paper end
++
+ /**
+ * Unregisters this team from the Scoreboard
+ *