Interface EventValueRegistry
- All Superinterfaces:
Iterable<EventValue<?,,?>> Registry<EventValue<?,,?>> ViewProvider<EventValueRegistry>
public interface EventValueRegistry
extends Registry<EventValue<?,?>>, ViewProvider<EventValueRegistry>
Registry and resolver for
EventValue definitions.
Use this registry to register, unregister and resolve event values by identifier text or by desired value type. Resolution prefers the closest matching event type and, optionally, can fall back to default time state and/or allow value-type conversion.
Obtain an instance using SkriptAddon#registry(EventValueRegistry.class).
Or an unmodifiable view using Skript.instance().registry(EventValueRegistry.class).
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumFlags used during event value resolution.static final recordA set ofEventValueRegistry.Flags.static final recordEventValueRegistry.Resolution<E extends org.bukkit.event.Event,V> Result of a registry resolve operation. -
Method Summary
Modifier and TypeMethodDescription@Unmodifiable List<EventValue<?, ?>> elements()Returns all registered event values at all time states.<E extends org.bukkit.event.Event>
@Unmodifiable List<EventValue<? extends E, ?>> Returns a snapshot of the direct (subevents only) event values for the given event.@Unmodifiable List<EventValue<?, ?>> elements(EventValue.Time time) Returns a snapshot of event values for the given time state.static EventValueRegistryCreates an empty event value registry.booleanisRegistered(Class<? extends org.bukkit.event.Event> eventClass, Class<?> valueClass, EventValue.Time time) Checks whether a value for the exact event/value class and time is registered.booleanisRegistered(EventValue<?, ?> eventValue) Checks whether an equivalent event value is already registered.<E extends org.bukkit.event.Event>
voidregister(EventValue<E, ?> eventValue) Registers a newEventValue.<E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, ? extends V> Resolves by desired value class usingEventValue.Time.NOWandEventValueRegistry.Flags.DEFAULT.<E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, ? extends V> resolve(Class<E> eventClass, Class<V> valueClass, EventValue.Time time) Resolves by desired value class for a specific time usingEventValueRegistry.Flags.DEFAULT.<E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, ? extends V> resolve(Class<E> eventClass, Class<V> valueClass, EventValue.Time time, EventValueRegistry.Flags flags) Resolves by desired value class with explicit time and flags.<E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, V> <E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, V> resolve(Class<E> eventClass, String identifier, EventValue.Time time) Resolve anEventValueby identifier for a specific time usingEventValueRegistry.Flags.DEFAULT.<E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, V> resolve(Class<E> eventClass, String identifier, EventValue.Time time, EventValueRegistry.Flags flags) Resolve anEventValueby identifier with explicit time and flags.<E extends org.bukkit.event.Event,V>
EventValueRegistry.Resolution<E, V> resolveExact(Class<E> eventClass, Class<V> valueClass, EventValue.Time time) Resolves only exact value-class matches, choosing the nearest compatible event class.default EventValueRegistryConstructs an unmodifiable view ofthis.booleanunregister(EventValue<?, ?> eventValue) Unregisters the given event value.Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
empty
Creates an empty event value registry.- Parameters:
skript- the Skript instance- Returns:
- a new empty event value registry
-
register
Registers a newEventValue.- Type Parameters:
E- the event type- Parameters:
eventValue- the event value to register- Throws:
SkriptAPIException- if another value with the same event class, value class, time, and identifier patterns already exists
-
unregister
Unregisters the given event value.- Parameters:
eventValue- the event value to unregister- Returns:
trueif the value was removed
-
isRegistered
Checks whether an equivalent event value is already registered.- Parameters:
eventValue- the event value to check for- Returns:
trueif an equivalent event value is registered
-
isRegistered
boolean isRegistered(Class<? extends org.bukkit.event.Event> eventClass, Class<?> valueClass, EventValue.Time time) Checks whether a value for the exact event/value class and time is registered.- Parameters:
eventClass- the event class to check forvalueClass- the value class to check fortime- the time state to check for- Returns:
trueif a value is registered for the given parameters
-
resolve
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,V> resolve(Class<E> eventClass, String identifier) - Type Parameters:
E- the event typeV- the expected value type- Parameters:
eventClass- the event type to resolve foridentifier- user input that identifies the value- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state - See Also:
-
resolve
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,V> resolve(Class<E> eventClass, String identifier, EventValue.Time time) Resolve anEventValueby identifier for a specific time usingEventValueRegistry.Flags.DEFAULT.- Type Parameters:
E- the event typeV- the expected value type- Parameters:
eventClass- the event type to resolve foridentifier- user input that identifies the valuetime- the time state- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state - See Also:
-
resolve
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,V> resolve(Class<E> eventClass, String identifier, EventValue.Time time, EventValueRegistry.Flags flags) Resolve anEventValueby identifier with explicit time and flags.- Type Parameters:
E- the event typeV- the expected value type- Parameters:
eventClass- the event type to resolve foridentifier- user input that identifies the valuetime- the time stateflags- the resolver flags- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state
-
resolve
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,? extends V> resolve(Class<E> eventClass, Class<V> valueClass) Resolves by desired value class usingEventValue.Time.NOWandEventValueRegistry.Flags.DEFAULT.- Type Parameters:
E- the event typeV- the desired value type- Parameters:
eventClass- the event type to resolve forvalueClass- the desired value type- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state
-
resolve
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,? extends V> resolve(Class<E> eventClass, Class<V> valueClass, EventValue.Time time) Resolves by desired value class for a specific time usingEventValueRegistry.Flags.DEFAULT.- Type Parameters:
E- the event typeV- the desired value type- Parameters:
eventClass- the event type to resolve forvalueClass- the desired value typetime- the time state- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state
-
resolve
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,? extends V> resolve(Class<E> eventClass, Class<V> valueClass, EventValue.Time time, EventValueRegistry.Flags flags) Resolves by desired value class with explicit time and flags.- Type Parameters:
E- the event typeV- the desired value type- Parameters:
eventClass- the event type to resolve forvalueClass- the desired value typetime- the time stateflags- the resolver flags- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state
-
resolveExact
<E extends org.bukkit.event.Event,V> EventValueRegistry.Resolution<E,V> resolveExact(Class<E> eventClass, Class<V> valueClass, EventValue.Time time) Resolves only exact value-class matches, choosing the nearest compatible event class.- Type Parameters:
E- the event typeV- the value type- Parameters:
eventClass- the event type to resolve forvalueClass- the exact value type to matchtime- the time state- Returns:
- a
EventValueRegistry.Resolutiondescribing candidates or empty/error state
-
elements
@Unmodifiable List<EventValue<?,?>> elements()Returns all registered event values at all time states.- Specified by:
elementsin interfaceRegistry<EventValue<?,?>> - Returns:
- an unmodifiable list of all registered event values
-
elements
Returns a snapshot of event values for the given time state.- Parameters:
time- the time state- Returns:
- an unmodifiable list of event values for the given time state
-
elements
<E extends org.bukkit.event.Event> @Unmodifiable List<EventValue<? extends E,?>> elements(Class<E> event) Returns a snapshot of the direct (subevents only) event values for the given event.
For example, getting the event values ofEntityDeathEventwill return the event values registered underEntityDeathEventandPlayerDeathEvent, but notEntityEvent.- Parameters:
event- the event- Returns:
- an unmodifiable list of event values for the given event
-
unmodifiableView
Description copied from interface:ViewProviderConstructs an unmodifiable view ofthis.- Specified by:
unmodifiableViewin interfaceViewProvider<EventValueRegistry>- Returns:
- an unmodifiable view of this registry
-