Помогите Отменить отдачу от урона

NoTitles

Активный участник
Пользователь
Баллы
66
Здравствуйте, как отменить отдачу от урона, при этом нанеся урон? Без отмены ивента
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);
            }
        }

    }
 
Последнее редактирование:
Есть эвент PlayerVelocity попробуй его отменить
 
Заноси челика в список, в ивенте PlayerVelocityEvent проверяй наличие этого игрока в списке, если он есть, то отменяй ивент, а потом убирай чела из списка. Если это не поможет, то без отмены ивента на дамаг никак не убрать
 
Заноси челика в список, в ивенте PlayerVelocityEvent проверяй наличие этого игрока в списке, если он есть, то отменяй ивент, а потом убирай чела из списка. Если это не поможет, то без отмены ивента на дамаг никак не убрать
Проще достать причину последнего дамага я думаю
 
Это к чему. В чем смысл реализации?
В том что ты используешь EntityDamageByEntityEvent, соответственно ты хочешь отменять отдачу когда ударяет моб или игрок, а не все *толчки* подряд
 
Тема вновь открыта для дискуссий. Античит ругается и кикает игроков, ищу альтернативное решение(не отмену PlayerVelocityEvent).
 
Тема вновь открыта для дискуссий. Античит ругается и кикает игроков, ищу альтернативное решение(не отмену PlayerVelocityEvent).
Ну логично, что он будет кикать. Он это считает за Antiknockback. Кроме отмены этого ивента, а также отмены ивента на дамаг, решения нет.
 
Тема вновь открыта для дискуссий. Античит ругается и кикает игроков, ищу альтернативное решение(не отмену PlayerVelocityEvent).
Только делать поддержку для отдельных анти-читов, аля если игрок в определённом списке, то не давать ач считать это за антинокбэк
 
Останусь при своем и просто через тик буду обнулять velocity, так отдача меньше и античит не кикает.
Кто хочет что-то более адекватное на будущее: отменяйте дамаг, ломайте броню, правильно наносите урон (во время бафа чаренными яблоками урон по красным сердцам не проходит).
 
Назад
Верх