mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 18:37:42 +01:00
Updated Upstream (Paper) (#1174)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@7b3b593 [ci skip] Update checkout action in workflow (#8510) PaperMC/Paper@36869cc Fix new block data in EntityChangeBlockEvent for silverfish when mobGriefing isn't enabled (#8099) PaperMC/Paper@2432233 Add allow server listing & text filtering client options (#7595) PaperMC/Paper@954e6f0 Fix a bunch more forceDrops for dropping items (#8095) PaperMC/Paper@32d95e9 Track projectile source for fireworks from dispensers (#8044) PaperMC/Paper@0249750 Fix EntityArgument suggestion permissions to align with EntitySelector#checkPermissions (#8511) PaperMC/Paper@8acb05d Make CommandSyntaxException implement ComponentMessageThrowable (#8513) PaperMC/Paper@c264018 [ci skip] Undo modification to removed patches in latest commit (#8512) PaperMC/Paper@304ab35 [ci skip] Remove old todo file PaperMC/Paper@8a4b752 Fix wrong descriptor in ASMEventExecutorGenerator (#8506) PaperMC/Paper@b743144 Fix MC-147659 (#8423) PaperMC/Paper@aaf5e39 Deprecate unused VehicleEntityCollisionEvent methods (#8498)
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Encode42 <me@encode42.dev>
|
||||
Date: Tue, 16 Mar 2021 19:50:58 -0400
|
||||
Subject: [PATCH] Config to make Creepers explode on death
|
||||
|
||||
Creepers exploded after being killed in the alpha days. This brings that back.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
index 6de0dccb7a70d9ebde7a518f820258a445bed000..2ffa10ddd1a19aa44c088a41fdfcbd596e493791 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
private int spacebarCharge = 0;
|
||||
private int prevSpacebarCharge = 0;
|
||||
private int powerToggleDelay = 0;
|
||||
+ private boolean exploding = false;
|
||||
// Purpur end
|
||||
|
||||
public Creeper(EntityType<? extends Creeper> type, Level world) {
|
||||
@@ -156,6 +157,14 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
public boolean isSensitiveToWater() {
|
||||
return this.level.purpurConfig.creeperTakeDamageFromWater;
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource damagesource) {
|
||||
+ if (!exploding && this.level.purpurConfig.creeperExplodeWhenKilled && damagesource.getEntity() instanceof net.minecraft.server.level.ServerPlayer) {
|
||||
+ this.explodeCreeper();
|
||||
+ }
|
||||
+ return super.dropAllDeathLoot(damagesource);
|
||||
+ }
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
@@ -353,6 +362,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
}
|
||||
|
||||
public void explodeCreeper() {
|
||||
+ this.exploding = true; // Purpur
|
||||
if (!this.level.isClientSide) {
|
||||
Explosion.BlockInteraction explosion_effect = (this.level.purpurConfig.creeperBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && level.purpurConfig.creeperAllowGriefing ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; // Purpur
|
||||
float f = this.isPowered() ? 2.0F : 1.0F;
|
||||
@@ -371,7 +381,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
-
|
||||
+ this.exploding = false; // Purpur
|
||||
}
|
||||
|
||||
private void spawnLingeringCloud() {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 6b2d5f92c9884d2c3e3ae997a7d90800b09186b0..141aca86c5fe70f3fad838021d93c66d4b630139 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -817,6 +817,7 @@ public class PurpurWorldConfig {
|
||||
public boolean creeperAllowGriefing = true;
|
||||
public boolean creeperBypassMobGriefing = false;
|
||||
public boolean creeperTakeDamageFromWater = false;
|
||||
+ public boolean creeperExplodeWhenKilled = false;
|
||||
private void creeperSettings() {
|
||||
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
|
||||
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
|
||||
@@ -831,6 +832,7 @@ public class PurpurWorldConfig {
|
||||
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
|
||||
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
|
||||
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
|
||||
+ creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
|
||||
}
|
||||
|
||||
public boolean dolphinRidable = false;
|
||||
Reference in New Issue
Block a user