Ignore CustomModelData when running with scissors

This commit is contained in:
Ben Kerllenevich
2021-08-30 21:03:12 -04:00
parent a23b3648d6
commit 789fe098bf
2 changed files with 24 additions and 4 deletions

View File

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

View File

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