Files
Purpur/patches/server/0173-Dont-run-with-scissors.patch
BillyGalbreath bedac1823f Updated Upstream (Paper, Tuinity, & Airplane)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
8ed45920c Don't annotate type parameters using JetBrains annotations (#5600)
d7625d926 Add new methods from PlayerMoveEvent to EntityMoveEvent (#5591)
29785297b Allow for Component suggestion tooltips in AsyncTabCompleteEvent (#5504)
0aea6c2ff Use JsonSerializationContext#serialize instead of recursion for AdventureComponents - fixes #5580 and #5371

Tuinity Changes:
3350246ce Updated Upstream (Paper)
f773caf21 Fix rare ticket level recursion crash
0fa8a0e92 Starlight Handle concurrent chunk generation and lighting better

Airplane Changes:
fad74c215 Fix JB annotations for gradle (credit jpenilla)
d02f034e6 Updated Upstream (Tuinity)
2021-05-09 00:34:24 -05:00

46 lines
2.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: JustDoom <justdoomdev@gmail.com>
Date: Fri, 5 Mar 2021 14:23:16 -0500
Subject: [PATCH] Dont run with scissors!
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index fbfb3eba79ded3720edf93b3d1c18cbc02c086dd..0bed1f132200876122f92f0ca539e53afa222c14 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1552,6 +1552,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.player.fallDistance = 0.0F;
}
+ // Purpur Start
+ if (this.player.isSprinting() && this.player.getWorldServer().purpurConfig.dontRunWithScissors && (this.player.getItemInHand(EnumHand.MAIN_HAND).getItem() == Items.SHEARS || this.player.getItemInHand(EnumHand.OFF_HAND).getItem() == Items.SHEARS) && (int) (Math.random() * 10) == 0) {
+ this.player.damageEntity(net.minecraft.world.damagesource.DamageSource.MAGIC, (float) this.player.getWorldServer().purpurConfig.scissorsRunningDamage);
+ }
+ // Purpur End
+
this.player.checkMovement(this.player.locX() - d0, this.player.locY() - d1, this.player.locZ() - d2);
this.o = this.player.locX();
this.p = this.player.locY();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b2d7e4ee4ecef476d633278c960130110c862520..02ebb0fc704b5e77cf508893d67feef036df80ed 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -203,6 +203,8 @@ public class PurpurWorldConfig {
public List<Item> itemImmuneToExplosion = new ArrayList<>();
public List<Item> itemImmuneToFire = new ArrayList<>();
public List<Item> itemImmuneToLightning = new ArrayList<>();
+ public boolean dontRunWithScissors = false;
+ public double scissorsRunningDamage = 1D;
private void itemSettings() {
itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -240,6 +242,8 @@ public class PurpurWorldConfig {
Item item = IRegistry.ITEM.get(new MinecraftKey(key.toString()));
if (item != Items.AIR) itemImmuneToLightning.add(item);
});
+ dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors);
+ scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage);
}
public boolean idleTimeoutKick = true;