Rebuild patches

This commit is contained in:
BillyGalbreath
2020-11-24 05:14:00 -06:00
parent f3aff1b92d
commit badfd600bb
2 changed files with 34 additions and 23 deletions

View File

@@ -5,14 +5,14 @@ Subject: [PATCH] Add critical hit check to EntityDamagedByEntityEvent
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index deb6c9342..00497dd44 100644
index deb6c9342..84e500fa7 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -73,6 +73,7 @@ public abstract class EntityHuman extends EntityLiving {
// Paper start
public boolean affectsSpawning = true;
// Paper end
+ public static boolean isCritical = false; // Purpur
+ public boolean isCritical = false; // Purpur
// CraftBukkit start
public boolean fauxSleeping;
@@ -20,7 +20,7 @@ index deb6c9342..00497dd44 100644
flag2 = flag2 && !world.paperConfig.disablePlayerCrits; // Paper
flag2 = flag2 && !this.isSprinting();
if (flag2) {
+ isCritical = true; // Purpur
+ this.isCritical = true; // Purpur
f *= 1.5F;
}
@@ -28,21 +28,20 @@ index deb6c9342..00497dd44 100644
Vec3D vec3d = entity.getMot();
boolean flag5 = entity.damageEntity(DamageSource.playerAttack(this), f);
+ isCritical = false; // Purpur
+ this.isCritical = false; // Purpur
if (flag5) {
if (i > 0) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8bb9449a6..544c95bc5 100644
index 8bb9449a6..3c277e208 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1049,6 +1049,9 @@ public class CraftEventFactory {
@@ -1048,7 +1048,7 @@ public class CraftEventFactory {
private static EntityDamageEvent callEntityDamageEvent(Entity damager, Entity damagee, DamageCause cause, Map<DamageModifier, Double> modifiers, Map<DamageModifier, Function<? super Double, Double>> modifierFunctions, boolean cancelled) {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions);
+ if (damager instanceof EntityHuman) {
+ ((EntityDamageByEntityEvent) event).setCritical(((EntityHuman)damager).isCritical);
+ }
- event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions);
+ event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, damager instanceof HumanEntity && ((EntityHuman)damager).isCritical); // Purpur
damager.processClick(EnumHand.MAIN_HAND); // Purpur
} else {
event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, modifiers, modifierFunctions);