geforkt von Mirrors/Paper
Add more item use API (#10304)
Dieser Commit ist enthalten in:
Ursprung
2089697232
Commit
613a19f70d
@ -63,6 +63,35 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+
|
+
|
||||||
+ // Paper start - active item API
|
+ // Paper start - active item API
|
||||||
+ /**
|
+ /**
|
||||||
|
+ * Starts using the item in the specified hand, making it the
|
||||||
|
+ * currently active item. When, for example, called on a skeleton,
|
||||||
|
+ * this will cause it to start drawing its bow.
|
||||||
|
+ * <p>
|
||||||
|
+ * Only HAND or OFF_HAND may be used for the hand parameter.
|
||||||
|
+ * <p>
|
||||||
|
+ * When used on a player, the client will stop using the item
|
||||||
|
+ * if right click is held down.
|
||||||
|
+ * <p>
|
||||||
|
+ * This method does not make any guarantees about the effect of this method
|
||||||
|
+ * as such depends on the entity and its state.
|
||||||
|
+ *
|
||||||
|
+ * @param hand the hand that contains the item to be used
|
||||||
|
+ */
|
||||||
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
||||||
|
+ void startUsingItem(@NotNull org.bukkit.inventory.EquipmentSlot hand);
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Finishes using the currently active item. When, for example, a
|
||||||
|
+ * skeleton is drawing its bow, this will cause it to release and
|
||||||
|
+ * fire the arrow.
|
||||||
|
+ * <p>
|
||||||
|
+ * This method does not make any guarantees about the effect of this method
|
||||||
|
+ * as such depends on the entity and its state.
|
||||||
|
+ */
|
||||||
|
+ @org.jetbrains.annotations.ApiStatus.Experimental
|
||||||
|
+ void completeUsingActiveItem();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
+ * Gets the item being actively "used" or consumed.
|
+ * Gets the item being actively "used" or consumed.
|
||||||
+ *
|
+ *
|
||||||
+ * @return the item
|
+ * @return the item
|
||||||
|
@ -661,7 +661,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+
|
+
|
||||||
// Paper start - active item API
|
// Paper start - active item API
|
||||||
/**
|
/**
|
||||||
* Gets the item being actively "used" or consumed.
|
* Starts using the item in the specified hand, making it the
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Llama.java b/src/main/java/org/bukkit/entity/Llama.java
|
diff --git a/src/main/java/org/bukkit/entity/Llama.java b/src/main/java/org/bukkit/entity/Llama.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/entity/Llama.java
|
--- a/src/main/java/org/bukkit/entity/Llama.java
|
||||||
|
@ -6,6 +6,10 @@ Subject: [PATCH] LivingEntity Active Item API
|
|||||||
API relating to items being actively used by a LivingEntity
|
API relating to items being actively used by a LivingEntity
|
||||||
such as a bow or eating food.
|
such as a bow or eating food.
|
||||||
|
|
||||||
|
== AT ==
|
||||||
|
public net/minecraft/world/entity/LivingEntity completeUsingItem()V
|
||||||
|
public net/minecraft/server/level/ServerPlayer completeUsingItem()V
|
||||||
|
|
||||||
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
@ -19,6 +23,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+
|
+
|
||||||
+ // Paper start - active item API
|
+ // Paper start - active item API
|
||||||
+ @Override
|
+ @Override
|
||||||
|
+ public void startUsingItem(org.bukkit.inventory.EquipmentSlot hand) {
|
||||||
|
+ Preconditions.checkArgument(hand != null, "hand must not be null");
|
||||||
|
+ switch (hand) {
|
||||||
|
+ case HAND -> getHandle().startUsingItem(InteractionHand.MAIN_HAND);
|
||||||
|
+ case OFF_HAND -> getHandle().startUsingItem(InteractionHand.OFF_HAND);
|
||||||
|
+ default -> throw new IllegalArgumentException("hand may only be HAND or OFF_HAND");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void completeUsingActiveItem() {
|
||||||
|
+ getHandle().completeUsingItem();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
+ public ItemStack getActiveItem() {
|
+ public ItemStack getActiveItem() {
|
||||||
+ return this.getHandle().getUseItem().asBukkitMirror();
|
+ return this.getHandle().getUseItem().asBukkitMirror();
|
||||||
+ }
|
+ }
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren