diff --git a/pom.xml b/pom.xml
index 9b60b94..65107d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,9 @@
maven-compiler-plugin
3.5.1
+
+ de/mrbesen/test/**
+
@@ -48,4 +51,5 @@
1.8
1.8
+
\ No newline at end of file
diff --git a/src/main/java/de/mrbesen/telegram/event/EventListener.java b/src/main/java/de/mrbesen/telegram/event/EventListener.java
deleted file mode 100644
index d0cc7d4..0000000
--- a/src/main/java/de/mrbesen/telegram/event/EventListener.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package de.mrbesen.telegram.event;
-
-public interface EventListener {
-
- public void handleEvent(T event);
-}
diff --git a/src/main/java/de/mrbesen/telegram/event/EventManager.java b/src/main/java/de/mrbesen/telegram/event/EventManager.java
index f4f8f30..89f5da7 100644
--- a/src/main/java/de/mrbesen/telegram/event/EventManager.java
+++ b/src/main/java/de/mrbesen/telegram/event/EventManager.java
@@ -6,40 +6,44 @@ import java.lang.reflect.Array;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.function.Consumer;
public class EventManager {
- private HashMap, ArrayList> listeners = new HashMap<>();
+ private HashMap, ArrayList> listeners = new HashMap<>();
public EventManager() {}
- public void registerEvent(Class extends Event> eventtype, EventListener listener) {
- if (listener == null) {
+ public void registerEvent(Class extends Event> eventtype, Consumer handler) {
+ if (handler == null) {
throw new NullPointerException();
}
//get list
- ArrayList list = listeners.get(eventtype);
+ ArrayList list = listeners.get(eventtype);
if (list == null) {
- list = new ArrayList();
+ //create and add list
+ list = new ArrayList<>();
listeners.put(eventtype, list);
- } else if(list.contains(listener)) {
+ } else if(list.contains(handler)) {
throw new IllegalArgumentException("listener allready registered");
}
- list.add(listener);
+ list.add(handler); // ad to list
}
public Event callEvent(Event e) {
if(e == null)
throw new NullPointerException("event is not allowed to be null!");
- ArrayList listner = listeners.get(e.getClass());
- for(EventListener listn : listner) {
- try {
- listn.handleEvent(e);
- } catch(Throwable t) {
- System.err.println("Error occurred on Handling Event: " + e.getClass().getSimpleName());
- t.printStackTrace();
+ ArrayList listner = listeners.get(e.getClass());
+ if(listner != null) {
+ for (Consumer listn : listner) {
+ try {
+ listn.accept(e);
+ } catch (Throwable t) {
+ System.err.println("Error occurred on Handling Event: " + e.getClass().getSimpleName());
+ t.printStackTrace();
+ }
}
}
return e;
diff --git a/src/main/java/de/mrbesen/test/Main.java b/src/main/java/de/mrbesen/test/Main.java
index e57abfd..a493c91 100644
--- a/src/main/java/de/mrbesen/test/Main.java
+++ b/src/main/java/de/mrbesen/test/Main.java
@@ -3,8 +3,6 @@ package de.mrbesen.test;
import java.util.Scanner;
import de.mrbesen.telegram.TelegramAPI;
-import de.mrbesen.telegram.event.EventListener;
-import de.mrbesen.telegram.event.events.UserCallbackEvent;
import de.mrbesen.telegram.event.events.UserSendMessageEvent;
import de.mrbesen.telegram.objects.TMessage;
import de.mrbesen.telegram.objects.TUser.Status;
@@ -13,7 +11,7 @@ import de.mrbesen.test.commands.ReplyKeyboardRemoveTC;
import de.mrbesen.test.commands.ReplyKeyboardTestCase;
import de.mrbesen.test.commands.SimpleTestCase;
-public class Main implements EventListener, Runnable {
+public class Main implements Runnable {
TelegramAPI api;
private int action = 0;
@@ -30,10 +28,11 @@ public class Main implements EventListener, Runnable {
api.getCommandManager().registerCommand(new InlineKeyboardTC());
api.getCommandManager().registerCommand(new ReplyKeyboardTestCase());
api.getCommandManager().registerCommand(new ReplyKeyboardRemoveTC());
- api.getEventManager().registerEvent(UserSendMessageEvent.class, this);
+ api.getEventManager().registerEvent(UserSendMessageEvent.class, this::handleEvent);
}
- public void handleEvent(UserSendMessageEvent e) {
+ public void handleEvent(Object event) {
+ UserSendMessageEvent e = (UserSendMessageEvent) event;
//api.sendMessage(new MessageBuilder().setText("this is a reply").setReciver(e.getUser().getID()).setSilent(true).setNoWebView(true).build());
if(oldmsg != null) {