Paper/patches/api/0407-Add-Sneaking-API-for-Entities.patch
Owen d30cda1273
Add TeleportFlags (#8855)
Abstracts relative teleport flags and instead makes a generic TeleportFlag option. This has the benefit of being able to easily add new flags in the future.
This adds a new flag, which allows you to keep inventories open when teleporting players (vanilla behavior).

These are breaking changes to the teleport api, however, it's still marked as experimental so I find this a fair change.
2023-03-04 16:07:23 -06:00

57 lines
1.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: dawon <dawon@dawon.eu>
Date: Wed, 19 Oct 2022 23:36:42 +0200
Subject: [PATCH] Add Sneaking API for Entities
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 833a8abcdcbe70b2912779f6e179fa3739d099bd..11cf1bb585e2754bda443b776e9fcaf0a6cc289e 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -738,6 +738,25 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@NotNull
Pose getPose();
+ // Paper start
+ /**
+ * Returns if the entity is in sneak mode
+ *
+ * @return true if the entity is in sneak mode
+ */
+ boolean isSneaking();
+
+ /**
+ * Sets the sneak mode the entity.
+ * <p>
+ * Note: For most Entities this does not update Entity's pose
+ * and just makes its name tag less visible.
+ *
+ * @param sneak true if the entity should be sneaking
+ */
+ void setSneaking(boolean sneak);
+ // Paper end
+
/**
* Get the category of spawn to which this entity belongs.
*
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index d162b838a25d7eed6b8fc66c630e8c68e809c4cd..3f2025023dc5cecb37af136042809e9800c77594 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -296,6 +296,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @return true if player is in sneak mode
*/
+ @Override // Paper
public boolean isSneaking();
/**
@@ -303,6 +304,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*
* @param sneak true if player should appear sneaking
*/
+ @Override // Paper
public void setSneaking(boolean sneak);
/**