mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-03 13:36:44 +01:00
SPIGOT-4987: Shulkerbox does not save empty slots
This commit is contained in:
parent
17da34209f
commit
a4a2f67946
2 changed files with 35 additions and 14 deletions
35
nms-patches/BehaviorUtil.patch
Normal file
35
nms-patches/BehaviorUtil.patch
Normal file
|
@ -0,0 +1,35 @@
|
|||
--- a/net/minecraft/server/BehaviorUtil.java
|
||||
+++ b/net/minecraft/server/BehaviorUtil.java
|
||||
@@ -31,7 +31,7 @@
|
||||
}
|
||||
|
||||
public static void c(EntityLiving entityliving, EntityLiving entityliving1) {
|
||||
- entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (Object) (new BehaviorPositionEntity(entityliving1)));
|
||||
+ entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (new BehaviorPositionEntity(entityliving1))); // CraftBukkit - decompile error
|
||||
}
|
||||
|
||||
public static void d(EntityLiving entityliving, EntityLiving entityliving1) {
|
||||
@@ -46,11 +46,12 @@
|
||||
BehaviorPositionEntity behaviorpositionentity = new BehaviorPositionEntity(entityliving1);
|
||||
MemoryTarget memorytarget = new MemoryTarget(behaviorpositionentity, f, i);
|
||||
|
||||
- entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, (Object) behaviorpositionentity);
|
||||
- entityliving.getBehaviorController().setMemory(MemoryModuleType.WALK_TARGET, (Object) memorytarget);
|
||||
+ entityliving.getBehaviorController().setMemory(MemoryModuleType.LOOK_TARGET, behaviorpositionentity); // CraftBukkit - decompile error
|
||||
+ entityliving.getBehaviorController().setMemory(MemoryModuleType.WALK_TARGET, memorytarget); // CraftBukkit - decompile error
|
||||
}
|
||||
|
||||
public static void a(EntityLiving entityliving, ItemStack itemstack, EntityLiving entityliving1) {
|
||||
+ if (itemstack.isEmpty()) return; // CraftBukkit - SPIGOT-4940: no empty loot
|
||||
double d0 = entityliving.locY - 0.30000001192092896D + (double) entityliving.getHeadHeight();
|
||||
EntityItem entityitem = new EntityItem(entityliving.world, entityliving.locX, d0, entityliving.locZ, itemstack);
|
||||
BlockPosition blockposition = new BlockPosition(entityliving1);
|
||||
@@ -66,7 +67,7 @@
|
||||
|
||||
public static SectionPosition a(WorldServer worldserver, SectionPosition sectionposition, int i) {
|
||||
int j = worldserver.b(sectionposition);
|
||||
- Stream stream = SectionPosition.a(sectionposition, i).filter((sectionposition1) -> {
|
||||
+ Stream<SectionPosition> stream = SectionPosition.a(sectionposition, i).filter((sectionposition1) -> { // CraftBukkit - decompile error
|
||||
return worldserver.b(sectionposition1) < j;
|
||||
});
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
--- a/net/minecraft/server/LootTable.java
|
||||
+++ b/net/minecraft/server/LootTable.java
|
||||
@@ -40,6 +40,11 @@
|
||||
|
||||
public static Consumer<ItemStack> a(Consumer<ItemStack> consumer) {
|
||||
return (itemstack) -> {
|
||||
+ // CraftBukkit start - SPIGOT-4940: no empty loot
|
||||
+ if (itemstack.isEmpty()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
if (itemstack.getCount() < itemstack.getMaxStackSize()) {
|
||||
consumer.accept(itemstack);
|
||||
} else {
|
Loading…
Reference in a new issue