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
parent 6496275397
commit 3991e67f19
7 changed files with 148 additions and 70 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..0000000000000000000000000000000000000000
@@ -104,3 +107,30 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ return HANDLER_LIST;
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/ExperienceOrb.java b/src/main/java/org/bukkit/entity/ExperienceOrb.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/entity/ExperienceOrb.java
+++ b/src/main/java/org/bukkit/entity/ExperienceOrb.java
@@ -0,0 +0,0 @@ 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
/**