Files
Purpur/patches/server/0072-Add-enderman-and-creeper-griefing-controls.patch
William Blake Galbreath 1a46c4bc6b Update to 1.16.1
2020-06-28 21:51:07 -05:00

75 lines
3.8 KiB
Diff

From cb1c37ea2302e7d0dd55ce91ecbac3e3ebe561fb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 26 Apr 2020 16:28:38 -0500
Subject: [PATCH] Add enderman and creeper griefing controls
---
src/main/java/net/minecraft/server/EntityCreeper.java | 2 +-
src/main/java/net/minecraft/server/EntityEnderman.java | 2 ++
src/main/java/net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index ec5287fa5..848944230 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -204,7 +204,7 @@ public class EntityCreeper extends EntityMonster {
public void explode() {
if (!this.world.isClientSide) {
- Explosion.Effect explosion_effect = this.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) ? Explosion.Effect.DESTROY : Explosion.Effect.NONE;
+ Explosion.Effect explosion_effect = this.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) && world.purpurConfig.creeperAllowGriefing ? Explosion.Effect.DESTROY : Explosion.Effect.NONE; // Purpur
float f = this.isPowered() ? 2.0F : 1.0F;
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index b61de3351..245fc38de 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -370,6 +370,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
@Override
public boolean a() {
+ if (!enderman.world.purpurConfig.endermanAllowGriefing) return false; // Purpur
return this.enderman.getCarried() != null ? false : (!this.enderman.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) ? false : this.enderman.getRandom().nextInt(20) == 0);
}
@@ -413,6 +414,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
@Override
public boolean a() {
+ if (!getEnderman().world.purpurConfig.endermanAllowGriefing) return false; // Purpur
return this.a.getCarried() == null ? false : (!this.a.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) ? false : this.a.getRandom().nextInt(2000) == 0);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e571b3628..bd9ac998f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -172,8 +172,10 @@ public class PurpurWorldConfig {
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
}
+ public boolean creeperAllowGriefing = true;
public double creeperChargedChance = 0.0D;
private void creeperSettings() {
+ creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
}
@@ -184,6 +186,11 @@ public class PurpurWorldConfig {
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
}
+ public boolean endermanAllowGriefing = true;
+ private void endermanSettings() {
+ endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
+ }
+
public boolean foxTypeChangesWithTulips = false;
private void foxSettings() {
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
--
2.26.2