Commits

md_5 authored fb8fb722a32
Rebuild patches
No tags

CraftBukkit-Patches/0005-Merge-tweaks-and-configuration.patch

Modified
1 -From e2a31e7b9204e2bc8ac4913f49acb33a96fbf14e Mon Sep 17 00:00:00 2001
1 +From be1a72b845c316a5ad5313be9801610abc5012bb Mon Sep 17 00:00:00 2001
2 2 From: md_5 <git@md-5.net>
3 3 Date: Sat, 23 Mar 2013 09:46:33 +1100
4 4 Subject: [PATCH] Merge tweaks and configuration
5 5
6 6 This allows the merging of Experience orbs, as well as the configuration of the merge radius of items. Additionally it refactors the merge algorithm to be a better experience for players.
7 7
8 8 diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
9 -index 301540e65..4b29f547f 100644
9 +index 301540e659..4b29f547f7 100644
10 10 --- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java
11 11 +++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
12 12 @@ -247,7 +247,10 @@ public class EntityItem extends Entity implements TraceableEntity {
13 13
14 14 private void mergeWithNeighbours() {
15 15 if (this.isMergable()) {
16 16 - List<EntityItem> list = this.level().getEntitiesOfClass(EntityItem.class, this.getBoundingBox().inflate(0.5D, 0.0D, 0.5D), (entityitem) -> {
17 17 + // Spigot start
18 18 + double radius = this.level().spigotConfig.itemMerge;
19 19 + List<EntityItem> list = this.level().getEntitiesOfClass(EntityItem.class, this.getBoundingBox().inflate(radius, radius - 0.5D, radius), (entityitem) -> {
24 24 @@ -277,7 +280,7 @@ public class EntityItem extends Entity implements TraceableEntity {
25 25 ItemStack itemstack1 = entityitem.getItem();
26 26
27 27 if (Objects.equals(this.target, entityitem.target) && areMergable(itemstack, itemstack1)) {
28 28 - if (itemstack1.getCount() < itemstack.getCount()) {
29 29 + if (true || itemstack1.getCount() < itemstack.getCount()) { // Spigot
30 30 merge(this, itemstack, entityitem, itemstack1);
31 31 } else {
32 32 merge(entityitem, itemstack1, this, itemstack);
33 33 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
34 -index bc2dd894a..9bfc4c718 100644
34 +index 8171606d73..2a721dea35 100644
35 35 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
36 36 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
37 -@@ -712,6 +712,23 @@ public class CraftEventFactory {
37 +@@ -713,6 +713,23 @@ public class CraftEventFactory {
38 38 return false;
39 39 }
40 40
41 41 + // Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above)
42 42 + if (entity instanceof EntityExperienceOrb xp) {
43 43 + double radius = world.spigotConfig.expMerge;
44 44 + if (radius > 0) {
45 45 + List<Entity> entities = world.getEntities(entity, entity.getBoundingBox().inflate(radius, radius, radius));
46 46 + for (Entity e : entities) {
47 47 + if (e instanceof EntityExperienceOrb loopItem) {
52 52 + }
53 53 + }
54 54 + }
55 55 + }
56 56 + // Spigot end
57 57 +
58 58 return true;
59 59 }
60 60
61 61 diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
62 -index f42972427..5ff085b9e 100644
62 +index f42972427b..5ff085b9e6 100644
63 63 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
64 64 +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
65 65 @@ -134,4 +134,18 @@ public class SpigotWorldConfig
66 66 weepingVinesModifier = getAndValidateGrowth( "WeepingVines" );
67 67 caveVinesModifier = getAndValidateGrowth( "CaveVines" );
68 68 }
69 69 +
70 70 + public double itemMerge;
71 71 + private void itemMerge()
72 72 + {

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut