mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: d6f730655 Do not add passengers of entities that were above save limit (#5073) cb99288a5 Try to get a new 1.16.5 build on website now we hopefully fixed site bug 946cdd2d2 [CI-SKIP] [Auto] Rebuild Patches 8f805412b Remove class 13 from netty preload - Fixes #5066 f6d3c6811 Make ProjectileHitEvent Cancellable 97b020f13 make schedule command per world aac07a271 Return chat component with empty text instead of throwing exception. Fixes #3328 f27bc0659 Collision option for requiring a player participant 193f80148 Add StructureLocateEvent 59222b5ba Add sendOpLevel API f792973c2 [CI-SKIP] Update API to 1.16.5 (#5067) Tuinity Changes: db82b6c Update to starlight 0.0.3 b97e87f Merge branch 'master' into dev/lighting 1d169e7 Updated Upstream (Paper) 09997a6 Merge branch 'master' into dev/lighting 8954b61 Updated Upstream (Paper) 8753f47 Merge branch 'master' into dev/lighting 4743c34 Updated Upstream (Paper)
48 lines
2.8 KiB
Diff
48 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <blake.galbreath@gmail.com>
|
|
Date: Tue, 24 Nov 2020 04:30:46 -0600
|
|
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 aef1dc47f2025f09d650a04f6dfa867d5ea1b65a..c973a1f1aecd47f11a12c94325cc18c3307d7ab5 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 boolean isCritical = false; // Purpur
|
|
|
|
// CraftBukkit start
|
|
public boolean fauxSleeping;
|
|
@@ -1060,6 +1061,7 @@ public abstract class EntityHuman extends EntityLiving {
|
|
flag2 = flag2 && !world.paperConfig.disablePlayerCrits; // Paper
|
|
flag2 = flag2 && !this.isSprinting();
|
|
if (flag2) {
|
|
+ this.isCritical = true; // Purpur
|
|
f *= 1.5F;
|
|
}
|
|
|
|
@@ -1096,6 +1098,7 @@ public abstract class EntityHuman extends EntityLiving {
|
|
|
|
Vec3D vec3d = entity.getMot();
|
|
boolean flag5 = entity.damageEntity(DamageSource.playerAttack(this), f);
|
|
+ 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 a6963544fe460798ee870d7080939c8ec838398e..c6402e5c712744a807242e0421cd3383f6ba085f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
@@ -1055,7 +1055,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);
|
|
+ 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);
|