diff options
-rw-r--r-- | patches/api/0417-Add-transient-modifier-API.patch | 27 | ||||
-rw-r--r-- | patches/server/0986-Add-transient-modifier-API.patch | 41 |
2 files changed, 68 insertions, 0 deletions
diff --git a/patches/api/0417-Add-transient-modifier-API.patch b/patches/api/0417-Add-transient-modifier-API.patch new file mode 100644 index 0000000000..a32e4c86a9 --- /dev/null +++ b/patches/api/0417-Add-transient-modifier-API.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Malfrador <[email protected]> +Date: Wed, 31 May 2023 21:25:01 +0200 +Subject: [PATCH] Add transient modifier API + + +diff --git a/src/main/java/org/bukkit/attribute/AttributeInstance.java b/src/main/java/org/bukkit/attribute/AttributeInstance.java +index f08ee26cc4d479e1bfc5264b8cbe721315de91f2..5513174ea545bb5b4fdc028cbaa4c1bb763e2c6d 100644 +--- a/src/main/java/org/bukkit/attribute/AttributeInstance.java ++++ b/src/main/java/org/bukkit/attribute/AttributeInstance.java +@@ -46,6 +46,16 @@ public interface AttributeInstance { + */ + void addModifier(@NotNull AttributeModifier modifier); + ++ // Paper start - Transient modifier API ++ /** ++ * Add a transient modifier to this instance. ++ * Transient modifiers are not persisted (saved with the NBT data) ++ * ++ * @param modifier to add ++ */ ++ void addTransientModifier(@NotNull AttributeModifier modifier); ++ // Paper end ++ + /** + * Remove a modifier from this instance. + * diff --git a/patches/server/0986-Add-transient-modifier-API.patch b/patches/server/0986-Add-transient-modifier-API.patch new file mode 100644 index 0000000000..e3b704e242 --- /dev/null +++ b/patches/server/0986-Add-transient-modifier-API.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Malfrador <[email protected]> +Date: Wed, 31 May 2023 23:30:00 +0200 +Subject: [PATCH] Add transient modifier API + + +diff --git a/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java +index 12135ffeacd648f6bc4d7d327059ea1a7e8c79c4..52439f4b959c74027eb191a3af960c70beb978e8 100644 +--- a/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java ++++ b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java +@@ -23,6 +23,11 @@ public class UnmodifiableAttributeInstance extends CraftAttributeInstance { + throw new UnsupportedOperationException("Cannot modify default attributes"); + } + ++ @Override ++ public void addTransientModifier(AttributeModifier modifier) { ++ throw new UnsupportedOperationException("Cannot modify default attributes"); ++ } ++ + @Override + public void removeModifier(AttributeModifier modifier) { + throw new UnsupportedOperationException("Cannot modify default attributes"); +diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java +index e828ef7df04de98628e59e93c0431ea0e10199f8..0029412b1242879deb898524001bb4cc7550fa78 100644 +--- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java ++++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeInstance.java +@@ -50,6 +50,14 @@ public class CraftAttributeInstance implements AttributeInstance { + this.handle.addPermanentModifier(CraftAttributeInstance.convert(modifier)); + } + ++ // Paper start - Transient modifier API ++ @Override ++ public void addTransientModifier(AttributeModifier modifier) { ++ Preconditions.checkArgument(modifier != null, "modifier"); ++ this.handle.addTransientModifier(CraftAttributeInstance.convert(modifier)); ++ } ++ // Paper end ++ + @Override + public void removeModifier(AttributeModifier modifier) { + Preconditions.checkArgument(modifier != null, "modifier"); |