Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.kofest.eventsapi;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.event.Event;
- import org.bukkit.plugin.java.JavaPlugin;
- import me.kofest.eventsapi.api.ApiHandler;
- import me.kofest.eventsapi.api.EventType;
- import me.kofest.eventsapi.thread.EventsThread;
- public class EventsApi extends JavaPlugin {
- private static EventsApi instance;
- public static EventsApi getInst() {
- return instance;
- }
- @Override
- public void onEnable() {
- instance = this;
- getServer().getPluginManager().registerEvents(new EventsHandler(), this);
- }
- private static final List<Object> handlers = new ArrayList<>();
- public static final void registerHandler(Object handlerClass) {
- handlers.add(handlerClass);
- }
- public static final void unregisterHandler(Object handlerClass) {
- handlers.remove(handlerClass);
- }
- public static final void callEvent(Event event) {
- synchronized (instance) {
- new EventsThread() {
- @Override
- public void run() {
- for (Object handler : handlers) {
- for (Method m : handler.getClass().getDeclaredMethods()) {
- if (m.isAnnotationPresent(ApiHandler.class)) {
- ApiHandler ah = m.getAnnotation(ApiHandler.class);
- EventType et = ah.eventType();
- if (event.getEventName().equalsIgnoreCase(et.toString())) {
- try {
- m.invoke(handler, event);
- } catch (IllegalAccessException | IllegalArgumentException
- | InvocationTargetException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- }
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement