more patches
This commit is contained in:
parent
18a839d265
commit
8cf470d6b1
49 changed files with 582 additions and 738 deletions
|
@ -0,0 +1,19 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aurora <aurora@relanet.eu>
|
||||
Date: Sat, 3 Oct 2020 16:28:41 +0200
|
||||
Subject: [PATCH] Clarify the Javadocs for Entity.getEntitySpawnReason()
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
||||
index 8cfe08cbc869e468edc0f0bdaa28d5bf1f6201a2..a9e455c5b3bbe4edbdb71f86f5c6eebc2f605547 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Entity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
||||
@@ -713,7 +713,7 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
||||
}
|
||||
|
||||
/**
|
||||
- * @return The {@link org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason} that spawned this entity.
|
||||
+ * @return The {@link org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason} that initially spawned this entity. <!-- Paper - added "initially" to clarify that the SpawnReason doesn't change after the Entity was initially spawned" -->
|
||||
*/
|
||||
@NotNull
|
||||
org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason();
|
22
patches/api/0229-Villager-resetOffers.patch
Normal file
22
patches/api/0229-Villager-resetOffers.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Mon, 7 Oct 2019 00:15:28 -0500
|
||||
Subject: [PATCH] Villager#resetOffers
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/AbstractVillager.java b/src/main/java/org/bukkit/entity/AbstractVillager.java
|
||||
index d2b0c08554dba4d34b37b440f1d77ae0e64cb99e..7fbe31c4fd69d4fca7ef96c0a56b0e0204d60cf4 100644
|
||||
--- a/src/main/java/org/bukkit/entity/AbstractVillager.java
|
||||
+++ b/src/main/java/org/bukkit/entity/AbstractVillager.java
|
||||
@@ -21,4 +21,11 @@ public interface AbstractVillager extends Breedable, NPC, InventoryHolder, Merch
|
||||
@NotNull
|
||||
@Override
|
||||
Inventory getInventory();
|
||||
+
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Reset this villager's trade offers
|
||||
+ */
|
||||
+ public void resetOffers();
|
||||
+ // Paper end
|
||||
}
|
30
patches/api/0230-Player-elytra-boost-API.patch
Normal file
30
patches/api/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 6bc4f12e4ef35979c9d99273d14d7b31833d3f75..d281d270bba71da5a7d1326112e73d9cdb1ed57b 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -1943,6 +1943,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
|
68
patches/api/0231-Add-getOfflinePlayerIfCached-String.patch
Normal file
68
patches/api/0231-Add-getOfflinePlayerIfCached-String.patch
Normal file
|
@ -0,0 +1,68 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: oxygencraft <21054297+oxygencraft@users.noreply.github.com>
|
||||
Date: Sun, 25 Oct 2020 18:35:58 +1100
|
||||
Subject: [PATCH] Add getOfflinePlayerIfCached(String)
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
||||
index af0cf1fe3db1efd39bc06a89216413fc4415b007..bad4593447ca390b3e2f3bc71b4ea9f4dd673445 100644
|
||||
--- a/src/main/java/org/bukkit/Bukkit.java
|
||||
+++ b/src/main/java/org/bukkit/Bukkit.java
|
||||
@@ -962,6 +962,27 @@ public final class Bukkit {
|
||||
return server.getOfflinePlayer(name);
|
||||
}
|
||||
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Gets the player by the given name, regardless if they are offline or
|
||||
+ * online.
|
||||
+ * <p>
|
||||
+ * This will not make a web request to get the UUID for the given name,
|
||||
+ * thus this method will not block. However this method will return
|
||||
+ * {@code null} if the player is not cached.
|
||||
+ * </p>
|
||||
+ *
|
||||
+ * @param name the name of the player to retrieve
|
||||
+ * @return an offline player if cached, {@code null} otherwise
|
||||
+ * @see #getOfflinePlayer(String)
|
||||
+ * @see #getOfflinePlayer(java.util.UUID)
|
||||
+ */
|
||||
+ @Nullable
|
||||
+ public static OfflinePlayer getOfflinePlayerIfCached(@NotNull String name) {
|
||||
+ return server.getOfflinePlayerIfCached(name);
|
||||
+ }
|
||||
+ // Paper end
|
||||
+
|
||||
/**
|
||||
* Gets the player by the given UUID, regardless if they are offline or
|
||||
* online.
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 64316a3bcba881f9366d9bf9e16b205e2b817707..48c6434a6a5b1659d4cc8ddf8fe23806628c3b7e 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -808,6 +808,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@NotNull
|
||||
public OfflinePlayer getOfflinePlayer(@NotNull String name);
|
||||
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Gets the player by the given name, regardless if they are offline or
|
||||
+ * online.
|
||||
+ * <p>
|
||||
+ * This will not make a web request to get the UUID for the given name,
|
||||
+ * thus this method will not block. However this method will return
|
||||
+ * {@code null} if the player is not cached.
|
||||
+ * </p>
|
||||
+ *
|
||||
+ * @param name the name of the player to retrieve
|
||||
+ * @return an offline player if cached, {@code null} otherwise
|
||||
+ * @see #getOfflinePlayer(String)
|
||||
+ * @see #getOfflinePlayer(java.util.UUID)
|
||||
+ */
|
||||
+ @Nullable
|
||||
+ public OfflinePlayer getOfflinePlayerIfCached(@NotNull String name);
|
||||
+ // Paper end
|
||||
+
|
||||
/**
|
||||
* Gets the player by the given UUID, regardless if they are offline or
|
||||
* online.
|
52
patches/api/0232-Add-ignore-discounts-API.patch
Normal file
52
patches/api/0232-Add-ignore-discounts-API.patch
Normal file
|
@ -0,0 +1,52 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Mariell Hoversholm <proximyst@proximyst.com>
|
||||
Date: Mon, 9 Nov 2020 20:33:38 +0100
|
||||
Subject: [PATCH] Add ignore discounts API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/inventory/MerchantRecipe.java b/src/main/java/org/bukkit/inventory/MerchantRecipe.java
|
||||
index 1fb4a1c53791776f9c5a952a592f15fc35cb2703..2be2f3fe655c417bfc8f8e840f9e9415d168f37e 100644
|
||||
--- a/src/main/java/org/bukkit/inventory/MerchantRecipe.java
|
||||
+++ b/src/main/java/org/bukkit/inventory/MerchantRecipe.java
|
||||
@@ -28,6 +28,7 @@ public class MerchantRecipe implements Recipe {
|
||||
private boolean experienceReward;
|
||||
private int villagerExperience;
|
||||
private float priceMultiplier;
|
||||
+ private boolean ignoreDiscounts; // Paper
|
||||
|
||||
public MerchantRecipe(@NotNull ItemStack result, int maxUses) {
|
||||
this(result, 0, maxUses, false);
|
||||
@@ -38,6 +39,12 @@ public class MerchantRecipe implements Recipe {
|
||||
}
|
||||
|
||||
public MerchantRecipe(@NotNull ItemStack result, int uses, int maxUses, boolean experienceReward, int villagerExperience, float priceMultiplier) {
|
||||
+ // Paper start - add ignoreDiscounts param
|
||||
+ this(result, uses, maxUses, experienceReward, villagerExperience, priceMultiplier, false);
|
||||
+ }
|
||||
+ public MerchantRecipe(@NotNull ItemStack result, int uses, int maxUses, boolean experienceReward, int villagerExperience, float priceMultiplier, boolean ignoreDiscounts) {
|
||||
+ this.ignoreDiscounts = ignoreDiscounts;
|
||||
+ // Paper end
|
||||
this.result = result;
|
||||
this.uses = uses;
|
||||
this.maxUses = maxUses;
|
||||
@@ -172,4 +179,20 @@ public class MerchantRecipe implements Recipe {
|
||||
public void setPriceMultiplier(float priceMultiplier) {
|
||||
this.priceMultiplier = priceMultiplier;
|
||||
}
|
||||
+
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * @return Whether all discounts on this trade should be ignored.
|
||||
+ */
|
||||
+ public boolean shouldIgnoreDiscounts() {
|
||||
+ return ignoreDiscounts;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * @param ignoreDiscounts Whether all discounts on this trade should be ignored.
|
||||
+ */
|
||||
+ public void setIgnoreDiscounts(boolean ignoreDiscounts) {
|
||||
+ this.ignoreDiscounts = ignoreDiscounts;
|
||||
+ }
|
||||
+ // Paper end
|
||||
}
|
45
patches/api/0233-Item-no-age-no-player-pickup.patch
Normal file
45
patches/api/0233-Item-no-age-no-player-pickup.patch
Normal file
|
@ -0,0 +1,45 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Alfie Smith <alfie@alfiesmith.net>
|
||||
Date: Sat, 7 Nov 2020 01:20:27 +0000
|
||||
Subject: [PATCH] Item no age & no player pickup
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java
|
||||
index c404a5b8efea7c780db5ddae19456753808abb3d..0ee072645ecf1bf5feb74de6960947ef76db366e 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Item.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Item.java
|
||||
@@ -90,5 +90,34 @@ public interface Item extends Entity {
|
||||
* @param canMobPickup True to allow non-player entity pickup
|
||||
*/
|
||||
public void setCanMobPickup(boolean canMobPickup);
|
||||
+
|
||||
+ /**
|
||||
+ * Gets whether the player can pickup the item or not
|
||||
+ *
|
||||
+ * @return True if a player can pickup the item
|
||||
+ */
|
||||
+ public boolean canPlayerPickup();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets whether the item can be picked up or not. Modifies the pickup delay value to do so.
|
||||
+ *
|
||||
+ * @param canPlayerPickup True if the player can pickup the item
|
||||
+ */
|
||||
+ public void setCanPlayerPickup(boolean canPlayerPickup);
|
||||
+
|
||||
+ /**
|
||||
+ * Gets whether the item will age and despawn from being on the ground too long
|
||||
+ *
|
||||
+ * @return True if the item will age
|
||||
+ */
|
||||
+ public boolean willAge();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets whether the item will age or not. If the item is not ageing, it will not despawn
|
||||
+ * by being on the ground for too long.
|
||||
+ *
|
||||
+ * @param willAge True if the item should age
|
||||
+ */
|
||||
+ public void setWillAge(boolean willAge);
|
||||
// Paper end
|
||||
}
|
37
patches/api/0234-Beacon-API-custom-effect-ranges.patch
Normal file
37
patches/api/0234-Beacon-API-custom-effect-ranges.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||
Date: Wed, 24 Jun 2020 12:38:15 -0600
|
||||
Subject: [PATCH] Beacon API - custom effect ranges
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/block/Beacon.java b/src/main/java/org/bukkit/block/Beacon.java
|
||||
index 6349fa9da3f96df3553fb9552c1cab95338cecb0..78475fc6faff0f295828d7b53792001d51aa2889 100644
|
||||
--- a/src/main/java/org/bukkit/block/Beacon.java
|
||||
+++ b/src/main/java/org/bukkit/block/Beacon.java
|
||||
@@ -64,4 +64,26 @@ public interface Beacon extends TileState, Lockable, Nameable {
|
||||
* @param effect desired secondary effect
|
||||
*/
|
||||
void setSecondaryEffect(@Nullable PotionEffectType effect);
|
||||
+
|
||||
+ // Paper start - Custom effect ranges
|
||||
+ /**
|
||||
+ * Gets the effect range of this beacon.
|
||||
+ * A negative range value means the beacon is using its default range based on tier.
|
||||
+ * @return Either the custom range set with {@link #setEffectRange(double)} or the range based on the beacon tier.
|
||||
+ */
|
||||
+ double getEffectRange();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the effect range of the beacon
|
||||
+ * A negative range value means the beacon is using its default range based on tier.
|
||||
+ * @param range Radius of effect range.
|
||||
+ */
|
||||
+ void setEffectRange(double range);
|
||||
+
|
||||
+ /**
|
||||
+ * Resets the custom range from this beacon and falls back to the range based on the the beacon tier.
|
||||
+ * Shortcut for setting the effect range to a negative number.
|
||||
+ */
|
||||
+ void resetEffectRange();
|
||||
+ // Paper end
|
||||
}
|
79
patches/api/0235-Add-API-for-quit-reason.patch
Normal file
79
patches/api/0235-Add-API-for-quit-reason.patch
Normal file
|
@ -0,0 +1,79 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Mariell Hoversholm <proximyst@proximyst.com>
|
||||
Date: Sat, 14 Nov 2020 16:19:58 +0100
|
||||
Subject: [PATCH] Add API for quit reason
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
|
||||
index 849e8f10dd77e9fb46aab17752b8f1ff79e9d42e..b6016aa1e91863efc252eecab69ade6f54c89f27 100644
|
||||
--- a/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
|
||||
+++ b/src/main/java/org/bukkit/event/player/PlayerQuitEvent.java
|
||||
@@ -11,16 +11,28 @@ import org.jetbrains.annotations.Nullable;
|
||||
public class PlayerQuitEvent extends PlayerEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private net.kyori.adventure.text.Component quitMessage; // Paper
|
||||
+ private final QuitReason reason; // Paper
|
||||
|
||||
@Deprecated // Paper
|
||||
public PlayerQuitEvent(@NotNull final Player who, @Nullable final String quitMessage) {
|
||||
+ // Paper start
|
||||
+ this(who, quitMessage, null);
|
||||
+ }
|
||||
+ @Deprecated // Paper
|
||||
+ public PlayerQuitEvent(@NotNull final Player who, @Nullable final String quitMessage, @Nullable QuitReason quitReason) {
|
||||
super(who);
|
||||
this.quitMessage = quitMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(quitMessage) : null; // Paper
|
||||
+ this.reason = quitReason == null ? QuitReason.DISCONNECTED : quitReason;
|
||||
}
|
||||
// Paper start
|
||||
+ @Deprecated
|
||||
public PlayerQuitEvent(@NotNull final Player who, @Nullable final net.kyori.adventure.text.Component quitMessage) {
|
||||
+ this(who, quitMessage, null);
|
||||
+ }
|
||||
+ public PlayerQuitEvent(@NotNull final Player who, @Nullable final net.kyori.adventure.text.Component quitMessage, @Nullable QuitReason quitReason) {
|
||||
super(who);
|
||||
this.quitMessage = quitMessage;
|
||||
+ this.reason = quitReason == null ? QuitReason.DISCONNECTED : quitReason;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -75,4 +87,39 @@ public class PlayerQuitEvent extends PlayerEvent {
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
+
|
||||
+ // Paper start
|
||||
+ @NotNull
|
||||
+ public QuitReason getReason() {
|
||||
+ return this.reason;
|
||||
+ }
|
||||
+
|
||||
+ public enum QuitReason {
|
||||
+ /**
|
||||
+ * The player left on their own behalf.
|
||||
+ * <p>
|
||||
+ * This does not mean they pressed the disconnect button in their client, but rather that the client severed the
|
||||
+ * connection themselves. This may occur if no keep-alive packet is received on their side, among other things.
|
||||
+ */
|
||||
+ DISCONNECTED,
|
||||
+
|
||||
+ /**
|
||||
+ * The player was kicked from the server.
|
||||
+ */
|
||||
+ KICKED,
|
||||
+
|
||||
+ /**
|
||||
+ * The player has timed out.
|
||||
+ */
|
||||
+ TIMED_OUT,
|
||||
+
|
||||
+ /**
|
||||
+ * The player's connection has entered an erroneous state.
|
||||
+ * <p>
|
||||
+ * Reasons for this may include invalid packets, invalid data, and uncaught exceptions in the packet handler,
|
||||
+ * among others.
|
||||
+ */
|
||||
+ ERRONEOUS_STATE,
|
||||
+ }
|
||||
+ // Paper end
|
||||
}
|
41
patches/api/0236-Add-Destroy-Speed-API.patch
Normal file
41
patches/api/0236-Add-Destroy-Speed-API.patch
Normal file
|
@ -0,0 +1,41 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Ineusia <ineusia@yahoo.com>
|
||||
Date: Mon, 26 Oct 2020 11:37:48 -0500
|
||||
Subject: [PATCH] Add Destroy Speed API
|
||||
|
||||
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
|
||||
index 024deba760c41787190d20e4ac5c541920bb4991..e759a03ccf7b341db36f455879e0004a6d6d4d07 100644
|
||||
--- a/src/main/java/org/bukkit/block/Block.java
|
||||
+++ b/src/main/java/org/bukkit/block/Block.java
|
||||
@@ -618,5 +618,29 @@ public interface Block extends Metadatable {
|
||||
*/
|
||||
@NotNull
|
||||
String getTranslationKey();
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the speed at which this block will be destroyed by a given {@link ItemStack}
|
||||
+ *
|
||||
+ * <p>Default value is 1.0</p>
|
||||
+ *
|
||||
+ * @param itemStack {@link ItemStack} used to mine this Block
|
||||
+ * @return the speed that this Block will be mined by the given {@link ItemStack}
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ public default float getDestroySpeed(@NotNull ItemStack itemStack) {
|
||||
+ return getDestroySpeed(itemStack, false);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the speed at which this blook will be destroyed by a given {@link org.bukkit.inventory.ItemStack}
|
||||
+ * <p>
|
||||
+ * Default value is 1.0
|
||||
+ * @param itemStack {@link org.bukkit.inventory.ItemStack} used to mine this Block
|
||||
+ * @param considerEnchants true to look at enchants on the itemstack
|
||||
+ * @return the speed that this Block will be mined by the given {@link org.bukkit.inventory.ItemStack}
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ float getDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants);
|
||||
// Paper end
|
||||
}
|
24
patches/api/0237-Add-LivingEntity-clearActiveItem.patch
Normal file
24
patches/api/0237-Add-LivingEntity-clearActiveItem.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Anrza <andrzejrzeczycki314@gmail.com>
|
||||
Date: Wed, 15 Jul 2020 12:07:58 +0200
|
||||
Subject: [PATCH] Add LivingEntity#clearActiveItem
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
index c4fe44dce3bcb3502b26af7c76ec6b36c2a2bebe..b96b5f4f2fc754298e2223b2f449a0755469278c 100644
|
||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
@@ -766,6 +766,13 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
@Nullable
|
||||
ItemStack getActiveItem();
|
||||
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Interrupts any ongoing active "usage" or consumption or an item.
|
||||
+ */
|
||||
+ void clearActiveItem();
|
||||
+ // Paper end
|
||||
+
|
||||
/**
|
||||
* Get's remaining time a player needs to keep hands raised with an item to finish using it.
|
||||
* @return Remaining ticks to use the item
|
89
patches/api/0238-Add-PlayerItemCooldownEvent.patch
Normal file
89
patches/api/0238-Add-PlayerItemCooldownEvent.patch
Normal file
|
@ -0,0 +1,89 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: KennyTV <jahnke.nassim@gmail.com>
|
||||
Date: Tue, 25 Aug 2020 13:45:15 +0200
|
||||
Subject: [PATCH] Add PlayerItemCooldownEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerItemCooldownEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerItemCooldownEvent.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..58d18f05af13d836ddc62fcd30befcb06f07c57c
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/event/player/PlayerItemCooldownEvent.java
|
||||
@@ -0,0 +1,77 @@
|
||||
+package io.papermc.paper.event.player;
|
||||
+
|
||||
+import com.google.common.base.Preconditions;
|
||||
+import org.bukkit.Material;
|
||||
+import org.bukkit.entity.Player;
|
||||
+import org.bukkit.event.Cancellable;
|
||||
+import org.bukkit.event.HandlerList;
|
||||
+import org.bukkit.event.player.PlayerEvent;
|
||||
+import org.jetbrains.annotations.NotNull;
|
||||
+
|
||||
+/**
|
||||
+ * Fired when a player receives an item cooldown.
|
||||
+ */
|
||||
+public class PlayerItemCooldownEvent extends PlayerEvent implements Cancellable {
|
||||
+ private static final HandlerList handlers = new HandlerList();
|
||||
+ @NotNull
|
||||
+ private final Material type;
|
||||
+ private boolean cancelled;
|
||||
+ private int cooldown;
|
||||
+
|
||||
+ public PlayerItemCooldownEvent(@NotNull Player player, @NotNull Material type, int cooldown) {
|
||||
+ super(player);
|
||||
+ this.type = type;
|
||||
+ this.cooldown = cooldown;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Get the material affected by the cooldown.
|
||||
+ *
|
||||
+ * @return material affected by the cooldown
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ public Material getType() {
|
||||
+ return type;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the cooldown in ticks.
|
||||
+ *
|
||||
+ * @return cooldown in ticks
|
||||
+ */
|
||||
+ public int getCooldown() {
|
||||
+ return cooldown;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the cooldown of the material in ticks.
|
||||
+ * Setting the cooldown to 0 results in removing an already existing cooldown for the material.
|
||||
+ *
|
||||
+ * @param cooldown cooldown in ticks, has to be a positive number
|
||||
+ */
|
||||
+ public void setCooldown(int cooldown) {
|
||||
+ Preconditions.checkArgument(cooldown >= 0, "The cooldown has to be equal to or greater than 0!");
|
||||
+ this.cooldown = cooldown;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isCancelled() {
|
||||
+ return cancelled;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setCancelled(boolean cancel) {
|
||||
+ this.cancelled = cancel;
|
||||
+ }
|
||||
+
|
||||
+ @NotNull
|
||||
+ @Override
|
||||
+ public HandlerList getHandlers() {
|
||||
+ return handlers;
|
||||
+ }
|
||||
+
|
||||
+ @NotNull
|
||||
+ public static HandlerList getHandlerList() {
|
||||
+ return handlers;
|
||||
+ }
|
||||
+}
|
49
patches/api/0239-More-lightning-API.patch
Normal file
49
patches/api/0239-More-lightning-API.patch
Normal file
|
@ -0,0 +1,49 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: KennyTV <jahnke.nassim@gmail.com>
|
||||
Date: Sun, 26 Jul 2020 14:44:16 +0200
|
||||
Subject: [PATCH] More lightning API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/LightningStrike.java b/src/main/java/org/bukkit/entity/LightningStrike.java
|
||||
index be347c3d0291f44036bae29a4e7e4645d6a4cdf6..2c81a3f685588431a3c7675c84b35a28975232af 100644
|
||||
--- a/src/main/java/org/bukkit/entity/LightningStrike.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LightningStrike.java
|
||||
@@ -31,4 +31,38 @@ public interface LightningStrike extends Entity {
|
||||
@Override
|
||||
Spigot spigot();
|
||||
// Spigot end
|
||||
+
|
||||
+ // Paper start
|
||||
+ /**
|
||||
+ * Returns the amount of flash iterations that will be done before the lightning dies.
|
||||
+ *
|
||||
+ * @see #getLifeTicks() for how long the current flash will last
|
||||
+ * @return amount of flashes that will be shown before the lightning dies
|
||||
+ */
|
||||
+ int getFlashCount();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the amount of life iterations that will be done before the lightning dies.
|
||||
+ * Default number of flashes on creation is between 1-3.
|
||||
+ *
|
||||
+ * @param flashes amount of iterations that will be done before the lightning dies, must to be a positive number
|
||||
+ */
|
||||
+ void setFlashCount(int flashes);
|
||||
+
|
||||
+ /**
|
||||
+ * Returns the amount of ticks the current flash will do damage for.
|
||||
+ * Starts with 2 by default, will damage while it is equal to or above 0, with the next flash beginning somewhere between 0 and -9.
|
||||
+ *
|
||||
+ * @return ticks the current flash will do damage for
|
||||
+ */
|
||||
+ int getLifeTicks();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the amount of ticks the current flash will do damage/fire for.
|
||||
+ * Default is 2 for each flash, on which the sound and effect will also be played.
|
||||
+ *
|
||||
+ * @param lifeTicks ticks the current flash will do damage for
|
||||
+ */
|
||||
+ void setLifeTicks(int lifeTicks);
|
||||
+ // Paper end
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue