mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 15:49:00 +01:00
Fix a bunch more forceDrops for dropping items (#8095)
This commit is contained in:
parent
f84fb32dc5
commit
219d159e4d
1 changed files with 58 additions and 0 deletions
|
@ -32,6 +32,26 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +0,0 @@ public class Panda extends Animal {
|
||||||
|
ItemStack itemstack1 = this.getItemBySlot(EquipmentSlot.MAINHAND);
|
||||||
|
|
||||||
|
if (!itemstack1.isEmpty() && !player.getAbilities().instabuild) {
|
||||||
|
+ this.forceDrops = true; // Paper
|
||||||
|
this.spawnAtLocation(itemstack1);
|
||||||
|
+ this.forceDrops = false; // Paper
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(itemstack.getItem(), 1));
|
||||||
|
@@ -0,0 +0,0 @@ public class Panda extends Animal {
|
||||||
|
ItemStack itemstack = Panda.this.getItemBySlot(EquipmentSlot.MAINHAND);
|
||||||
|
|
||||||
|
if (!itemstack.isEmpty()) {
|
||||||
|
+ Panda.this.forceDrops = true; // Paper
|
||||||
|
Panda.this.spawnAtLocation(itemstack);
|
||||||
|
+ Panda.this.forceDrops = false; // Paper
|
||||||
|
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/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||||
|
@ -46,3 +66,41 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
super.finishConversion(world);
|
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
|
@@ -0,0 +0,0 @@ public class PiglinAi {
|
||||||
|
|
||||||
|
private static void holdInOffhand(Piglin piglin, ItemStack stack) {
|
||||||
|
if (PiglinAi.isHoldingItemInOffHand(piglin)) {
|
||||||
|
+ piglin.forceDrops = true; // Paper
|
||||||
|
piglin.spawnAtLocation(piglin.getItemInHand(InteractionHand.OFF_HAND));
|
||||||
|
+ piglin.forceDrops = false; // Paper
|
||||||
|
}
|
||||||
|
|
||||||
|
piglin.holdInOffHand(stack);
|
||||||
|
@@ -0,0 +0,0 @@ public class PiglinAi {
|
||||||
|
|
||||||
|
protected static void cancelAdmiring(Piglin piglin) {
|
||||||
|
if (PiglinAi.isAdmiringItem(piglin) && !piglin.getOffhandItem().isEmpty()) {
|
||||||
|
+ piglin.forceDrops = true; // Paper
|
||||||
|
piglin.spawnAtLocation(piglin.getOffhandItem());
|
||||||
|
+ piglin.forceDrops = false; // Paper
|
||||||
|
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
||||||
|
@@ -0,0 +0,0 @@ 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
|
||||||
|
this.spawnAtLocation(itemstack1);
|
||||||
|
+ this.forceDrops = false; // Paper
|
||||||
|
}
|
||||||
|
|
||||||
|
this.onItemPickup(item);
|
||||||
|
|
Loading…
Reference in a new issue