From d5804afa686172f201f7d7f7cef178f54ba4a4f3 Mon Sep 17 00:00:00 2001
From: gsand <gsandowns@gmail.com>
Date: Tue, 1 Mar 2016 13:43:16 -0600
Subject: [PATCH] Player Exhaustion Multipliers


diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 2f30b66..d5b4756 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -94,4 +94,13 @@ public class PaperWorldConfig {
         fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 900);
         log("Fishing time ranges are between " + fishingMinTicks +" and " + fishingMaxTicks + " ticks");
     }
+
+    public float blockBreakExhaustion;
+    public float playerSwimmingExhaustion;
+    public void exhaustionValues() {
+        blockBreakExhaustion = getFloat("player-exhaustion.block-break", 0.025F);
+        playerSwimmingExhaustion = getFloat("player-exhaustion.swimming", 0.015F);
+        log("Player exhaustion penalty for breaking blocks is " + blockBreakExhaustion);
+        log("Player exhaustion penalty for swimming is " + playerSwimmingExhaustion);
+    }
 }
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index 1d2f580..bed5577 100644
--- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java
@@ -409,7 +409,7 @@ public class Block {
 
     public void a(World world, EntityHuman entityhuman, BlockPosition blockposition, IBlockData iblockdata, TileEntity tileentity, ItemStack itemstack) {
         entityhuman.b(StatisticList.a(this));
-        entityhuman.applyExhaustion(0.025F);
+        entityhuman.applyExhaustion(world.paperConfig.blockBreakExhaustion); // Paper - Configurable block break exhaustion
         if (this.o() && EnchantmentManager.getEnchantmentLevel(Enchantments.SILK_TOUCH, itemstack) > 0) {
             ItemStack itemstack1 = this.u(iblockdata);
 
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 53936de..d8161a8 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -1446,13 +1446,13 @@ public abstract class EntityHuman extends EntityLiving {
                 i = Math.round(MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2) * 100.0F);
                 if (i > 0) {
                     this.a(StatisticList.q, i);
-                    this.applyExhaustion(0.015F * (float) i * 0.01F);
+                    this.applyExhaustion(world.paperConfig.playerSwimmingExhaustion); // Paper - Configurable swimming exhaustion
                 }
             } else if (this.isInWater()) {
                 i = Math.round(MathHelper.sqrt(d0 * d0 + d2 * d2) * 100.0F);
                 if (i > 0) {
                     this.a(StatisticList.m, i);
-                    this.applyExhaustion(0.015F * (float) i * 0.01F);
+                    this.applyExhaustion(world.paperConfig.playerSwimmingExhaustion); // Paper - Configurable swimming exhaustion
                 }
             } else if (this.n_()) {
                 if (d1 > 0.0D) {
-- 
2.7.2