package tc.oc.pgm.damage; import javax.inject.Inject; import gnu.trove.map.TIntObjectMap; import gnu.trove.map.hash.TIntObjectHashMap; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerUseUnknownEntityEvent; import tc.oc.pgm.events.ListenerScope; import tc.oc.pgm.match.Match; import tc.oc.pgm.match.MatchModule; import tc.oc.pgm.match.MatchScope; @ListenerScope(MatchScope.RUNNING) public class HitboxMatchModule extends MatchModule implements Listener { final TIntObjectMap<HitboxPlayerFacet> facets = new TIntObjectHashMap<>(); @Inject HitboxMatchModule(Match match) { super(match); } @EventHandler(priority = EventPriority.MONITOR) public void onHit(PlayerUseUnknownEntityEvent event) { final HitboxPlayerFacet facet = facets.get(event.getEntityId()); if(facet != null) { facet.onUse(event.getPlayer(), event.isAttack(), event.getHand()); } } }