package tc.oc.pgm.tracker.trackers; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockFallEvent; import org.bukkit.event.block.EntityBlockFormEvent; import tc.oc.pgm.events.ParticipantBlockTransformEvent; import tc.oc.pgm.tracker.damage.AnvilInfo; /** * Updates the state of owned anvil blocks and entities. * * TODO: Expand to support all falling blocks */ public class AnvilTracker extends AbstractTracker<AnvilInfo> { @EventHandler(priority = EventPriority.MONITOR) public void onPlace(ParticipantBlockTransformEvent event) { if(event.getNewState().getMaterial() == Material.ANVIL) { blocks().trackBlockState(event.getNewState(), new AnvilInfo(event.getPlayerState())); } } @EventHandler(priority = EventPriority.MONITOR) public void onLand(EntityBlockFormEvent event) { AnvilInfo info = resolveEntity(event.getEntity()); if(info != null) blocks().trackBlockState(event.getNewState(), info); } @EventHandler(priority = EventPriority.HIGHEST) public void onFall(BlockFallEvent event) { AnvilInfo info = resolveBlock(event.getBlock()); if(info != null) entities().trackEntity(event.getEntity(), info); } }