aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2021-12-22 10:02:31 -0800
committerGitHub <[email protected]>2021-12-22 10:02:31 -0800
commit82eaf4ee15d77303cdd352cce9b33c2f3e5d14d7 (patch)
tree53e4a42978675fc17acc76b85dcb0c3569ab3e3b /patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch
parent6e5ceb34eb2ef4d6c0a35c46d0eded9099bb2fee (diff)
downloadPaper-82eaf4ee15d77303cdd352cce9b33c2f3e5d14d7.tar.gz
Paper-82eaf4ee15d77303cdd352cce9b33c2f3e5d14d7.zip
Fix duplicated BlockPistonRetractEvent call (#7111)
Diffstat (limited to 'patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch')
-rw-r--r--patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch
new file mode 100644
index 0000000000..1ee510f3ca
--- /dev/null
+++ b/patches/server/0570-Added-world-settings-for-mobs-picking-up-loot.patch
@@ -0,0 +1,51 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Sat, 28 Nov 2020 18:43:52 -0800
+Subject: [PATCH] Added world settings for mobs picking up loot
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+index 8df810594156944a2cb149af35863caf10edbb83..63d0971379f96e000ab9e7939f626c216cb6d12c 100644
+--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+@@ -720,6 +720,14 @@ public class PaperWorldConfig {
+ phantomOnlyAttackInsomniacs = getBoolean("phantoms-only-attack-insomniacs", phantomOnlyAttackInsomniacs);
+ }
+
++ public boolean zombiesAlwaysCanPickUpLoot;
++ public boolean skeletonsAlwaysCanPickUpLoot;
++ private void setMobsAlwaysCanPickUpLoot() {
++ zombiesAlwaysCanPickUpLoot = getBoolean("mobs-can-always-pick-up-loot.zombies", false);
++ skeletonsAlwaysCanPickUpLoot = getBoolean("mobs-can-always-pick-up-loot.skeletons", false);
++ log("Zombies can always pick up loot: " + zombiesAlwaysCanPickUpLoot + ". Skeletons can always pick up loot: " + skeletonsAlwaysCanPickUpLoot + ".");
++ }
++
+ public int expMergeMaxValue;
+ private void expMergeMaxValue() {
+ expMergeMaxValue = getInt("experience-merge-max-value", -1);
+diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+index 609380af4de4118a543b6ec94feb176e6f6870ed..ecf12ed5014202181e78af051e4a9ca88a275794 100644
+--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
++++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+@@ -147,7 +147,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
+ this.populateDefaultEquipmentSlots(difficulty);
+ this.populateDefaultEquipmentEnchantments(difficulty);
+ this.reassessWeaponGoal();
+- this.setCanPickUpLoot(this.random.nextFloat() < 0.55F * difficulty.getSpecialMultiplier());
++ this.setCanPickUpLoot(this.level.paperConfig.skeletonsAlwaysCanPickUpLoot || this.random.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper
+ if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
+ LocalDate localdate = LocalDate.now();
+ int i = localdate.get(ChronoField.DAY_OF_MONTH);
+diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+index 252a079d4867a5ce7fb6a982cf668d2348f7292f..64222cced10e87438ee3ada26aead0284649be78 100644
+--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
++++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+@@ -498,7 +498,7 @@ public class Zombie extends Monster {
+ Object object = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
+ float f = difficulty.getSpecialMultiplier();
+
+- this.setCanPickUpLoot(this.random.nextFloat() < 0.55F * f);
++ this.setCanPickUpLoot(this.level.paperConfig.zombiesAlwaysCanPickUpLoot || this.random.nextFloat() < 0.55F * f); // Paper
+ if (object == null) {
+ object = new Zombie.ZombieGroupData(Zombie.getSpawnAsBabyOdds(world.getRandom()), true);
+ }