66 lines
4.0 KiB
Diff
66 lines
4.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: etil2jz <81570777+etil2jz@users.noreply.github.com>
|
|
Date: Wed, 31 Aug 2022 11:19:23 +0200
|
|
Subject: [PATCH] Configurable mobs from spawners picking up loot
|
|
|
|
|
|
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 b8abee145fc92faddef98da913eca7715b6bfc03..512476fd32055e4eab0d780cc0da19d6f9885fda 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
|
@@ -156,7 +156,13 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
|
this.populateDefaultEquipmentSlots(randomsource, difficulty);
|
|
this.populateDefaultEquipmentEnchantments(randomsource, difficulty);
|
|
this.reassessWeaponGoal();
|
|
- this.setCanPickUpLoot(this.level.paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper
|
|
+ // Mirai start
|
|
+ if (wtf.etil.mirai.MiraiConfig.skeletonPickupLoot && spawnReason == MobSpawnType.SPAWNER) {
|
|
+ this.setCanPickUpLoot(false);
|
|
+ } else {
|
|
+ this.setCanPickUpLoot(this.level.paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper
|
|
+ }
|
|
+ // Mirai end
|
|
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 97b3082dc020043fa38d9e5e4591102f97519ed3..a9756c298348a0f1551841540bbe826732ae386a 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
|
@@ -514,7 +514,13 @@ public class Zombie extends Monster {
|
|
Object object = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
|
|
float f = difficulty.getSpecialMultiplier();
|
|
|
|
- this.setCanPickUpLoot(this.level.paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.zombies || randomsource.nextFloat() < 0.55F * f); // Paper
|
|
+ // Mirai start
|
|
+ if (wtf.etil.mirai.MiraiConfig.zombiePickupLoot && spawnReason == MobSpawnType.SPAWNER) {
|
|
+ this.setCanPickUpLoot(false);
|
|
+ } else {
|
|
+ this.setCanPickUpLoot(this.level.paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.zombies || randomsource.nextFloat() < 0.55F * f); // Paper
|
|
+ }
|
|
+ // Mirai end
|
|
if (object == null) {
|
|
object = new Zombie.ZombieGroupData(Zombie.getSpawnAsBabyOdds(randomsource), true);
|
|
}
|
|
diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
|
index 156f5c1f28e36ca69b0ef5c15550d004b0ef69a4..56e36c0468d38a344d18f7f57bd1d014e68ff308 100644
|
|
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
|
+++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
|
@@ -252,4 +252,15 @@ public class MiraiConfig {
|
|
"standing on a 1x1 block while being stuck.");
|
|
}
|
|
|
|
+ public static boolean skeletonPickupLoot;
|
|
+ public static boolean zombiePickupLoot;
|
|
+ private static void spawnersPickupLoot() {
|
|
+ skeletonPickupLoot = getBoolean("disable-spawners-pick-up-items.skeleton", false,
|
|
+ "Whether or not skeletons from spawners should be able to",
|
|
+ "pick up items on the ground.");
|
|
+ zombiePickupLoot = getBoolean("disable-spawners-pick-up-items.zombie", false,
|
|
+ "Whether or not zombies from spawners should be able to",
|
|
+ "pick up items on the ground.");
|
|
+ }
|
|
+
|
|
}
|
|
\ No newline at end of file
|