diff --git a/patches/server/0159-Dont-run-with-scissors.patch b/patches/server/0159-Dont-run-with-scissors.patch index 1fc290a78..f281faae7 100644 --- a/patches/server/0159-Dont-run-with-scissors.patch +++ b/patches/server/0159-Dont-run-with-scissors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3d73f44edca1b13a98f858ae0c1fd0bc79055a12..a015afdc3fedb0c86a1bc2a59ee37fd41d74b8fd 100644 +index 3d73f44edca1b13a98f858ae0c1fd0bc79055a12..eebca9b362b8747aaec3708d4f233d398ba22ad1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1555,6 +1555,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -13,7 +13,7 @@ index 3d73f44edca1b13a98f858ae0c1fd0bc79055a12..a015afdc3fedb0c86a1bc2a59ee37fd4 } + // Purpur Start -+ if (this.player.isSprinting() && this.player.level.purpurConfig.dontRunWithScissors && (this.player.getItemInHand(InteractionHand.MAIN_HAND).getItem() == Items.SHEARS || this.player.getItemInHand(InteractionHand.OFF_HAND).getItem() == Items.SHEARS) && (int) (Math.random() * 10) == 0) { ++ if (this.player.level.purpurConfig.dontRunWithScissors && this.player.isSprinting() && (isScissor(this.player.getItemInHand(InteractionHand.MAIN_HAND)) || isScissor(this.player.getItemInHand(InteractionHand.OFF_HAND))) && (int) (Math.random() * 10) == 0) { + this.player.hurt(net.minecraft.world.damagesource.DamageSource.MAGIC, (float) this.player.level.purpurConfig.scissorsRunningDamage); + if (!net.pl3x.purpur.PurpurConfig.dontRunWithScissors.isBlank()) this.player.sendActionBarMessage(net.pl3x.purpur.PurpurConfig.dontRunWithScissors); + } @@ -22,6 +22,26 @@ index 3d73f44edca1b13a98f858ae0c1fd0bc79055a12..a015afdc3fedb0c86a1bc2a59ee37fd4 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); +@@ -1567,6 +1574,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser + } + } + ++ // Purpur start ++ public boolean isScissor(ItemStack stack) { ++ boolean hasCustomModelData = false; ++ if (stack.getTag() != null) { ++ if (stack.getTag().contains("CustomModelData") && stack.getTag().getInt("CustomModelData") != 0) { ++ hasCustomModelData = true; ++ } ++ } ++ ++ return stack.is(Items.SHEARS) && !hasCustomModelData; ++ } ++ // Purpur end ++ + // Paper start - optimise out extra getCubes + private boolean hasNewCollision(final ServerLevel world, final Entity entity, final AABB oldBox, final AABB newBox) { + final List collisions = io.papermc.paper.util.CachedLists.getTempCollisionList(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index a51de18eee2caf87b710e3ab863b7157d093859c..d8ec1c94b018ce566ed81a41023b4192557dc06d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch index ff88f2da8..3e01f5f1f 100644 --- a/patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch @@ -36,10 +36,10 @@ index 693c6cbd90cde4d605931c6d80ae8056e260bf34..645c76e6dd50d915263db576650c7a62 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a015afdc3fedb0c86a1bc2a59ee37fd41d74b8fd..852f7efbd2c60d51d50bf19df3acb6efdb5833ee 100644 +index eebca9b362b8747aaec3708d4f233d398ba22ad1..6b3aaaf7f2cbd72de2ad8834bea28c096ab1c7ba 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1902,6 +1902,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1915,6 +1915,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {