Interface PlayerExtractor<E extends org.bukkit.event.Event>

Type Parameters:
E - the event type
All Superinterfaces:
Function<E,org.bukkit.entity.Player>
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface PlayerExtractor<E extends org.bukkit.event.Event> extends Function<E,org.bukkit.entity.Player>
Functional interface for extracting a Player from a Bukkit Event.

Used by AdvancementAPI and AdvancementRegisterBuilder to determine which player is associated with a given event instance. For default supported event types see getDefaultPlayerExtractor(Class, Logger)

Since:
0.1.0
Version:
0.3.2
Author:
lambdaphoenix
See Also:
  • Method Details

    • getDefaultPlayerExtractor

      static <E extends org.bukkit.event.Event> PlayerExtractor<E> getDefaultPlayerExtractor(Class<E> eventType, Logger logger)
      Provides a default PlayerExtractor for common Bukkit events.

      Supported events:

      • BlockBreakEvent
      • BlockPlaceEvent
      • PlayerInteractEvent
      • PlayerJumpEvent
      If no suitable extractor is found for the given event type, an informational message is logged and the returned extractor will always return null.
      Type Parameters:
      E - the event type
      Parameters:
      eventType - the event class
      logger - the logger to use for informational messages
      Returns:
      a PlayerExtractor for the given event type, or null-extractor if unsupported
      Since:
      0.1.0