mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-11-09 20:20:11 +01:00
Reset nofall fall distance on damage events with fall damage.
This commit is contained in:
parent
7222dee529
commit
08d9ebf382
@ -6,6 +6,8 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Vehicle;
|
import org.bukkit.entity.Vehicle;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -13,6 +15,8 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
import org.bukkit.event.player.PlayerBedEnterEvent;
|
import org.bukkit.event.player.PlayerBedEnterEvent;
|
||||||
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
@ -515,4 +519,16 @@ public class MovingListener implements Listener {
|
|||||||
}
|
}
|
||||||
}.set(event.getVehicle(), newTo), 1L);
|
}.set(event.getVehicle(), newTo), 1L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority=EventPriority.MONITOR, ignoreCancelled=false)
|
||||||
|
public void onEntityDamage(final EntityDamageEvent event){
|
||||||
|
// Workaround fix attempt for NoFall multiple damage.
|
||||||
|
if (event.getCause() != DamageCause.FALL) return;
|
||||||
|
final Entity entity = event.getEntity();
|
||||||
|
if (entity.getType() != EntityType.PLAYER) return;
|
||||||
|
final Player player = (Player) entity;
|
||||||
|
final MovingData data = MovingData.getData(player);
|
||||||
|
// Simple model: Once damage dealt the fall distance is reset.
|
||||||
|
data.noFallFallDistance = 0.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user