mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
Add player elytra boost API
This commit is contained in:
parent
6dad6258d3
commit
a84348b6c9
2 changed files with 61 additions and 0 deletions
30
Spigot-API-Patches/0230-Player-elytra-boost-API.patch
Normal file
30
Spigot-API-Patches/0230-Player-elytra-boost-API.patch
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Trigary <trigary0@gmail.com>
|
||||||
|
Date: Tue, 14 Apr 2020 12:06:14 +0200
|
||||||
|
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 991f757a89d2e917186bb152a2f92bad8b6c2897..16bdb4b717368d121e84121f85bbf3de5fb642f1 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||||
|
@@ -1777,6 +1777,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
<T> T getClientOption(@NotNull ClientOption<T> option);
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Boost a Player that's {@link #isGliding()} using a {@link Firework}.
|
||||||
|
+ * If the creation of the entity is cancelled, no boosting is done.
|
||||||
|
+ * This method does not fire {@link com.destroystokyo.paper.event.player.PlayerElytraBoostEvent}.
|
||||||
|
+ *
|
||||||
|
+ * @param firework The {@link Material#FIREWORK_ROCKET} to boost the player with
|
||||||
|
+ * @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}
|
||||||
|
+ */
|
||||||
|
+ @Nullable
|
||||||
|
+ Firework boostElytra(@NotNull ItemStack firework);
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
// Spigot start
|
31
Spigot-Server-Patches/0592-Player-elytra-boost-API.patch
Normal file
31
Spigot-Server-Patches/0592-Player-elytra-boost-API.patch
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
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 fb1852ea6bf6997771a3522079bf3a32ebca357c..9f04172fb28b89f57515191204c62148d14e0034 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
|
@@ -2086,6 +2086,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
|
}
|
||||||
|
throw new RuntimeException("Unknown settings type");
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public org.bukkit.entity.Firework boostElytra(ItemStack firework) {
|
||||||
|
+ Validate.isTrue(isGliding(), "Player must be gliding");
|
||||||
|
+ Validate.isTrue(firework != null, "firework == null");
|
||||||
|
+ Validate.isTrue(firework.getType() == Material.FIREWORK_ROCKET, "Firework must be Material.FIREWORK_ROCKET");
|
||||||
|
+
|
||||||
|
+ net.minecraft.server.ItemStack item = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(firework);
|
||||||
|
+ net.minecraft.server.World world = ((CraftWorld) getWorld()).getHandle();
|
||||||
|
+ net.minecraft.server.EntityFireworks entity = new net.minecraft.server.EntityFireworks(world, item, getHandle());
|
||||||
|
+ return world.addEntity(entity)
|
||||||
|
+ ? (org.bukkit.entity.Firework) entity.getBukkitEntity()
|
||||||
|
+ : null;
|
||||||
|
+ }
|
||||||
|
// Paper end
|
||||||
|
|
||||||
|
// Spigot start
|
Loading…
Reference in a new issue