aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0361-Option-for-maximum-exp-value-when-merging-orbs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0361-Option-for-maximum-exp-value-when-merging-orbs.patch')
-rw-r--r--patches/server/0361-Option-for-maximum-exp-value-when-merging-orbs.patch42
1 files changed, 0 insertions, 42 deletions
diff --git a/patches/server/0361-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0361-Option-for-maximum-exp-value-when-merging-orbs.patch
deleted file mode 100644
index ce8ca08ee9..0000000000
--- a/patches/server/0361-Option-for-maximum-exp-value-when-merging-orbs.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: BillyGalbreath <[email protected]>
-Date: Fri, 10 Nov 2017 23:03:12 -0500
-Subject: [PATCH] Option for maximum exp value when merging orbs
-
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index ac4a8c9d4f727f3caa16f6dc5497d69f9db52aab..feffc6a539738e584dd6eda8c1f2f5b267f617f6 100644
---- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -703,16 +703,30 @@ public class CraftEventFactory {
- if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) {
- double radius = world.spigotConfig.expMerge;
- if (radius > 0) {
-+ // Paper start - Maximum exp value when merging; Whole section has been tweaked, see comments for specifics
-+ final int maxValue = world.paperConfig().entities.behavior.experienceMergeMaxValue;
-+ final boolean mergeUnconditionally = world.paperConfig().entities.behavior.experienceMergeMaxValue <= 0;
-+ if (mergeUnconditionally || xp.value < maxValue) { // Paper - Skip iteration if unnecessary
-+
- List<Entity> entities = world.getEntities(entity, entity.getBoundingBox().inflate(radius, radius, radius));
- for (Entity e : entities) {
- if (e instanceof net.minecraft.world.entity.ExperienceOrb loopItem) {
-- if (!loopItem.isRemoved()) {
-+ // Paper start
-+ if (!loopItem.isRemoved() && !(maxValue > 0 && loopItem.value >= maxValue)) {
-+ long newTotal = (long)xp.value + (long)loopItem.value;
-+ if ((int) newTotal < 0) continue; // Overflow
-+ if (maxValue > 0 && newTotal > (long)maxValue) {
-+ loopItem.value = (int) (newTotal - maxValue);
-+ xp.value = maxValue;
-+ } else {
- xp.value += loopItem.value;
- loopItem.discard(null); // Add Bukkit remove cause
-+ } // Paper end - Maximum exp value when merging
- }
- }
- }
- }
-+ } // Paper end - End iteration skip check - All tweaking ends here
- }
- // Spigot end
-