mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-09 13:28:36 +02:00
26 lines
1.5 KiB
Diff
26 lines
1.5 KiB
Diff
|
From 4756610ec863cc75f8e66891aaf6f0f2257afb23 Mon Sep 17 00:00:00 2001
|
||
|
From: Aikar <aikar@aikar.co>
|
||
|
Date: Tue, 19 Dec 2017 22:57:26 -0500
|
||
|
Subject: [PATCH] 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.
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||
|
index eb8a1c43c..ad927cbd5 100644
|
||
|
--- a/src/main/java/net/minecraft/server/World.java
|
||
|
+++ b/src/main/java/net/minecraft/server/World.java
|
||
|
@@ -1153,7 +1153,7 @@ public abstract class World implements IBlockAccess {
|
||
|
for (Entity e : entities) {
|
||
|
if (e instanceof EntityExperienceOrb) {
|
||
|
EntityExperienceOrb loopItem = (EntityExperienceOrb) e;
|
||
|
- if (!loopItem.dead && !(maxValue > 0 && loopItem.value >= maxValue)) { // Paper
|
||
|
+ if (!loopItem.dead && !(maxValue > 0 && loopItem.value >= maxValue) && new com.destroystokyo.paper.event.entity.ExperienceOrbMergeEvent((org.bukkit.entity.ExperienceOrb) entity.getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) loopItem.getBukkitEntity()).callEvent()) { // Paper
|
||
|
xp.value += loopItem.value;
|
||
|
// Paper start
|
||
|
if (!mergeUnconditionally && xp.value > maxValue) {
|
||
|
--
|
||
|
2.15.1
|
||
|
|