mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-12 10:46:25 +00:00
implement FunctionalEventHandler
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package com.dfsek.terra.api.event;
|
||||
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.event.events.Event;
|
||||
import com.dfsek.terra.api.event.functional.EventContext;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
@@ -13,21 +12,10 @@ public interface EventManager {
|
||||
* Call an event, and return the execution status.
|
||||
*
|
||||
* @param event Event to pass to all registered EventListeners.
|
||||
* @return False if the event is cancellable and has been cancelled, otherwise true.
|
||||
*/
|
||||
boolean callEvent(Event event);
|
||||
void callEvent(Event event);
|
||||
|
||||
/**
|
||||
* Register an {@link EventListener} under an {@link TerraAddon}.
|
||||
*
|
||||
* @param addon Addon to register listener for.
|
||||
* @param listener Listener to register.
|
||||
*/
|
||||
void registerListener(TerraAddon addon, EventListener listener);
|
||||
<T extends EventHandler> void registerHandler(Class<T> clazz, T handler);
|
||||
|
||||
<T extends Event> EventContext<T> register(Class<T> clazz);
|
||||
|
||||
<T extends Event> EventContext<T> register(TypeKey<T> clazz);
|
||||
|
||||
void registerHandler(EventHandler handler);
|
||||
<T extends EventHandler> T getHandler(Class<T> clazz);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.dfsek.terra.api.event.functional;
|
||||
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.event.EventHandler;
|
||||
import com.dfsek.terra.api.event.events.Event;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
|
||||
public interface FunctionalEventHandler extends EventHandler {
|
||||
<T extends Event> EventContext<T> register(TerraAddon addon, Class<T> clazz);
|
||||
|
||||
<T extends Event> EventContext<T> register(TerraAddon addon, TypeKey<T> clazz);
|
||||
}
|
||||
Reference in New Issue
Block a user