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

Paper Changes:
PaperMC/Paper@0c1643c Fix MC-252439 (#7994)
PaperMC/Paper@0ae78d3 Fix advancement saving before reloads (#8003)
PaperMC/Paper@f428887 Prevent empty items from being added to world (#7998)
PaperMC/Paper@dd61319 Couple fixes for command blocks (#8004)
PaperMC/Paper@d1b1c6f Add missing deprecation to AdvancementDisplayType (#7876)
PaperMC/Paper@81f2eec [ci skip] rebuild patches
PaperMC/Paper@e269a0a Fix incorrect random nextLong to nextInt (#8009)
PaperMC/Paper@b77fe3a Temp: Disable javadoc.io for now
PaperMC/Paper@7688112 [ci skip] restore jd.io
PaperMC/Paper@b0eb4e0 Fix number parsing (#8013)

Pufferfish Changes:
pufferfish-gg/Pufferfish@fdfb106 Fix version checker
pufferfish-gg/Pufferfish@b4104a6 Updated Upstream (Paper)
2022-06-18 13:19:30 -05:00

62 lines
3.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <ben@omega24.dev>
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 f9111dc426a539c91665840d772258f76b6d1c76..fafea41a3d05936d898da39017eb8ee8e28c520e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3101,7 +3101,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public int getMaxAirSupply() {
- return this.maxAirTicks; // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir()
+ return this.level == null? this.maxAirTicks : this.level.purpurConfig.drowningAirTicks; // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir() // Purpur
}
public int getAirSupply() {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index e9ee22f12f542f0c2d1a4ecedc891d708491a8eb..4f9b44c1a1421969f454cb2984d0b7ce21357225 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -423,7 +423,7 @@ public abstract class LivingEntity extends Entity {
if (flag1) {
this.setAirSupply(this.decreaseAirSupply(this.getAirSupply()));
- if (this.getAirSupply() == -20) {
+ if (this.getAirSupply() == -this.level.purpurConfig.drowningDamageInterval) { // Purpur
this.setAirSupply(0);
Vec3 vec3d = this.getDeltaMovement();
@@ -435,7 +435,7 @@ public abstract class LivingEntity extends Entity {
this.level.addParticle(ParticleTypes.BUBBLE, this.getX() + d2, this.getY() + d3, this.getZ() + d4, vec3d.x, vec3d.y, vec3d.z);
}
- this.hurt(DamageSource.DROWN, 2.0F);
+ this.hurt(DamageSource.DROWN, (float) this.level.purpurConfig.damageFromDrowning); // Purpur
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a2878203e88d5ffeab7e209c1d2914047c779df9..0322b818bbb5f79b3f4eb25c729de0df91fa41d2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -161,6 +161,15 @@ public class PurpurWorldConfig {
nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks);
}
+ 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 int elytraDamagePerSecond = 1;
public double elytraDamageMultiplyBySpeed = 0;
public boolean elytraIgnoreUnbreaking = false;