From 5a34a7c895fc2a1022007c098bb9ecc9ce66e50a Mon Sep 17 00:00:00 2001 From: Tamion <70228790+notTamion@users.noreply.github.com> Date: Sat, 4 Nov 2023 21:20:13 +0100 Subject: [PATCH] Deprecate Player#boostElytra (#9899) The Paper method was chosen for deprecation because it was more restrictive in that it has an isGliding check. --- patches/api/Add-sendOpLevel-API.patch | 14 +++++---- ...stom-Chat-Completion-Suggestions-API.patch | 12 ++++--- patches/api/Player-elytra-boost-API.patch | 7 ++++- patches/server/Add-sendOpLevel-API.patch | 12 ++++--- ...stom-Chat-Completion-Suggestions-API.patch | 12 ++++--- patches/server/Player-elytra-boost-API.patch | 31 ------------------- 6 files changed, 35 insertions(+), 53 deletions(-) delete mode 100644 patches/server/Player-elytra-boost-API.patch diff --git a/patches/api/Add-sendOpLevel-API.patch b/patches/api/Add-sendOpLevel-API.patch index 1715ba717e..7cdb109a45 100644 --- a/patches/api/Add-sendOpLevel-API.patch +++ b/patches/api/Add-sendOpLevel-API.patch @@ -9,10 +9,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM - */ - @Nullable - Firework boostElytra(@NotNull ItemStack firework); -+ + } + // Paper end + ++ // Paper start - sendOpLevel API + /** + * Send a packet to the player indicating its operator status level. + *

@@ -23,6 +23,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * @throws IllegalArgumentException If the level is negative or greater than {@code 4} (i.e. not within {@code [0, 4]}). + */ + void sendOpLevel(byte level); - // Paper end - ++ // Paper end - sendOpLevel API ++ // Spigot start + public class Spigot extends Entity.Spigot { + diff --git a/patches/api/Custom-Chat-Completion-Suggestions-API.patch b/patches/api/Custom-Chat-Completion-Suggestions-API.patch index 0d8de55385..188721a647 100644 --- a/patches/api/Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/Custom-Chat-Completion-Suggestions-API.patch @@ -9,10 +9,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM - * @throws IllegalArgumentException If the level is negative or greater than {@code 4} (i.e. not within {@code [0, 4]}). - */ void sendOpLevel(byte level); -+ + // Paper end - sendOpLevel API + ++ // Paper start - custom chat completions API + /** + * Adds custom chat completion suggestions that the client will + * suggest when typing in chat. @@ -35,6 +35,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + */ + @Deprecated(since = "1.20.1") + void removeAdditionalChatCompletions(@NotNull java.util.Collection completions); - // Paper end - ++ // Paper end - custom chat completions API ++ // Spigot start + public class Spigot extends Entity.Spigot { + diff --git a/patches/api/Player-elytra-boost-API.patch b/patches/api/Player-elytra-boost-API.patch index b2bcde8430..116df06bf1 100644 --- a/patches/api/Player-elytra-boost-API.patch +++ b/patches/api/Player-elytra-boost-API.patch @@ -22,9 +22,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * @return The {@link Firework} boosting the Player or null if the spawning of the entity was cancelled + * @throws IllegalArgumentException if {@link #isGliding()} is false + * or if the {@code firework} isn't a {@link Material#FIREWORK_ROCKET} ++ * @deprecated use {@link HumanEntity#fireworkBoost(ItemStack)} instead. Note that this method does not ++ * check if the player is gliding or not. + */ + @Nullable -+ Firework boostElytra(@NotNull ItemStack firework); ++ default Firework boostElytra(@NotNull ItemStack firework) { ++ com.google.common.base.Preconditions.checkState(this.isGliding(), "Player must be gliding"); ++ return this.fireworkBoost(firework); ++ } // Paper end // Spigot start diff --git a/patches/server/Add-sendOpLevel-API.patch b/patches/server/Add-sendOpLevel-API.patch index 06df0474fe..fbd590708e 100644 --- a/patches/server/Add-sendOpLevel-API.patch +++ b/patches/server/Add-sendOpLevel-API.patch @@ -36,16 +36,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - ? (org.bukkit.entity.Firework) entity.getBukkitEntity() - : null; } -+ + // Paper end + ++ // Paper start - sendOpLevel API + @Override + public void sendOpLevel(byte level) { + Preconditions.checkArgument(level >= 0 && level <= 4, "Level must be within [0, 4]"); + + this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false); + } - // Paper end - ++ // Paper end - sendOpLevel API ++ @Override + public void setCompassTarget(Location loc) { + Preconditions.checkArgument(loc != null, "Location cannot be null"); diff --git a/patches/server/Custom-Chat-Completion-Suggestions-API.patch b/patches/server/Custom-Chat-Completion-Suggestions-API.patch index b31d72d646..636081763e 100644 --- a/patches/server/Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/Custom-Chat-Completion-Suggestions-API.patch @@ -9,10 +9,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - - this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false); } -+ + // Paper end - sendOpLevel API + ++ // Paper start - custom chat completions API + @Override + public void addAdditionalChatCompletions(@NotNull Collection completions) { + this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomChatCompletionsPacket( @@ -28,6 +28,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + new ArrayList<>(completions) + )); + } - // Paper end - ++ // Paper end - custom chat completions API ++ @Override + public void setCompassTarget(Location loc) { + Preconditions.checkArgument(loc != null, "Location cannot be null"); diff --git a/patches/server/Player-elytra-boost-API.patch b/patches/server/Player-elytra-boost-API.patch deleted file mode 100644 index 9d0569682a..0000000000 --- a/patches/server/Player-elytra-boost-API.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Trigary -Date: Tue, 14 Apr 2020 12:05:22 +0200 -Subject: [PATCH] Player elytra boost API - - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - } - throw new RuntimeException("Unknown settings type"); - } -+ -+ @Override -+ public org.bukkit.entity.Firework boostElytra(ItemStack firework) { -+ Preconditions.checkState(this.isGliding(), "Player must be gliding"); -+ Preconditions.checkArgument(firework != null, "firework == null"); -+ Preconditions.checkArgument(firework.getType() == Material.FIREWORK_ROCKET, "Firework must be Material.FIREWORK_ROCKET"); -+ -+ net.minecraft.world.item.ItemStack item = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(firework); -+ net.minecraft.world.level.Level world = ((CraftWorld) getWorld()).getHandle(); -+ net.minecraft.world.entity.projectile.FireworkRocketEntity entity = new net.minecraft.world.entity.projectile.FireworkRocketEntity(world, item, getHandle()); -+ return world.addFreshEntity(entity) -+ ? (org.bukkit.entity.Firework) entity.getBukkitEntity() -+ : null; -+ } - // Paper end - - @Override