001    package org.bukkit.event.entity;
002    
003    import org.bukkit.entity.HumanEntity;
004    import org.bukkit.event.Cancellable;
005    import org.bukkit.event.HandlerList;
006    
007    /**
008     * Called when a human entity's food level changes
009     */
010    public class FoodLevelChangeEvent extends EntityEvent implements Cancellable {
011        private static final HandlerList handlers = new HandlerList();
012        private boolean cancel = false;
013        private int level;
014    
015        public FoodLevelChangeEvent(final HumanEntity what, final int level) {
016            super(what);
017            this.level = level;
018        }
019    
020        @Override
021        public HumanEntity getEntity() {
022            return (HumanEntity) entity;
023        }
024    
025        /**
026         * Gets the resultant food level that the entity involved in this event
027         * should be set to.
028         * <p>
029         * Where 20 is a full food bar and 0 is an empty one.
030         *
031         * @return The resultant food level
032         */
033        public int getFoodLevel() {
034            return level;
035        }
036    
037        /**
038         * Sets the resultant food level that the entity involved in this event
039         * should be set to
040         *
041         * @param level the resultant food level that the entity involved in this
042         *     event should be set to
043         */
044        public void setFoodLevel(int level) {
045            if (level > 20) level = 20;
046            else if (level < 0) level = 0;
047    
048            this.level = level;
049        }
050    
051        public boolean isCancelled() {
052            return cancel;
053        }
054    
055        public void setCancelled(boolean cancel) {
056            this.cancel = cancel;
057        }
058    
059        @Override
060        public HandlerList getHandlers() {
061            return handlers;
062        }
063    
064        public static HandlerList getHandlerList() {
065            return handlers;
066        }
067    }