From 8fcf3141c43281b66ff73e2ebb15f417ebd98a3b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 12 Jan 2025 11:45:35 -0800 Subject: [PATCH] Player ridable in water option --- .../0185-Player-ridable-in-water-option.patch | 44 ------------------- .../world/entity/player/Player.java.patch | 14 ++++++ .../purpurmc/purpur/PurpurWorldConfig.java | 2 + 3 files changed, 16 insertions(+), 44 deletions(-) delete mode 100644 patches/server/0185-Player-ridable-in-water-option.patch diff --git a/patches/server/0185-Player-ridable-in-water-option.patch b/patches/server/0185-Player-ridable-in-water-option.patch deleted file mode 100644 index 448165532..000000000 --- a/patches/server/0185-Player-ridable-in-water-option.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Sat, 17 Jul 2021 15:55:14 -0500 -Subject: [PATCH] Player ridable in water option - - -diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index ee88c493119a4a4629d6456c8698dd89e4f477f4..dda9391962b7360714cc1491e6cabfc2616dab25 100644 ---- a/net/minecraft/world/entity/player/Player.java -+++ b/net/minecraft/world/entity/player/Player.java -@@ -2037,6 +2037,13 @@ public abstract class Player extends LivingEntity { - return slot != EquipmentSlot.BODY; - } - -+ // Purpur start -+ @Override -+ public boolean dismountsUnderwater() { -+ return !level().purpurConfig.playerRidableInWater; -+ } -+ // Purpur end -+ - public boolean setEntityOnShoulder(CompoundTag entityNbt) { - if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) { - if (this.getShoulderEntityLeft().isEmpty()) { -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 20d4021d6222c58e97062756cf8c66b4f819d666..363fba258c19fddb45b6bca459007def8c0da981 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -389,6 +389,7 @@ public class PurpurWorldConfig { - public double playerCriticalDamageMultiplier = 1.5D; - public int playerBurpDelay = 10; - public boolean playerBurpWhenFull = false; -+ public boolean playerRidableInWater = false; - private void playerSettings() { - if (PurpurConfig.version < 19) { - boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -411,6 +412,7 @@ public class PurpurWorldConfig { - playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); - playerBurpDelay = getInt("gameplay-mechanics.player.burp-delay", playerBurpDelay); - playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); -+ playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); - } - - public boolean silkTouchEnabled = false; diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch index 34a73b2cd..e3e700acd 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch @@ -86,3 +86,17 @@ } @Override +@@ -1960,6 +_,13 @@ + public boolean canUseSlot(EquipmentSlot slot) { + return slot != EquipmentSlot.BODY; + } ++ ++ // Purpur start - Player ridable in water option ++ @Override ++ public boolean dismountsUnderwater() { ++ return !level().purpurConfig.playerRidableInWater; ++ } ++ // Purpur end - Player ridable in water option + + public boolean setEntityOnShoulder(CompoundTag entityCompound) { + if (this.isPassenger() || !this.onGround() || this.isInWater() || this.isInPowderSnow) { diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index c4d66bfa0..0e9ce5dd7 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -388,6 +388,7 @@ public class PurpurWorldConfig { public double playerCriticalDamageMultiplier = 1.5D; public int playerBurpDelay = 10; public boolean playerBurpWhenFull = false; + public boolean playerRidableInWater = false; private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); @@ -410,6 +411,7 @@ public class PurpurWorldConfig { playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); playerBurpDelay = getInt("gameplay-mechanics.player.burp-delay", playerBurpDelay); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); + playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); } public boolean silkTouchEnabled = false;