Commits
md_5 authored fb8fb722a32
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 | |
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 | |
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 - | |
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) { |
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 | |
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 | + { |