Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-16 03:20:07 +01:00
dc684c60d1
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
21 Zeilen
1.4 KiB
Diff
21 Zeilen
1.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Golfing8 <atroo@me.com>
|
|
Date: Mon, 8 May 2023 09:18:17 -0400
|
|
Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
index 35b6443d15678ec84271dcebf29b98b36df97a6e..7b1de2fddd5ff236c477439142c6e38a580d7f56 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
@@ -736,7 +736,8 @@ public class CraftEventFactory {
|
|
// Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above)
|
|
if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) {
|
|
double radius = world.spigotConfig.expMerge;
|
|
- if (radius > 0) {
|
|
+ event = CraftEventFactory.callEntitySpawnEvent(entity); // Call spawn event for ExperienceOrb entities
|
|
+ if (radius > 0 && !event.isCancelled() && !entity.isRemoved()) {
|
|
// Paper start - Maximum exp value when merging; Whole section has been tweaked, see comments for specifics
|
|
final long maxValue = world.paperConfig().entities.behavior.experienceMergeMaxValue;
|
|
final boolean mergeUnconditionally = maxValue <= 0;
|