2021-07-22 04:58:24 +02:00
|
|
|
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
|
2024-01-19 13:22:30 +01:00
|
|
|
Subject: [PATCH] Add missing forceDrop toggles
|
2021-07-22 04:58:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
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
|
2024-04-12 21:14:06 +02:00
|
|
|
index b9c2b41d9c46c871bab44cfb1d454f4141f1627b..d975b349aa81327c6b6c23e83e9552159217f11e 100644
|
2021-07-22 04:58:24 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java
|
2024-04-12 21:14:06 +02:00
|
|
|
@@ -86,7 +86,9 @@ public class WorkAtComposter extends WorkAtPoi {
|
2023-03-14 21:25:13 +01:00
|
|
|
simpleContainer.removeItemType(Items.WHEAT, m);
|
|
|
|
ItemStack itemStack = simpleContainer.addItem(new ItemStack(Items.BREAD, l));
|
|
|
|
if (!itemStack.isEmpty()) {
|
2024-01-19 13:22:30 +01:00
|
|
|
+ entity.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2023-03-14 21:25:13 +01:00
|
|
|
entity.spawnAtLocation(itemStack, 0.5F);
|
2024-01-19 13:22:30 +01:00
|
|
|
+ entity.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2021-07-22 04:58:24 +02:00
|
|
|
}
|
|
|
|
}
|
2024-04-12 21:14:06 +02:00
|
|
|
}
|
2021-07-22 04:58:24 +02:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
2024-04-24 16:29:12 +02:00
|
|
|
index fb4c7220c4edad54813036d62db7e3eefeda92a3..83d8a09980c4ab3c7c97b07c3dcdb3d7dab9e1aa 100644
|
2021-07-22 04:58:24 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
2024-04-24 16:29:12 +02:00
|
|
|
@@ -549,11 +549,13 @@ public class Panda extends Animal {
|
|
|
|
List<ItemStack> list1 = loottable.getRandomItems(lootparams);
|
|
|
|
Iterator iterator1 = list1.iterator();
|
2021-07-22 04:58:24 +02:00
|
|
|
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2024-04-24 16:29:12 +02:00
|
|
|
while (iterator1.hasNext()) {
|
|
|
|
ItemStack itemstack = (ItemStack) iterator1.next();
|
|
|
|
|
|
|
|
this.spawnAtLocation(itemstack);
|
|
|
|
}
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2021-07-22 04:58:24 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2024-04-24 16:29:12 +02:00
|
|
|
@@ -677,7 +679,9 @@ public class Panda extends Animal {
|
2022-10-27 02:32:03 +02:00
|
|
|
ItemStack itemstack1 = this.getItemBySlot(EquipmentSlot.MAINHAND);
|
|
|
|
|
2024-04-24 16:29:12 +02:00
|
|
|
if (!itemstack1.isEmpty() && !player.hasInfiniteMaterials()) {
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
this.spawnAtLocation(itemstack1);
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(itemstack.getItem(), 1));
|
2024-04-24 16:29:12 +02:00
|
|
|
@@ -959,7 +963,9 @@ public class Panda extends Animal {
|
2022-10-27 02:32:03 +02:00
|
|
|
ItemStack itemstack = Panda.this.getItemBySlot(EquipmentSlot.MAINHAND);
|
|
|
|
|
|
|
|
if (!itemstack.isEmpty()) {
|
2024-01-19 13:22:30 +01:00
|
|
|
+ Panda.this.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
Panda.this.spawnAtLocation(itemstack);
|
2024-01-19 13:22:30 +01:00
|
|
|
+ Panda.this.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
Panda.this.setItemSlot(EquipmentSlot.MAINHAND, ItemStack.EMPTY);
|
|
|
|
int i = Panda.this.isLazy() ? Panda.this.random.nextInt(50) + 10 : Panda.this.random.nextInt(150) + 10;
|
|
|
|
|
2024-05-05 07:48:06 +02:00
|
|
|
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);
|
2021-07-22 04:58:24 +02:00
|
|
|
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
|
2024-04-24 16:29:12 +02:00
|
|
|
index e1f2425ae6d3737302f6a7e010b172a62b41a018..20d9690127aed9c8ae2632bcf497ba0e473b7bea 100644
|
2021-07-22 04:58:24 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
2024-04-24 16:29:12 +02:00
|
|
|
@@ -311,7 +311,9 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
2021-07-22 04:58:24 +02:00
|
|
|
@Override
|
|
|
|
protected void finishConversion(ServerLevel world) {
|
|
|
|
PiglinAi.cancelAdmiring(this);
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2021-07-22 04:58:24 +02:00
|
|
|
this.inventory.removeAllItems().forEach(this::spawnAtLocation);
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2021-07-22 04:58:24 +02:00
|
|
|
super.finishConversion(world);
|
|
|
|
}
|
|
|
|
|
2022-10-27 02:32:03 +02:00
|
|
|
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
|
2024-04-24 16:29:12 +02:00
|
|
|
index a3df3798ebbbc2ccdf29d9f5ddc62d5e395fb8e5..31bb652c7ef35e7d61df2b1b60589fbb5c845bb0 100644
|
2022-10-27 02:32:03 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
|
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10277)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
9a80d38c SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-722: Add EntityRemoveEvent
258086d9 SPIGOT-7417, PR-967: Add Sign#getTargetSide and Sign#getAllowedEditor
ffaba051 SPIGOT-7584: Add missing Tag.ITEMS_NON_FLAMMABLE_WOOD
CraftBukkit Changes:
98b6c1ac7 SPIGOT-7589 Fix NullPointerException when bans expire
a2736ddb0 SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-1008: Add EntityRemoveEvent
5bf12cb89 SPIGOT-7565: Throw a more descriptive error message when a developer tries to spawn an entity from a CraftBukkit class
76d95fe7e SPIGOT-7417, PR-1343: Add Sign#getTargetSide and Sign#getAllowedEditor
Spigot Changes:
e9ec5485 Rebuild patches
f1b62e0c Rebuild patches
2024-02-23 14:37:33 +01:00
|
|
|
@@ -271,7 +271,9 @@ public class PiglinAi {
|
2022-10-27 02:32:03 +02:00
|
|
|
|
|
|
|
private static void holdInOffhand(Piglin piglin, ItemStack stack) {
|
|
|
|
if (PiglinAi.isHoldingItemInOffHand(piglin)) {
|
2024-01-19 13:22:30 +01:00
|
|
|
+ piglin.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
piglin.spawnAtLocation(piglin.getItemInHand(InteractionHand.OFF_HAND));
|
2024-01-19 13:22:30 +01:00
|
|
|
+ piglin.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
piglin.holdInOffHand(stack);
|
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10277)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
9a80d38c SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-722: Add EntityRemoveEvent
258086d9 SPIGOT-7417, PR-967: Add Sign#getTargetSide and Sign#getAllowedEditor
ffaba051 SPIGOT-7584: Add missing Tag.ITEMS_NON_FLAMMABLE_WOOD
CraftBukkit Changes:
98b6c1ac7 SPIGOT-7589 Fix NullPointerException when bans expire
a2736ddb0 SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-1008: Add EntityRemoveEvent
5bf12cb89 SPIGOT-7565: Throw a more descriptive error message when a developer tries to spawn an entity from a CraftBukkit class
76d95fe7e SPIGOT-7417, PR-1343: Add Sign#getTargetSide and Sign#getAllowedEditor
Spigot Changes:
e9ec5485 Rebuild patches
f1b62e0c Rebuild patches
2024-02-23 14:37:33 +01:00
|
|
|
@@ -331,7 +333,9 @@ public class PiglinAi {
|
2022-10-27 02:32:03 +02:00
|
|
|
|
|
|
|
protected static void cancelAdmiring(Piglin piglin) {
|
|
|
|
if (PiglinAi.isAdmiringItem(piglin) && !piglin.getOffhandItem().isEmpty()) {
|
2024-01-19 13:22:30 +01:00
|
|
|
+ piglin.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
piglin.spawnAtLocation(piglin.getOffhandItem());
|
2024-01-19 13:22:30 +01:00
|
|
|
+ piglin.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
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
|
2024-04-24 16:29:12 +02:00
|
|
|
index 9f54e46b870e78d1d360ea79604708db08276ae3..d3fef00a351a6c6ae6af1f1dcf793c5954fd3485 100644
|
2022-10-27 02:32:03 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
2024-04-24 16:29:12 +02:00
|
|
|
@@ -272,7 +272,9 @@ public abstract class Raider extends PatrollingMonster {
|
2022-10-27 02:32:03 +02:00
|
|
|
double d0 = (double) this.getEquipmentDropChance(enumitemslot);
|
|
|
|
|
|
|
|
if (!itemstack1.isEmpty() && (double) Math.max(this.random.nextFloat() - 0.1F, 0.0F) < d0) {
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = true; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
this.spawnAtLocation(itemstack1);
|
2024-01-19 13:22:30 +01:00
|
|
|
+ this.forceDrops = false; // Paper - Add missing forceDrop toggles
|
2022-10-27 02:32:03 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
this.onItemPickup(item);
|