Commits
md_5 authored 491f3675024
1 - | From 5fb274a0444392922ca200792a84b43ff4ad149a Mon Sep 17 00:00:00 2001 |
1 + | From 818649539bd5def348502676ffd9680c2e9e2205 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 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 |
24 24 | |
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 b21f91958d..96e909bacd 100644 |
34 + | index f69ff48eb4..0d03e6ff15 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 - | |
37 + | |
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) { |