Add API to retrieve an attribute modifier from a UUID (#9924)

* Add attribute modifier from UUID API

* Add method to remove by UUID

* Add overload for UnmodifiableAttributeInstance, better precondition messages

* rebase
This commit is contained in:
TonytheMacaroni 2023-11-18 19:55:57 -05:00 committed by GitHub
parent 39dee1ab52
commit 581c7434be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 90 additions and 0 deletions

View file

@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: TonytheMacaroni <tonythemacaroni123@gmail.com>
Date: Thu, 9 Nov 2023 20:35:35 -0500
Subject: [PATCH] Add UUID attribute modifier API
diff --git a/src/main/java/org/bukkit/attribute/AttributeInstance.java b/src/main/java/org/bukkit/attribute/AttributeInstance.java
index 5513174ea545bb5b4fdc028cbaa4c1bb763e2c6d..3cffffe8106387847b10ac39f96687bb075ef686 100644
--- a/src/main/java/org/bukkit/attribute/AttributeInstance.java
+++ b/src/main/java/org/bukkit/attribute/AttributeInstance.java
@@ -39,6 +39,23 @@ public interface AttributeInstance {
@NotNull
Collection<AttributeModifier> getModifiers();
+ // Paper start
+ /**
+ * Gets the modifier with the corresponding UUID.
+ *
+ * @param uuid the UUID of the modifier
+ * @return the modifier, if it exists
+ */
+ @org.jetbrains.annotations.Nullable AttributeModifier getModifier(@NotNull java.util.UUID uuid);
+
+ /**
+ * Remove a modifier with the corresponding UUID from this instance.
+ *
+ * @param uuid the UUID of the modifier
+ */
+ void removeModifier(@NotNull java.util.UUID uuid);
+ // Paper end
+
/**
* Add a modifier to this instance.
*