mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-30 06:24:06 +01:00
2fa8efce9b
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 82af5dc6 SPIGOT-7396: Add PlayerSignOpenEvent 3f0281ca SPIGOT-7063, PR-763: Add DragonBattle#initiateRespawn with custom EnderCrystals f83c8df4 PR-873: Add PlayerRecipeBookClickEvent 14560d39 SPIGOT-7435: Add TeleportCause#EXIT_BED 2cc6db92 SPIGOT-7422, PR-887: Add API to set sherds on decorated pots 36022f02 PR-883: Add ItemFactory#getSpawnEgg 12eb5c46 PR-881: Update Scoreboard Javadocs, remove explicit exception throwing f6d8d44a PR-882: Add modern time API methods to ban API 21a7b710 Upgrade some Maven plugins to reduce warnings 11fd1225 PR-886: Deprecate the SmithingRecipe constructor as it now does nothing dbd1761d SPIGOT-7406: Improve documentation for getDragonBattle CraftBukkit Changes: d548daac2 SPIGOT-7446: BlockState#update not updating a spawner's type to null 70e0bc050 SPIGOT-7447: Fix --forceUpgrade 6752f1d63 SPIGOT-7396: Add PlayerSignOpenEvent 847b4cad5 SPIGOT-7063, PR-1071: Add DragonBattle#initiateRespawn with custom EnderCrystals c335a555f PR-1212: Add PlayerRecipeBookClickEvent 4be756ecb SPIGOT-7445: Fix opening smithing inventory db70bd6ed SPIGOT-7441: Fix issue placing certain items in creative/op f7fa6d993 SPIGOT-7435: Add TeleportCause#EXIT_BED b435e8e8d SPIGOT-7349: Player#setDisplayName not working when message/format unmodified a2fafdd1d PR-1232: Re-add fix for player rotation 7cf863de1 PR-1233: Remove some old MC bug fixes now fixed in vanilla 08ec344ad Fix ChunkGenerator#generateCaves never being called 5daeb502a SPIGOT-7422, PR-1228: Add API to set sherds on decorated pots 52faa6b32 PR-1224: Add ItemFactory#getSpawnEgg 01cae71b7 SPIGOT-7429: Fix LEFT_CLICK_AIR not working for passable entities and spectators a94277a18 PR-1223: Remove non-existent scoreboard display name/prefix/suffix limits 36b107660 PR-1225: Add modern time API methods to ban API 59ead25bc Upgrade some Maven plugins to reduce warnings 202fc5c4e Increase outdated build delay ce545de57 SPIGOT-7398: TextDisplay#setInterpolationDuration incorrectly updates the line width Spigot Changes: b41c46db Rebuild patches 3374045a SPIGOT-7431: Fix EntityMountEvent returning opposite entities 0ca4eb66 Rebuild patches
192 lines
7.7 KiB
Diff
192 lines
7.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 4 Nov 2021 12:31:45 -0700
|
|
Subject: [PATCH] Improve scoreboard entries
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java
|
|
index be3b2e5d9364abde50716c35cabd5938fe2c5e4d..0e4d7a8b3a100e1e770275063f654c2c5683179e 100644
|
|
--- a/src/main/java/org/bukkit/scoreboard/Objective.java
|
|
+++ b/src/main/java/org/bukkit/scoreboard/Objective.java
|
|
@@ -148,9 +148,8 @@ public interface Objective {
|
|
* @return Score tracking the Objective and player specified
|
|
* @throws IllegalStateException if this objective has been unregistered
|
|
* @see #getScore(String)
|
|
- * @deprecated Scoreboards can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
@NotNull
|
|
Score getScore(@NotNull OfflinePlayer player);
|
|
|
|
@@ -164,4 +163,16 @@ public interface Objective {
|
|
*/
|
|
@NotNull
|
|
Score getScore(@NotNull String entry);
|
|
+
|
|
+ // Paper start - improve scoreboard entries
|
|
+ /**
|
|
+ * Gets an entity's Score for an Objective on this Scoreboard.
|
|
+ *
|
|
+ * @param entity Entity for the Score
|
|
+ * @return Score tracking the Objective and entity specified
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @throws IllegalStateException if this objective has been unregistered
|
|
+ */
|
|
+ @NotNull Score getScoreFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException, IllegalStateException;
|
|
+ // Paper end - improve scoreboard entries
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
|
|
index 7f5afbf87396ecf489566e6924bb196621386b57..97571ad990d3a44f589f01cff2810f16a5f2ff9c 100644
|
|
--- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java
|
|
+++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
|
|
@@ -215,9 +215,8 @@ public interface Scoreboard {
|
|
* @param player the player whose scores are being retrieved
|
|
* @return immutable set of all scores tracked for the player
|
|
* @see #getScores(String)
|
|
- * @deprecated Scoreboards can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
@NotNull
|
|
Set<Score> getScores(@NotNull OfflinePlayer player);
|
|
|
|
@@ -235,9 +234,8 @@ public interface Scoreboard {
|
|
*
|
|
* @param player the player to drop all current scores for
|
|
* @see #resetScores(String)
|
|
- * @deprecated Scoreboards can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
void resetScores(@NotNull OfflinePlayer player);
|
|
|
|
/**
|
|
@@ -253,9 +251,8 @@ public interface Scoreboard {
|
|
* @param player the player to search for
|
|
* @return the player's Team or null if the player is not on a team
|
|
* @see #getEntryTeam(String)
|
|
- * @deprecated Scoreboards can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
@Nullable
|
|
Team getPlayerTeam(@NotNull OfflinePlayer player);
|
|
|
|
@@ -320,4 +317,35 @@ public interface Scoreboard {
|
|
* @param slot the slot to remove objectives
|
|
*/
|
|
void clearSlot(@NotNull DisplaySlot slot);
|
|
+
|
|
+ // Paper start - improve scoreboard entries
|
|
+ /**
|
|
+ * Gets all scores for an entity on this Scoreboard
|
|
+ *
|
|
+ * @param entity the entity whose scores are being retrieved
|
|
+ * @return immutable set of all scores tracked for the entity
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @see #getScores(String)
|
|
+ */
|
|
+ @NotNull Set<Score> getScoresFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Removes all scores for an entity on this Scoreboard
|
|
+ *
|
|
+ * @param entity the entity to drop all current scores for
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @see #resetScores(String)
|
|
+ */
|
|
+ void resetScoresFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Gets an entity's Team on this Scoreboard
|
|
+ *
|
|
+ * @param entity the entity to search for
|
|
+ * @return the entity's Team or null if the entity is not on a team
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @see #getEntryTeam(String)
|
|
+ */
|
|
+ @Nullable Team getEntityTeam(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException;
|
|
+ // Paper end - improve scoreboard entries
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java
|
|
index 5416386c89a4019a2c123374dd5cb6d4f12744f0..4a963cb67151287ff6645dcd1c9edddd162dff1a 100644
|
|
--- a/src/main/java/org/bukkit/scoreboard/Team.java
|
|
+++ b/src/main/java/org/bukkit/scoreboard/Team.java
|
|
@@ -295,9 +295,8 @@ public interface Team {
|
|
* @param player the player to add
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
* @see #addEntry(String)
|
|
- * @deprecated Teams can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
void addPlayer(@NotNull OfflinePlayer player);
|
|
|
|
/**
|
|
@@ -317,9 +316,8 @@ public interface Team {
|
|
* @return if the player was on this team
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
* @see #removeEntry(String)
|
|
- * @deprecated Teams can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
boolean removePlayer(@NotNull OfflinePlayer player);
|
|
|
|
/**
|
|
@@ -345,9 +343,8 @@ public interface Team {
|
|
* @return true if the player is a member of this team
|
|
* @throws IllegalStateException if this team has been unregistered
|
|
* @see #hasEntry(String)
|
|
- * @deprecated Teams can contain entries that aren't players
|
|
*/
|
|
- @Deprecated
|
|
+ // @Deprecated // Paper
|
|
boolean hasPlayer(@NotNull OfflinePlayer player);
|
|
/**
|
|
* Checks to see if the specified entry is a member of this team.
|
|
@@ -377,6 +374,42 @@ public interface Team {
|
|
*/
|
|
void setOption(@NotNull Option option, @NotNull OptionStatus status);
|
|
|
|
+ // Paper start - improve scoreboard entries
|
|
+ /**
|
|
+ * This puts the specified entity onto this team for the scoreboard.
|
|
+ * <p>
|
|
+ * This will remove the entity from any other team on the scoreboard.
|
|
+ *
|
|
+ * @param entity the entity to add
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ * @see #addEntry(String)
|
|
+ */
|
|
+ void addEntity(@NotNull org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Removes the entity from this team.
|
|
+ *
|
|
+ * @param entity the entity to remove
|
|
+ * @return if the entity was on this team
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ * @see #removeEntry(String)
|
|
+ */
|
|
+ boolean removeEntity(@NotNull org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException;
|
|
+
|
|
+ /**
|
|
+ * Checks to see if the specified entity is a member of this team.
|
|
+ *
|
|
+ * @param entity the entity to search for
|
|
+ * @return true if the entity is a member of this team
|
|
+ * @throws IllegalArgumentException if entity is null
|
|
+ * @throws IllegalStateException if this team has been unregistered
|
|
+ * @see #hasEntry(String)
|
|
+ */
|
|
+ boolean hasEntity(@NotNull org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException;
|
|
+ // Paper end - improve scoreboard entries
|
|
+
|
|
/**
|
|
* Represents an option which may be applied to this team.
|
|
*/
|