Files
Purpur/patches/server/0189-Drowning-Settings.patch
BillyGalbreath adb0cafe64 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
41e6073ce [Auto] Updated Upstream (CraftBukkit)
6f93dc95d Add cause to Weather/ThunderChangeEvents (#4832)
507cf19b3 [CI-SKIP] [Auto] Rebuild Patches
afe0785bf Added PlayerPurchaseEvent for standalone Merchant GUIs (#5583)
615df3d8a Fix entity motion tag from mob spawners (#5718)
2d34898b5 Add methods for getting default item attributes (#5593)
d9766433e Add EntityInsideBlockEvent (#5596)
2021-05-25 04:49:08 -05:00

62 lines
3.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <me@notom3ga.me>
Date: Sun, 21 Mar 2021 15:26:52 -0400
Subject: [PATCH] Drowning Settings
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e915905af690124f17407876c0fb854750f5db71..9325163e392213be1d51588b95361af63d294952 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2605,7 +2605,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
}
public int getDefaultPortalCooldown() {
- return 300;
+ return this.world.purpurConfig.drowningAirTicks; // Purpur
}
public Iterable<ItemStack> bn() {
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
index 2b47287b135fd4a9798379e1f50c31db5e9d865c..cb18f3c88a0b8ef374cbcf4226848e1541bc8675 100644
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
@@ -394,7 +394,7 @@ public abstract class EntityLiving extends Entity {
if (this.a((Tag) TagsFluid.WATER) && !this.world.getType(new BlockPosition(this.locX(), this.getHeadY(), this.locZ())).a(Blocks.BUBBLE_COLUMN)) {
if (!this.canBreatheUnderwater() && !MobEffectUtil.c(this) && !flag1) { // Paper - use OBFHELPER so it can be overridden
this.setAirTicks(this.l(this.getAirTicks()));
- if (this.getAirTicks() == -20) {
+ if (this.getAirTicks() == -this.world.purpurConfig.drowningDamageInterval) { // Purpur
this.setAirTicks(0);
Vec3D vec3d = this.getMot();
@@ -406,7 +406,7 @@ public abstract class EntityLiving extends Entity {
this.world.addParticle(Particles.BUBBLE, this.locX() + d2, this.locY() + d3, this.locZ() + d4, vec3d.x, vec3d.y, vec3d.z);
}
- this.damageEntity(DamageSource.DROWN, 2.0F);
+ this.damageEntity(DamageSource.DROWN, (float) this.world.purpurConfig.damageFromDrowning); // Purpur
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c2314380e7064459dd104b09b900c5a28b592b71..82da1dd5bb8b02c948be51fa941d3b31a3f0dc20 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2047,6 +2047,15 @@ public class PurpurWorldConfig {
imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways);
}
+ public int drowningAirTicks = 300;
+ public int drowningDamageInterval = 20;
+ public double damageFromDrowning = 2.0F;
+ private void drowningSettings() {
+ drowningAirTicks = getInt("gameplay-mechanics.drowning.air-ticks", drowningAirTicks);
+ drowningDamageInterval = getInt("gameplay-mechanics.drowning.ticks-per-damage", drowningDamageInterval);
+ damageFromDrowning = getDouble("gameplay-mechanics.drowning.damage-from-drowning", damageFromDrowning);
+ }
+
public boolean baselessCrystalExplode = true;
public double baselessCrystalExplosionPower = 6.0D;
public boolean baselessCrystalExplosionFire = false;