Deprecate Player#boostElytra (#9899)

The Paper method was chosen for deprecation because it was more
restrictive in that it has an isGliding check.
This commit is contained in:
Tamion 2023-11-04 21:20:13 +01:00 committed by GitHub
parent 6592fed511
commit bffb08c2f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
573 changed files with 106 additions and 124 deletions

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 81e8bfbe4380090830591274025a026de740fd05..e9df321980d0744a50edf2d5f978340013588803 100644
index 81e8bfbe4380090830591274025a026de740fd05..36e3f86f463cd7b6bca4c8b63739a06f17d7e28a 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2880,6 +2880,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -2880,6 +2880,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@NotNull
<T> T getClientOption(@NotNull com.destroystokyo.paper.ClientOption<T> option);
@ -22,9 +22,14 @@ index 81e8bfbe4380090830591274025a026de740fd05..e9df321980d0744a50edf2d5f9783400
+ * @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 <b>does not</b>
+ * 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

View File

@ -5,14 +5,14 @@ Subject: [PATCH] Add sendOpLevel API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index e9df321980d0744a50edf2d5f978340013588803..8a6cab8df1f1947bbdc4d11ba24b982a8483b2cc 100644
index 36e3f86f463cd7b6bca4c8b63739a06f17d7e28a..a46bc40bf101df46843311684f232b4b5b6f9127 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2893,6 +2893,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/
@Nullable
Firework boostElytra(@NotNull ItemStack firework);
+
@@ -2900,6 +2900,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
}
// Paper end
+ // Paper start - sendOpLevel API
+ /**
+ * Send a packet to the player indicating its operator status level.
+ * <p>
@ -23,6 +23,8 @@ index e9df321980d0744a50edf2d5f978340013588803..8a6cab8df1f1947bbdc4d11ba24b982a
+ * @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 {

View File

@ -165,10 +165,10 @@ index 77e29cada05da8946d718fe331e28e7553922033..5607404fa0132febdbdaad051a4e9426
* Teleports this entity to the given location. If this entity is riding a
* vehicle, it will be dismounted prior to teleportation.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index fe1c58a20de699d869a3f86295c8446991cce399..6a53097f308955dc063daf96aa367c2cb2945ca1 100644
index ccc7077f66d96b85478545a89c94b7466c3cdb77..3d64f8c3071495ec95350e09843d8e140b6a9af3 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3053,6 +3053,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3060,6 +3060,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName();
// Paper end

View File

@ -5,14 +5,14 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 6a53097f308955dc063daf96aa367c2cb2945ca1..470d47d6ffaf04805439d043fbb04bf2342d1db8 100644
index 3d64f8c3071495ec95350e09843d8e140b6a9af3..58498426c6ec697091a7a8ceeae6b85525ef39b7 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -2935,6 +2935,29 @@ 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]}).
*/
@@ -2944,6 +2944,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
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 6a53097f308955dc063daf96aa367c2cb2945ca1..470d47d6ffaf04805439d043fbb04bf2
+ */
+ @Deprecated(since = "1.20.1")
+ void removeAdditionalChatCompletions(@NotNull java.util.Collection<String> completions);
// Paper end
+ // Paper end - custom chat completions API
+
// Spigot start
public class Spigot extends Entity.Spigot {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 470d47d6ffaf04805439d043fbb04bf2342d1db8..93a8db0a1f7fa0a06315a9ec9f58c62c6faa4fb8 100644
index 58498426c6ec697091a7a8ceeae6b85525ef39b7..ef2e523e7571be791e37a66c2f859bd5e04d16ab 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3119,6 +3119,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3128,6 +3128,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
void lookAt(@NotNull org.bukkit.entity.Entity entity, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor, @NotNull io.papermc.paper.entity.LookAnchor entityAnchor);
// Paper end - Teleport API

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add Player Warden Warning API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 93a8db0a1f7fa0a06315a9ec9f58c62c6faa4fb8..4d1d81ddc7638e958f9cd1b10fd26227efc1578d 100644
index ef2e523e7571be791e37a66c2f859bd5e04d16ab..1746e646ccf73efddd62eb7522f2560fdef32c49 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3135,6 +3135,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3144,6 +3144,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @param silent whether sound should be silenced
*/
void showElderGuardian(boolean silent);

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API
Implements API for getting and resetting a player's idle duration.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 20fa1024f9ad8f478a347be5c554b5e45b398a1c..2996db88343060624d6aab7889290ae74a973fe8 100644
index 91919b2d06d544be9a09c486791de7dff599f75a..087898a50909a40aabec09f1e52cefed6565ba4c 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3274,6 +3274,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3283,6 +3283,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
void increaseWardenWarningLevel();
// Paper end

View File

@ -1,31 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Trigary <trigary0@gmail.com>
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 0656ea43e1d508d8f6af308475942c28d77655a4..aef0fa6fd575c08c75c75463abcc43089aada9e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -626,6 +626,20 @@ 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

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b1761300567e0e36ed17caed76f2aaa0ddb949d3..dac43bcd9dc796ffec983013291530f3bc541a26 100644
index b1162c638a87714ba9e54a24f10f229d303123bd..98fe64fcab9d0f8497794ccb8df563be782798d9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1814,6 +1814,28 @@ public final class CraftServer implements Server {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Item no age & no player pickup
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index b1be6c99ebff90ff98a7d5cafec4a856b9704b66..43f6422fedae4304801c7be21990725eca11fc62 100644
index 7b11db70668951e5331b6d6b99f616e163d7d7d6..953d3762292a4c15b063f9e237edf2f5c5362cb7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
@@ -9,6 +9,11 @@ import org.bukkit.inventory.ItemStack;

View File

@ -95,7 +95,7 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1
public void setCustomName(@Nullable Component customName) {
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java
index 57925335811f814fbd6010e58dc0566401cae21d..7aa4c30149289412991f54b1e730857a8e120eb3 100644
index c4890927419e27fd35e4e373fb09dcb182234fbf..7d90360bac08d6ec796ba44f1809793f3a3c1b3f 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java
@@ -32,7 +32,7 @@ public class CraftBeacon extends CraftBlockEntityState<BeaconBlockEntity> implem

View File

@ -25,7 +25,7 @@ index f9d7fec242a059a3b056c569ffaf214a361716d6..33a3c657bd390b9e8bc23af93c1107f5
Connection.LOGGER.debug("Failed to sent packet", throwable);
if (this.getSending() == PacketFlow.CLIENTBOUND) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 48985c0577fe1a09838137286e32128b29a60552..9c74a7e1dc74873c16a0fc474de459ccec4d372d 100644
index 567bfcdf5c946d09bb8188435ee13930082dccf5..bf637aae0dcd701dd31568b3c84851349c4c5a0a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -272,6 +272,7 @@ public class ServerPlayer extends Player {
@ -37,7 +37,7 @@ index 48985c0577fe1a09838137286e32128b29a60552..9c74a7e1dc74873c16a0fc474de459cc
// Paper start - replace player chunk loader
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index e8133a1ec975b7f63926acc7d6ab9291a2107084..95d37df1b51453722d47eb07e2e0247f308fa171 100644
index 96ee68e6656a59d959ad7a7e78f5a3752d6e3dbb..d660041805bcd1bb97cf347d8b1cfe5c65469f56 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -302,6 +302,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@ -49,7 +49,7 @@ index e8133a1ec975b7f63926acc7d6ab9291a2107084..95d37df1b51453722d47eb07e2e0247f
this.connection.disconnect(ichatbasecomponent);
}));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 1c95c4ff3f4b1811ff60ecb9518e0ef90c5120a5..f5df936cd96688758a1acd8d3ff743e507bc2001 100644
index cedc6b1e4255336b610ab9ba88a04d8dfde433cf..2c3ff91a7275158cdffa828e133a131b138bfa7c 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -560,7 +560,7 @@ public abstract class PlayerList {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index f5df936cd96688758a1acd8d3ff743e507bc2001..303e207e6819e77cf489dd47fb9450c629b70975 100644
index 2c3ff91a7275158cdffa828e133a131b138bfa7c..3f6e0319c1580dface0a175ebb93321ae4f45a35 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -832,7 +832,7 @@ public abstract class PlayerList {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index e3d6fd978f1f64e980e5729a2ad2712f44923786..192981678ad54bf1b71db4d1f15e6884e88ecebb 100644
index 7b1404ac481ea9a059197b9f752327ef0bf72c5c..1f742a39d1f31ef27cb4e662a6c3935600728d0b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2538,7 +2538,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2524,7 +2524,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (data != null) {
Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
}

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 8ed8bd2c539af20aa97bff1c0f719c4c2f793fc5..66a4d3d3626e4382e07617d0af464e6fbd8a9427 100644
index c8e729e949e7a8301f17768d6ae3f3ce940bb73a..a654f22a6c331cd69290b99e6c73f3ed611c58a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -887,6 +887,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {

View File

@ -8,7 +8,7 @@ public net.minecraft.world.entity.LightningBolt life
public net.minecraft.world.entity.LightningBolt flashes
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
index b9a8a39fed91aa5bbcd3c9c05ba9f10e2b7ec889..ef5a5aed9e1b15a29fd3a97ccd502c40b1d865ac 100644
index 849c7d1e4eabfaea491b6c9004f764307ad1b9c6..cd9bd7f06e55e970b7791e635610bb5e7491d102 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
@@ -66,4 +66,23 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 658e47bf5aff1e56462cc3f0a87eeb7349654176..c35d22e4d54abcb16b7ec932729d2f177fd4a14b 100644
index d4f89c87b989be9cfb4bd991bc69b85760df4bb2..9068a9646a7e436a5a0d9ea9deb52b78a316ba4a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2057,6 +2057,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@ -45,7 +45,7 @@ index d15e62da0307728a7c2be191a27f87da1bb29f49..de06ae3e8757c923a6f3f475a34885d2
} else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) {
return false;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index b2383510e00dcd68dee1a1f48aab873ae09f4d97..f767d1d98574fc847c495baee1bf369444443aad 100644
index 2b0178507a39c95fff94bea382bacebb8c40f1b7..7b68fd746338fadba2b3e9aee4df5fb965299f1a 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3424,7 +3424,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@ -117,7 +117,7 @@ index e7a8120a7d8bc9d668050c7f8fe94df90133b36c..9f46eb8417ad19e6f1bbf369f4c6b94f
}
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 7e996a527a632a2b382f5eea6df6be839a7a0ef4..25bf917fae922b34cc639148993bac39a50b4ce5 100644
index e4e734e0f4c43c1687c8e3a8bbe15441e0bd8e76..d972c59ec98e73d7ccd774e0f06c686251ffe4cf 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -343,7 +343,7 @@ public class ArmorStand extends LivingEntity {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Added missing default perms for commands
diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java
index ca30f9c590f792caa8f1b76d7219e9121d932673..74ffea16027ba8eaa26716c3b6b78a8e83c9ed79 100644
index a9ea2e38e4673686c9994a58c94ad19e59fd423c..ea732f8fe7b5dd56aab5d3a061a1cad19c49ae0b 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java
@@ -24,13 +24,73 @@ public final class CommandPermissions {

View File

@ -32,20 +32,22 @@ index 9b56415f1a03423f29822839ce27bbdf33bb91d5..89d18ae87029b82beea5e1bd69580f54
public boolean isWhiteListed(GameProfile profile) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 192981678ad54bf1b71db4d1f15e6884e88ecebb..47f3bd3be8da2c79d3655823ac0f2f4a8f9d7efe 100644
index 1f742a39d1f31ef27cb4e662a6c3935600728d0b..69d0694f2f25ce51f40c7cd283e1591fe05ffe2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -640,6 +640,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
? (org.bukkit.entity.Firework) entity.getBukkitEntity()
: null;
@@ -628,6 +628,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
+
// 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");

Some files were not shown because too many files have changed in this diff Show More