Player ridable in water option

This commit is contained in:
William Blake Galbreath
2025-01-12 11:45:35 -08:00
committed by granny
parent 03b4271d72
commit 8fcf3141c4
3 changed files with 16 additions and 44 deletions

View File

@@ -1,44 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
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;

View File

@@ -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) {

View File

@@ -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;