From fab251199d6c0825607b36398b381ec381bf1641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1=C4=8Dek?= Date: Thu, 15 Dec 2022 20:43:14 +0100 Subject: [PATCH] Add Sneaking API for Entities (#8485) --- .../api/Add-Sneaking-API-for-Entities.patch | 56 +++++++++++++++++++ .../Add-Sneaking-API-for-Entities.patch | 29 ++++++++++ 2 files changed, 85 insertions(+) create mode 100644 patches/api/Add-Sneaking-API-for-Entities.patch create mode 100644 patches/server/Add-Sneaking-API-for-Entities.patch diff --git a/patches/api/Add-Sneaking-API-for-Entities.patch b/patches/api/Add-Sneaking-API-for-Entities.patch new file mode 100644 index 0000000000..0f3f1c83b3 --- /dev/null +++ b/patches/api/Add-Sneaking-API-for-Entities.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: dawon +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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/entity/Entity.java ++++ b/src/main/java/org/bukkit/entity/Entity.java +@@ -0,0 +0,0 @@ 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. ++ *

++ * 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/entity/Player.java ++++ b/src/main/java/org/bukkit/entity/Player.java +@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM + * + * @return true if player is in sneak mode + */ ++ @Override // Paper + public boolean isSneaking(); + + /** +@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM + * + * @param sneak true if player should appear sneaking + */ ++ @Override // Paper + public void setSneaking(boolean sneak); + + /** diff --git a/patches/server/Add-Sneaking-API-for-Entities.patch b/patches/server/Add-Sneaking-API-for-Entities.patch new file mode 100644 index 0000000000..00ef9f3adc --- /dev/null +++ b/patches/server/Add-Sneaking-API-for-Entities.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: dawon +Date: Wed, 19 Oct 2022 23:31:53 +0200 +Subject: [PATCH] Add Sneaking API for Entities + + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +@@ -0,0 +0,0 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return Pose.values()[this.getHandle().getPose().ordinal()]; + } + ++ // Paper start ++ @Override ++ public void setSneaking(boolean sneak) { ++ this.getHandle().setShiftKeyDown(sneak); ++ } ++ ++ @Override ++ public boolean isSneaking() { ++ return this.getHandle().isShiftKeyDown(); ++ } ++ // Paper end ++ + @Override + public SpawnCategory getSpawnCategory() { + return CraftSpawnCategory.toBukkit(this.getHandle().getType().getCategory());