Выдаёт сообщение, где выдавать не должно

  • Автор темы Автор темы clysic
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

clysic

Новичок
Пользователь
Баллы
11
Привет, всем кодерам!
Есть условный ивент "BlockBreakEvent" , где я написал первое условие if, а после пишу второе if, и мне выдаёт сообщение из первого if, хотя при этом e.setCancelled успешно работает... Пытался после первого if else, но тогда перестаёт работать e.setCancelled.
Код:
public void onBlock(BlockBreakEvent e) {
if (Blocks.contains(block))  {
                 e.getPlayer().sendMessage("text");
                 e.getPlayer().damage(3);
                 e.setCancelled(true);
         }
            if (Items.contains(item)) {
            e.setCancelled(false);
            }
 
Чего?
Если хочешь завершить выполнение метода - используй return;
 
Чего?
Если хочешь завершить выполнение метода - используй return;
А при чём здесь return?
У меня есть два условия "if" в одном ивенте, где в первом условии: отменяется ивент, отправляется сообщение и игроку наносит урон; а вот во втором "if" ивент должен возобновиться, естественно без отправки сообщения игроку и урона, но почему-то отправляет...
 
А при чём здесь return?
У меня есть два условия "if" в одном ивенте, где в первом условии: отменяется ивент, отправляется сообщение и игроку наносит урон; а вот во втором "if" ивент должен возобновиться, естественно без отправки сообщения игроку и урона, но почему-то отправляет...
Что-то ты плохо изъясняешься.
Вот у тебя первое условие true - код внутри выполняется.
И второе условие true - код тоже выполняется.
Какое нафиг возобновление в линейном коде? )
Ты его не прерываешь, чтобы возобновлять.
 
Уже то, что ты делаешь проверки для разных вещей одновременно (блок и предмет у игрока) сказывается тем, что не работает.
По твой логике, ты хочешь проверить можно ли сломать определенный блок определенным предметом, да?
 
Мда...
Опиши что тебе надо.
Если тебе надо отменить ломание блока при наличии в руке определенного предмета, то после проверки юзай e.setCancelled(true);
Напиши задачу нужную тебе.
 
В общем, пошёл немного иначе и добился,нужного мне,результата.
Всем спасибо за помощь!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх