mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 17:07:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes : 2db85c5 fix: origin world can be unknown while knowing location 903fa9a Enable chunk load for feature search by default
62 lines
3.5 KiB
Diff
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 71b694449c5605db6ff140f139b1feb1ec48bf80..d45a1c7a36194159ad58e113d604169a06015b81 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
@@ -2613,7 +2613,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 7af455e5472dc2b6ed177494a9da86c59c6ede5f..379782d5dcb212419c8df2a9a534749b3bd63f21 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
|
@@ -393,7 +393,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();
|
|
|
|
@@ -405,7 +405,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;
|