diff options
author | Owen1212055 <[email protected]> | 2022-06-10 16:15:38 +0200 |
---|---|---|
committer | Nassim Jahnke <[email protected]> | 2022-06-10 16:15:38 +0200 |
commit | 8bca9190a48d2cdbdd42996d8817201592663d90 (patch) | |
tree | 143fcd80bb38e1d41e00fca5343df2a9676bca74 /patches/server/0411-Option-for-maximum-exp-value-when-merging-orbs.patch | |
parent | a8a01bbb521bbbd872baf22d9847b8c4c1b0c6c0 (diff) | |
download | Paper-8bca9190a48d2cdbdd42996d8817201592663d90.tar.gz Paper-8bca9190a48d2cdbdd42996d8817201592663d90.zip |
Remove unneeded patch
Diffstat (limited to 'patches/server/0411-Option-for-maximum-exp-value-when-merging-orbs.patch')
-rw-r--r-- | patches/server/0411-Option-for-maximum-exp-value-when-merging-orbs.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/server/0411-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0411-Option-for-maximum-exp-value-when-merging-orbs.patch new file mode 100644 index 0000000000..e6d330bc6d --- /dev/null +++ b/patches/server/0411-Option-for-maximum-exp-value-when-merging-orbs.patch @@ -0,0 +1,42 @@ +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 cd28e59602cba810c0c123f01b992f6eef0ea207..7fd92f0dd2f8a8bcd6a26e91966641c35d35bf91 100644 +--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java ++++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +@@ -640,16 +640,30 @@ public class CraftEventFactory { + net.minecraft.world.entity.ExperienceOrb xp = (net.minecraft.world.entity.ExperienceOrb) entity; + 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) { + net.minecraft.world.entity.ExperienceOrb loopItem = (net.minecraft.world.entity.ExperienceOrb) e; +- 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(); ++ } // Paper end + } + } + } ++ } // Paper end - End iteration skip check - All tweaking ends here + } + // Spigot end + } else if (!(entity instanceof ServerPlayer)) { |