Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 20:40:07 +01:00
SPIGOT-2127: Add DamageCause.ENTITY_SWEEP_ATTACK
Dieser Commit ist enthalten in:
Ursprung
746cf0f0d7
Commit
96f03d9065
21
nms-patches/DamageSource.patch
Normale Datei
21
nms-patches/DamageSource.patch
Normale Datei
@ -0,0 +1,21 @@
|
||||
--- a/net/minecraft/server/DamageSource.java
|
||||
+++ b/net/minecraft/server/DamageSource.java
|
||||
@@ -34,6 +34,18 @@
|
||||
private boolean C;
|
||||
private boolean D;
|
||||
public String translationIndex;
|
||||
+ // CraftBukkit start
|
||||
+ private boolean sweep;
|
||||
+
|
||||
+ public boolean isSweep() {
|
||||
+ return sweep;
|
||||
+ }
|
||||
+
|
||||
+ public DamageSource sweep() {
|
||||
+ this.sweep = true;
|
||||
+ return this;
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
|
||||
public static DamageSource mobAttack(EntityLiving entityliving) {
|
||||
return new EntityDamageSource("mob", entityliving);
|
@ -279,7 +279,7 @@
|
||||
|
||||
if (entityliving != this && entityliving != entity && !this.r(entityliving) && this.h(entityliving) < 9.0D) {
|
||||
+ // CraftBukkit start - Only apply knockback if the damage hits
|
||||
+ if (entityliving.damageEntity(DamageSource.playerAttack(this), f4)) {
|
||||
+ if (entityliving.damageEntity(DamageSource.playerAttack(this).sweep(), f4)) {
|
||||
entityliving.a(this, 0.4F, (double) MathHelper.sin(this.yaw * 0.017453292F), (double) (-MathHelper.cos(this.yaw * 0.017453292F)));
|
||||
- entityliving.damageEntity(DamageSource.playerAttack(this), f4);
|
||||
+ }
|
||||
|
@ -464,7 +464,7 @@ public class CraftEventFactory {
|
||||
return event;
|
||||
} else if (source instanceof EntityDamageSource) {
|
||||
Entity damager = source.getEntity();
|
||||
DamageCause cause = DamageCause.ENTITY_ATTACK;
|
||||
DamageCause cause = (source.isSweep()) ? DamageCause.ENTITY_SWEEP_ATTACK : DamageCause.ENTITY_ATTACK;
|
||||
|
||||
if (source instanceof EntityDamageSourceIndirect) {
|
||||
damager = ((EntityDamageSourceIndirect) source).getProximateDamageSource();
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren