diff --git a/changelog.md b/changelog.md index 1c170ee..7642acc 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ These changes will (most likely) be included in the next version. ## [Unreleased] +- Food levels no longer deplete for players in the lobby and spectator area. ## [0.103.2] - 2019-04-23 - MobArena no longer touches the `flySpeed` player attribute when players join an arena. This should fix issues where a crash would result in players being "locked in the air" when trying to fly outside of the arena. It also introduces compatibility with plugins that use flight to augment player abilities. diff --git a/src/main/java/com/garbagemule/MobArena/ArenaListener.java b/src/main/java/com/garbagemule/MobArena/ArenaListener.java index deb8e51..aa8a64b 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaListener.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaListener.java @@ -949,15 +949,22 @@ public class ArenaListener } public void onFoodLevelChange(FoodLevelChangeEvent event) { - if (!arena.isRunning()) + if (!(event.getEntity() instanceof Player)) { return; + } - if (!(event.getEntity() instanceof Player) || !arena.inArena((Player) event.getEntity())) - return; + Player p = (Player) event.getEntity(); - // If the food level is locked, cancel all changes. - if (lockFoodLevel) - event.setCancelled(true); + if (arena.isRunning()) { + if (lockFoodLevel) { + event.setCancelled(true); + } + } else { + // Always locked in lobby/spec + if (arena.inLobby(p) || arena.inSpec(p)) { + event.setCancelled(true); + } + } } public void onPlayerAnimation(PlayerAnimationEvent event) {