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-06-14 01:32:45 +02:00
|
|
|
index 8df42121aa22ec9f95a1b8627b64b0ff71e36314..7b3d5322611990406028e59b1409907291e27b21 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-06-14 01:32:45 +02:00
|
|
|
@@ -554,11 +554,13 @@ public class Panda extends Animal {
|
2024-04-24 16:29:12 +02:00
|
|
|
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-06-14 01:32:45 +02:00
|
|
|
@@ -682,7 +684,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
|
2024-06-14 01:32:45 +02:00
|
|
|
index faff64ae69eb689cea7754f221f374f8faa6e541..26b050599984ae3ba3827a0cabab255374e38c1e 100644
|
2024-05-05 07:48:06 +02:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
2024-06-14 01:32:45 +02:00
|
|
|
@@ -472,7 +472,9 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
2024-05-05 07:48:06 +02:00
|
|
|
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-06-14 01:32:45 +02:00
|
|
|
index 691d23bcd3e34a89e14c2e124595e076325dedbc..d2dfa49e124460f4762b950f9ded106d2ec15dc2 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-06-14 01:32:45 +02:00
|
|
|
@@ -310,7 +310,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-06-14 01:32:45 +02:00
|
|
|
index 545e20e558d3bb934ec4bf32847c9fd83edfd85e..3ca643747535bf7b71e5877ca47f730a2aca4ba5 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-06-14 14:11:52 +02:00
|
|
|
index f9bd6f5e54bdb4e2fe4cc73e54961721f440ef07..174d246b0a4d0fc9d769aad08da627ca8487bdf2 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-06-14 01:32:45 +02:00
|
|
|
@@ -230,7 +230,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);
|