Several fixes and new api for experience merging/stacking (#9242)

This commit is contained in:
Jake Potrebic 2024-05-29 13:58:57 -07:00 committed by GitHub
parent ed85aac53c
commit a31dc90741
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
693 changed files with 318 additions and 240 deletions

View file

@ -1,12 +1,15 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 19 Dec 2017 22:56:24 -0500
Subject: [PATCH] ExperienceOrbMergeEvent
Subject: [PATCH] ExperienceOrb merging/stacking API
Adds ExperienceOrbMergeEvent
Fired when the server is about to merge 2 experience orbs
Plugins can cancel this if they want to ensure experience orbs do not lose important
metadata such as spawn reason, or conditionally move data from source to target.
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/ExperienceOrbMergeEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/ExperienceOrbMergeEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..c520e5517861c4686806df233d1ef5e6bfb76ad3
@ -104,3 +107,30 @@ index 0000000000000000000000000000000000000000..c520e5517861c4686806df233d1ef5e6
+ return HANDLER_LIST;
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/ExperienceOrb.java b/src/main/java/org/bukkit/entity/ExperienceOrb.java
index dec70bbfaf73a9d525b2c45682b804c684e1645b..0fe4a7f300287f38dbe15862787f387aba74397b 100644
--- a/src/main/java/org/bukkit/entity/ExperienceOrb.java
+++ b/src/main/java/org/bukkit/entity/ExperienceOrb.java
@@ -21,6 +21,22 @@ public interface ExperienceOrb extends Entity {
* @param value Amount of experience
*/
public void setExperience(int value);
+
+ // Paper start - expose count
+ /**
+ * Get the stacked count for this experience orb.
+ *
+ * @return the count
+ */
+ int getCount();
+
+ /**
+ * Sets the stacked count for this experience orb.
+ *
+ * @param count the new count
+ */
+ void setCount(int count);
+ // Paper end
// Paper start
/**