Entities pick up loot bypass mob-griefing gamerule

This commit is contained in:
William Blake Galbreath
2020-04-24 09:38:24 -05:00
parent d085a5b222
commit 6098e53926

View File

@@ -0,0 +1,46 @@
From 9364b8f841ab37a40be7f8102b2f7d2ee728f8da Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 24 Apr 2020 09:33:11 -0500
Subject: [PATCH] Entities pick up loot bypass mob-griefing gamerule
---
src/main/java/net/minecraft/server/EntityInsentient.java | 6 +-----
src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 2 ++
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 15a5fb71..8edbe341 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -525,7 +521,7 @@ public abstract class EntityInsentient extends EntityLiving {
public void movementTick() {
super.movementTick();
this.world.getMethodProfiler().enter("looting");
- if (!this.world.isClientSide && this.canPickupLoot() && this.isAlive() && !this.killed && this.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING)) {
+ if (!this.world.isClientSide && this.canPickupLoot() && this.isAlive() && !this.killed && (this.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) || world.purpurConfig.entitiesPickUpLootBypassMobGriefing)) {
List<EntityItem> list = this.world.a(EntityItem.class, this.getBoundingBox().grow(1.0D, 0.0D, 1.0D));
Iterator iterator = list.iterator();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ef34a348..6a61094f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -209,6 +209,7 @@ public class PurpurWorldConfig {
public double controllableMinecartsBaseSpeed = 0.1D;
public Map<Block, Double> controllableMinecartsBlockSpeeds = new HashMap<>();
public boolean disableDropsOnCrammingDeath = false;
+ public boolean entitiesPickUpLootBypassMobGriefing = false;
public boolean fixClimbingBypassingCrammingRule = false;
public boolean itemFloatInLava = false;
public List<Item> itemImmuneToExplosion = new ArrayList<>();
@@ -244,6 +245,7 @@ public class PurpurWorldConfig {
set("gameplay-mechanics.controllable-minecarts.block-speed.stone", 0.5D);
}
disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
+ entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing);
fixClimbingBypassingCrammingRule = getBoolean("gameplay-mechanics.fix-climbing-bypassing-cramming-rule", fixClimbingBypassingCrammingRule);
itemFloatInLava = getBoolean("gameplay-mechanics.item.float-in-lava", itemFloatInLava);
getList("gameplay-mechanics.item.immune.explosion", itemImmuneToExplosion).forEach(key -> {
--
2.24.0