Upstream Paper's upgrade to vineflower 12.0.0 (#1782)

This commit is contained in:
granny
2026-05-31 16:42:41 -07:00
committed by GitHub
parent dc4a255969
commit 3fe5edd4b5
116 changed files with 1321 additions and 1333 deletions

View File

@@ -5,23 +5,23 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 1bd1bb805060604fbe4dca6d71a863bb96d12da9..a41e8e61df1f3d7a861cd1b4060bc3ec424d45bd 100644
index 228c81791dcc1ea0971e70bcb0cb289106466c67..88aad415396d1e74da8b7544b566844e30761219 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1332,6 +1332,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
} else {
// Purpur start - Add boat fall damage config
if (source.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
+ // Purpur start - Minecart settings and WASD controls
+ if (getRootVehicle() instanceof AbstractMinecart && level().purpurConfig.minecartControllable && !level().purpurConfig.minecartControllableFallDamage) {
+ return false;
+ }
+ // Purpur end - Minecart settings and WASD controls
if (getRootVehicle() instanceof net.minecraft.world.entity.vehicle.boat.Boat && !level().purpurConfig.boatsDoFallDamage) {
return false;
}
@@ -1309,6 +1309,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
// Purpur start - Add boat fall damage config
if (source.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
+ // Purpur start - Minecart settings and WASD controls
+ if (getRootVehicle() instanceof AbstractMinecart && level().purpurConfig.minecartControllable && !level().purpurConfig.minecartControllableFallDamage) {
+ return false;
+ }
+ // Purpur end - Minecart settings and WASD controls
if (getRootVehicle() instanceof net.minecraft.world.entity.vehicle.boat.Boat && !level().purpurConfig.boatsDoFallDamage) {
return false;
}
diff --git a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
index 7ba197b9bda1f98e24882be40d78fabb0db9d36b..f807e424850bcd22ca35860b37fde45c37187b1e 100644
index 1c043c1136fc42e888125047ed73b1dc32276183..41d82befd5d30a0bc1db083df9012e0b477239b4 100644
--- a/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
+++ b/net/minecraft/world/entity/vehicle/minecart/AbstractMinecart.java
@@ -105,6 +105,10 @@ public abstract class AbstractMinecart extends VehicleEntity {
@@ -127,26 +127,16 @@ index 7ba197b9bda1f98e24882be40d78fabb0db9d36b..f807e424850bcd22ca35860b37fde45c
this.move(MoverType.SELF, this.getDeltaMovement());
if (!this.onGround()) {
diff --git a/net/minecraft/world/item/MinecartItem.java b/net/minecraft/world/item/MinecartItem.java
index 7464dbde8cc3348748d2a3733624bd2274f9c735..91df0baebab1da9cd060cb93698c7f154c719669 100644
index 2ce6aecf5e34528c9601ce2f071bebd6c2f47243..a817247544186e51d3748af0ecfd78164e37e012 100644
--- a/net/minecraft/world/item/MinecartItem.java
+++ b/net/minecraft/world/item/MinecartItem.java
@@ -30,8 +30,9 @@ public class MinecartItem extends Item {
@@ -30,7 +30,8 @@ public class MinecartItem extends Item {
BlockPos pos = context.getClickedPos();
BlockState blockState = level.getBlockState(pos);
if (!blockState.is(BlockTags.RAILS)) {
- return InteractionResult.FAIL;
- } else {
+ if (!level.purpurConfig.minecartPlaceAnywhere) return InteractionResult.FAIL; // Purpur - Minecart settings and WASD controls
+ if (blockState.isSolid()) pos = pos.relative(context.getClickedFace());
+ } // else { // Purpur - Minecart settings and WASD controls
ItemStack itemStack = context.getItemInHand();
RailShape shape = blockState.getBlock() instanceof BaseRailBlock
? blockState.getValue(((BaseRailBlock)blockState.getBlock()).getShapeProperty())
@@ -70,6 +71,6 @@ public class MinecartItem extends Item {
itemStack.shrink(1);
return InteractionResult.SUCCESS;
}
- }
+ // } // Purpur - Minecart settings and WASD controls
}
}
}
ItemStack itemStack = context.getItemInHand();