mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
52a05907c7
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: 97c59261 PR-1073: Make Biome an interface a38581aa Fix further javadoc errors 8271c490 Fix javadoc error 8a9ecf29 PR-1072: Fix bad naming for Vault State methods 6dd58108 PR-1071: Make Fluid an interface and add missing entry ed2cdfc3 PR-1070: Make Attribute an interface and align names with the new minecraft ones 63472efb PR-1069: Add missing winter drop experimental annotation to pale boats CraftBukkit Changes: 7235ad7b0 PR-1501: Make Biome an interface 602904003 PR-1500: Rename implementation for Vault State methods 75f26f79f PR-1499: Make Fluid an interface and add missing entry 4cfd87adc PR-1498: Make Attribute an interface and align names with the new minecraft ones 6bb0db5cb SPIGOT-7928: ExactChoice acts as MaterialChoice 3eaf3a13c SPIGOT-7929: Error when setting EquippableComponent abbf57bac SPIGOT-7930: Fix spawning entities with SummonEntityEffect 92d6ab6cf PR-1497: Move boat field rename entries to below key renaming, so that keys are also renamed abfe292aa PR-1496: Use correct Fluid class on Tags type check c7aab7fa7 SPIGOT-7923: Fix Dispenser logic to avoid firing empty projectiles
75 lines
2.7 KiB
Diff
75 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
|
|
Date: Sat, 22 Jun 2024 21:11:58 +0200
|
|
Subject: [PATCH] Leashable API
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/entity/Leashable.java b/src/main/java/io/papermc/paper/entity/Leashable.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..7e687535d1a622ddf25e3ece387dbfd5b7a49e83
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/entity/Leashable.java
|
|
@@ -0,0 +1,37 @@
|
|
+package io.papermc.paper.entity;
|
|
+
|
|
+import org.bukkit.entity.Entity;
|
|
+import org.jspecify.annotations.NullMarked;
|
|
+import org.jspecify.annotations.Nullable;
|
|
+
|
|
+/**
|
|
+ * Represents an entity that can be leashed.
|
|
+ */
|
|
+@NullMarked
|
|
+public interface Leashable extends Entity {
|
|
+
|
|
+ /**
|
|
+ * Returns whether the entity is currently leashed.
|
|
+ *
|
|
+ * @return whether the entity is leashed
|
|
+ */
|
|
+ boolean isLeashed();
|
|
+
|
|
+ /**
|
|
+ * Gets the entity that is currently leading this entity.
|
|
+ *
|
|
+ * @return the entity holding the leash
|
|
+ * @throws IllegalStateException if not currently leashed
|
|
+ */
|
|
+ Entity getLeashHolder() throws IllegalStateException;
|
|
+
|
|
+ /**
|
|
+ * Sets the leash on this entity to be held by the supplied entity.
|
|
+ * <p>
|
|
+ * This method has no effect on players.
|
|
+ *
|
|
+ * @param holder the entity to leash this entity to, or {@code null} to unleash
|
|
+ * @return whether the operation was successful
|
|
+ */
|
|
+ boolean setLeashHolder(@Nullable Entity holder);
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/entity/Boat.java b/src/main/java/org/bukkit/entity/Boat.java
|
|
index 7076870c1abfa0edef33e00c39514aa413920f59..574574dc4f54a4ce32e7c97f2fbeb92a4991d353 100644
|
|
--- a/src/main/java/org/bukkit/entity/Boat.java
|
|
+++ b/src/main/java/org/bukkit/entity/Boat.java
|
|
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull;
|
|
/**
|
|
* Represents a boat entity.
|
|
*/
|
|
-public interface Boat extends Vehicle {
|
|
+public interface Boat extends Vehicle, io.papermc.paper.entity.Leashable { // Paper - Leashable API
|
|
|
|
/**
|
|
* Gets the wood type of the boat.
|
|
diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java
|
|
index 256e5645bcfa76e7ede58ae365e69b4a4bed6204..9a10262a952e330f42187d6e4edab5a225bfba62 100644
|
|
--- a/src/main/java/org/bukkit/entity/Mob.java
|
|
+++ b/src/main/java/org/bukkit/entity/Mob.java
|
|
@@ -8,7 +8,7 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* Represents a Mob. Mobs are living entities with simple AI.
|
|
*/
|
|
-public interface Mob extends LivingEntity, Lootable {
|
|
+public interface Mob extends LivingEntity, Lootable, io.papermc.paper.entity.Leashable { // Paper - Leashable API
|
|
|
|
// Paper start
|
|
@Override
|