From 861e033fe31d24e8216ec52641acee335f477f28 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 22 Feb 2020 15:04:29 -0600 Subject: [PATCH] Implement bed explosion options --- .../java/net/minecraft/server/BlockBed.java | 2 +- .../net/pl3x/purpur/PurpurWorldConfig.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BlockBed.java b/src/main/java/net/minecraft/server/BlockBed.java index 06a35629ab..df41a7dfcd 100644 --- a/src/main/java/net/minecraft/server/BlockBed.java +++ b/src/main/java/net/minecraft/server/BlockBed.java @@ -84,7 +84,7 @@ public class BlockBed extends BlockFacingHorizontal implements ITileEntity { world.a(blockposition1, false); } - world.createExplosion((Entity) null, DamageSource.a(), (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, 5.0F, true, Explosion.Effect.DESTROY); + if (world.purpurConfig.bedExplode) world.createExplosion(null, DamageSource.a(), blockposition.getX() + 0.5D, blockposition.getY() + 0.5D, blockposition.getZ() + 0.5D, (float) world.purpurConfig.bedExplosionPower, world.purpurConfig.bedExplosionFire, world.purpurConfig.bedExplosionEffect); // Purpur return EnumInteractionResult.SUCCESS; // CraftBukkit end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 3a530de7f9..9e16bf1431 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -3,6 +3,7 @@ package net.pl3x.purpur; import com.destroystokyo.paper.PaperWorldConfig; import net.minecraft.server.Block; import net.minecraft.server.Blocks; +import net.minecraft.server.Explosion; import net.minecraft.server.IRegistry; import net.minecraft.server.MinecraftKey; import org.bukkit.configuration.ConfigurationSection; @@ -12,6 +13,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.logging.Level; import static net.pl3x.purpur.PurpurConfig.log; @@ -79,6 +81,22 @@ public class PurpurWorldConfig { bambooSmallHeight = getInt("blocks.bamboo.small-height", bambooSmallHeight); } + public boolean bedExplode = true; + public double bedExplosionPower = 5.0D; + public boolean bedExplosionFire = true; + public Explosion.Effect bedExplosionEffect = Explosion.Effect.DESTROY; + private void bedSettings() { + bedExplode = getBoolean("blocks.bed.explode", bedExplode); + bedExplosionPower = getDouble("blocks.bed.explosion-power", bedExplosionPower); + bedExplosionFire = getBoolean("blocks.bed.explosion-fire", bedExplosionFire); + try { + bedExplosionEffect = Explosion.Effect.valueOf(getString("blocks.bed.explosion-effect", bedExplosionEffect.name())); + } catch (IllegalArgumentException e) { + log(Level.SEVERE, "Unknown value for `blocks.bed.explosion-effect`! Using default of `DESTROY`"); + bedExplosionEffect = Explosion.Effect.DESTROY; + } + } + public int campfireRegenInterval = 0; public int campfireRegenDuration = 80; public int campfireRegenRange = 5; -- 2.24.0