- Баллы
- 66
Здравствуйте, как отменить отдачу от урона, при этом нанеся урон? Без отмены ивента
EntityDamageByEntityEvent, т.к. возникает много лишних проблем.
На данный момент мой код выглядит так, но это не тот эффект, который мне нужен, ибо отдача гасится не полностью.
EntityDamageByEntityEvent, т.к. возникает много лишних проблем.
На данный момент мой код выглядит так, но это не тот эффект, который мне нужен, ибо отдача гасится не полностью.
Код:
@EventHandler
private void onDamageEvent(EntityDamageByEntityEvent e) {
if (e.getEntity() instanceof Player) {
Player p = (Player) e.getEntity();
StateFlag.State flag = WGBukkit.getRegionManager(p.getWorld()).getApplicableRegions(p.getLocation()).getFlag(DefaultFlag.PVP);
if (KBCommand.getpModeKBCooldown().containsKey(p.getUniqueId()) && (flag != null && !flag.equals(StateFlag.State.DENY))) {
// p.setVelocity(p.getVelocity().setX(0).setY(0).setZ(0));
Vector vec = p.getVelocity();
Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), () -> {
p.setVelocity(vec.zero());
}, 1L);
}
}
}
Последнее редактирование: