aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0578-Add-missing-forceDrop-toggles.patch
blob: b89de7428a10a67fdb99ac68fbaae630316f6d00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Tue, 20 Jul 2021 21:25:35 -0700
Subject: [PATCH] Add missing forceDrop toggles


diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java
index b9c2b41d9c46c871bab44cfb1d454f4141f1627b..d975b349aa81327c6b6c23e83e9552159217f11e 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java
@@ -86,7 +86,9 @@ public class WorkAtComposter extends WorkAtPoi {
                 simpleContainer.removeItemType(Items.WHEAT, m);
                 ItemStack itemStack = simpleContainer.addItem(new ItemStack(Items.BREAD, l));
                 if (!itemStack.isEmpty()) {
+                    entity.forceDrops = true; // Paper - Add missing forceDrop toggles
                     entity.spawnAtLocation(itemStack, 0.5F);
+                    entity.forceDrops = false; // Paper - Add missing forceDrop toggles
                 }
             }
         }
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index fb4c7220c4edad54813036d62db7e3eefeda92a3..83d8a09980c4ab3c7c97b07c3dcdb3d7dab9e1aa 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -549,11 +549,13 @@ public class Panda extends Animal {
             List<ItemStack> list1 = loottable.getRandomItems(lootparams);
             Iterator iterator1 = list1.iterator();
 
+            this.forceDrops = true; // Paper - Add missing forceDrop toggles
             while (iterator1.hasNext()) {
                 ItemStack itemstack = (ItemStack) iterator1.next();
 
                 this.spawnAtLocation(itemstack);
             }
+            this.forceDrops = false; // Paper - Add missing forceDrop toggles
         }
 
     }
@@ -677,7 +679,9 @@ public class Panda extends Animal {
                 ItemStack itemstack1 = this.getItemBySlot(EquipmentSlot.MAINHAND);
 
                 if (!itemstack1.isEmpty() && !player.hasInfiniteMaterials()) {
+                    this.forceDrops = true; // Paper - Add missing forceDrop toggles
                     this.spawnAtLocation(itemstack1);
+                    this.forceDrops = false; // Paper - Add missing forceDrop toggles
                 }
 
                 this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(itemstack.getItem(), 1));
@@ -959,7 +963,9 @@ public class Panda extends Animal {
             ItemStack itemstack = Panda.this.getItemBySlot(EquipmentSlot.MAINHAND);
 
             if (!itemstack.isEmpty()) {
+                Panda.this.forceDrops = true; // Paper - Add missing forceDrop toggles
                 Panda.this.spawnAtLocation(itemstack);
+                Panda.this.forceDrops = false; // Paper - Add missing forceDrop toggles
                 Panda.this.setItemSlot(EquipmentSlot.MAINHAND, ItemStack.EMPTY);
                 int i = Panda.this.isLazy() ? Panda.this.random.nextInt(50) + 10 : Panda.this.random.nextInt(150) + 10;
 
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 11f4a2e15d42a029406fe8399b8d93ae136f0295..5ebf49a565af4ab3bead60a83bca2e6561e6a29c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -468,7 +468,9 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
                         this.playSound(SoundEvents.ARMOR_UNEQUIP_WOLF);
                         itemstack1 = this.getBodyArmorItem();
                         this.setBodyArmorItem(ItemStack.EMPTY);
+                        this.forceDrops = true; // Paper - add missing forceDrops toggles
                         this.spawnAtLocation(itemstack1);
+                        this.forceDrops = false; // Paper - add missing forceDrops toggles
                         return InteractionResult.SUCCESS;
                     } else if (((Ingredient) ((ArmorMaterial) ArmorMaterials.ARMADILLO.value()).repairIngredient().get()).test(itemstack) && this.isInSittingPose() && this.hasArmor() && this.isOwnedBy(player) && this.getBodyArmorItem().isDamaged()) {
                         itemstack.shrink(1);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index e1f2425ae6d3737302f6a7e010b172a62b41a018..20d9690127aed9c8ae2632bcf497ba0e473b7bea 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -311,7 +311,9 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
     @Override
     protected void finishConversion(ServerLevel world) {
         PiglinAi.cancelAdmiring(this);
+        this.forceDrops = true; // Paper - Add missing forceDrop toggles
         this.inventory.removeAllItems().forEach(this::spawnAtLocation);
+        this.forceDrops = false; // Paper - Add missing forceDrop toggles
         super.finishConversion(world);
     }
 
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
index a3df3798ebbbc2ccdf29d9f5ddc62d5e395fb8e5..31bb652c7ef35e7d61df2b1b60589fbb5c845bb0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
@@ -271,7 +271,9 @@ public class PiglinAi {
 
     private static void holdInOffhand(Piglin piglin, ItemStack stack) {
         if (PiglinAi.isHoldingItemInOffHand(piglin)) {
+            piglin.forceDrops = true; // Paper - Add missing forceDrop toggles
             piglin.spawnAtLocation(piglin.getItemInHand(InteractionHand.OFF_HAND));
+            piglin.forceDrops = false; // Paper - Add missing forceDrop toggles
         }
 
         piglin.holdInOffHand(stack);
@@ -331,7 +333,9 @@ public class PiglinAi {
 
     protected static void cancelAdmiring(Piglin piglin) {
         if (PiglinAi.isAdmiringItem(piglin) && !piglin.getOffhandItem().isEmpty()) {
+            piglin.forceDrops = true; // Paper - Add missing forceDrop toggles
             piglin.spawnAtLocation(piglin.getOffhandItem());
+            piglin.forceDrops = false; // Paper - Add missing forceDrop toggles
             piglin.setItemInHand(InteractionHand.OFF_HAND, ItemStack.EMPTY);
         }
 
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
index 9f54e46b870e78d1d360ea79604708db08276ae3..d3fef00a351a6c6ae6af1f1dcf793c5954fd3485 100644
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
@@ -272,7 +272,9 @@ public abstract class Raider extends PatrollingMonster {
             double d0 = (double) this.getEquipmentDropChance(enumitemslot);
 
             if (!itemstack1.isEmpty() && (double) Math.max(this.random.nextFloat() - 0.1F, 0.0F) < d0) {
+                this.forceDrops = true; // Paper - Add missing forceDrop toggles
                 this.spawnAtLocation(itemstack1);
+                this.forceDrops = false; // Paper - Add missing forceDrop toggles
             }
 
             this.onItemPickup(item);