mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Config for health to impact Creeper explosion radius
This commit is contained in:
@@ -1,42 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Encode42 <me@encode42.dev>
|
|
||||||
Date: Thu, 29 Apr 2021 20:28:18 -0400
|
|
||||||
Subject: [PATCH] Config for health to impact Creeper explosion radius
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
|
|
||||||
index 58ef6c538a33199e5a8423223c22c61bf91fccae..d22a36bdabf04da4c4fe6e4699c9d78dc5b4e0c6 100644
|
|
||||||
--- a/net/minecraft/world/entity/monster/Creeper.java
|
|
||||||
+++ b/net/minecraft/world/entity/monster/Creeper.java
|
|
||||||
@@ -377,9 +377,10 @@ public class Creeper extends Monster {
|
|
||||||
|
|
||||||
if (world instanceof ServerLevel worldserver) {
|
|
||||||
float f = this.isPowered() ? 2.0F : 1.0F;
|
|
||||||
+ float multiplier = worldserver.purpurConfig.creeperHealthRadius ? this.getHealth() / this.getMaxHealth() : 1; // Purpur
|
|
||||||
|
|
||||||
// CraftBukkit start
|
|
||||||
- ExplosionPrimeEvent event = CraftEventFactory.callExplosionPrimeEvent(this, this.explosionRadius * f, false);
|
|
||||||
+ ExplosionPrimeEvent event = CraftEventFactory.callExplosionPrimeEvent(this, (this.explosionRadius * f) * multiplier, false); // Purpur
|
|
||||||
if (!event.isCancelled()) {
|
|
||||||
// CraftBukkit end
|
|
||||||
this.dead = true;
|
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
index 1ae95a30b6e4cf69028dc61c398651bde526418f..851d0c96350abc8d8c490d92183540b013a98d12 100644
|
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
|
||||||
@@ -954,6 +954,7 @@ public class PurpurWorldConfig {
|
|
||||||
public boolean creeperBypassMobGriefing = false;
|
|
||||||
public boolean creeperTakeDamageFromWater = false;
|
|
||||||
public boolean creeperExplodeWhenKilled = false;
|
|
||||||
+ public boolean creeperHealthRadius = false;
|
|
||||||
private void creeperSettings() {
|
|
||||||
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
|
|
||||||
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
|
|
||||||
@@ -970,6 +971,7 @@ public class PurpurWorldConfig {
|
|
||||||
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);
|
|
||||||
+ creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean dolphinRidable = false;
|
|
||||||
@@ -35,15 +35,17 @@
|
|||||||
@Override
|
@Override
|
||||||
protected SoundEvent getHurtSound(DamageSource damageSource) {
|
protected SoundEvent getHurtSound(DamageSource damageSource) {
|
||||||
return SoundEvents.CREEPER_HURT;
|
return SoundEvents.CREEPER_HURT;
|
||||||
@@ -243,6 +_,7 @@
|
@@ -243,14 +_,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public void explodeCreeper() {
|
public void explodeCreeper() {
|
||||||
+ this.exploding = true; // Purpur - Config to make Creepers explode on death
|
+ this.exploding = true; // Purpur - Config to make Creepers explode on death
|
||||||
if (this.level() instanceof ServerLevel serverLevel) {
|
if (this.level() instanceof ServerLevel serverLevel) {
|
||||||
float f = this.isPowered() ? 2.0F : 1.0F;
|
float f = this.isPowered() ? 2.0F : 1.0F;
|
||||||
|
+ float multiplier = serverLevel.purpurConfig.creeperHealthRadius ? this.getHealth() / this.getMaxHealth() : 1; // Purpur - Config for health to impact Creeper explosion radius
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -250,7 +_,7 @@
|
- org.bukkit.event.entity.ExplosionPrimeEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callExplosionPrimeEvent(this, this.explosionRadius * f, false);
|
||||||
|
+ org.bukkit.event.entity.ExplosionPrimeEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callExplosionPrimeEvent(this, (this.explosionRadius * f) * multiplier, false); // Purpur - Config for health to impact Creeper explosion radius
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
this.dead = true;
|
this.dead = true;
|
||||||
|
|||||||
@@ -946,6 +946,7 @@ public class PurpurWorldConfig {
|
|||||||
public boolean creeperBypassMobGriefing = false;
|
public boolean creeperBypassMobGriefing = false;
|
||||||
public boolean creeperTakeDamageFromWater = false;
|
public boolean creeperTakeDamageFromWater = false;
|
||||||
public boolean creeperExplodeWhenKilled = false;
|
public boolean creeperExplodeWhenKilled = false;
|
||||||
|
public boolean creeperHealthRadius = false;
|
||||||
private void creeperSettings() {
|
private void creeperSettings() {
|
||||||
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
|
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
|
||||||
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
|
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
|
||||||
@@ -962,6 +963,7 @@ public class PurpurWorldConfig {
|
|||||||
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
|
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
|
||||||
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
|
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
|
||||||
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
|
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
|
||||||
|
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean dolphinRidable = false;
|
public boolean dolphinRidable = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user