Эвент обходит условие

Статус
Закрыто для дальнейших ответов.

NoooobKa

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
NoooobKa
Не могу понять что не так с условием (EntityDamageByEntityEvent). Я вижу его так если тот кто получил урон и тот кто нанес урон не игроки, то отмена
Код:
if (e.getEntity().getType() != EntityType.PLAYER && e.getDamager().getType() != EntityType.PLAYER)return;
Дальше я кастую дамагера в игрока, но если бью не игрока то вылезает ошибка, которая ссылается на невозможность каста(например CraftZombie to Player). Откройте мне глаза.
 
Думаю правильнее будет проверять происхождение *instanceof*, но все же, что тут не так?
 
Код:
if (e.getEntity().getType() != EntityType.PLAYER && e.getDamager().getType() != EntityType.PLAYER) {
    e.setCanceled(true);
    return;
}
 
почему у тебя && стоит? посмотри и подумай, при каких условиях у тебя выполнится if
 
почему у тебя && стоит? посмотри и подумай, при каких условиях у тебя выполнится if
Это бред, по виду, даже такой код должен работать, сам ивент работает? Ты его зарегестрировал
 
у него дальше по коду идет каст ентити к игроку скорее всего
условие написано не верно и будет выполняться только когда мод будет бить моба
от этого и ошибки
 
почему у тебя && стоит? посмотри и подумай, при каких условиях у тебя выполнится if
Мне нужно чтобы энтити был игроков и дамагер был игроком, бью зомби return не срабатывает, КрафтЗомби пытается скастоваться в игрока = ошибка, пофиксилось заменой проверки типов на проверку пренадлежности к классу
Это бред, по виду, даже такой код должен работать, сам ивент работает? Ты его зарегестрировал
Конечно все работает, выдает ошибку же, все пофиксил, но вопрос остался
 
Не могу понять что не так с условием (EntityDamageByEntityEvent). Я вижу его так если тот кто получил урон и тот кто нанес урон не игроки, то отмена
Код:
if (e.getEntity().getType() != EntityType.PLAYER && e.getDamager().getType() != EntityType.PLAYER)return;
Дальше я кастую дамагера в игрока, но если бью не игрока то вылезает ошибка, которая ссылается на невозможность каста(например CraftZombie to Player). Откройте мне глаза.
Вместо && поставь ||

(1: CraftZombie.type != PLAYER) && (2: Player.type != PLAYER)
Первая проверка проходит, потому что зомби не игрок, а вот вторая нет, потому что игрок это игрок
когда ты делаешь &&, это значит, что 1 и 2 должны быть True, а у тебя True только 1.
 
Вместо && поставь ||

(1: CraftZombie.type != PLAYER) && (2: Player.type != PLAYER)
Первая проверка проходит, потому что зомби не игрок, а вот вторая нет, потому что игрок это игрок
когда ты делаешь &&, это значит, что 1 и 2 должны быть True, а у тебя True только 1.
Понял, спасибо
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх