Fix up the event bus
This commit is contained in:
parent
54e60c6b2c
commit
5db113cbd3
2 changed files with 13 additions and 7 deletions
|
@ -62,8 +62,14 @@ public class EventBus
|
||||||
public boolean post(Event event)
|
public boolean post(Event event)
|
||||||
{
|
{
|
||||||
boolean cancelled = false;
|
boolean cancelled = false;
|
||||||
for (Map.Entry<Class<?>, List<EventContainer>> entry : listeners.events.entrySet()) {
|
for (Map.Entry<String, List<EventContainer>> entry : listeners.events.entrySet()) {
|
||||||
Class<?> eventClazz = entry.getKey();
|
Class<?> eventClazz;
|
||||||
|
try {
|
||||||
|
eventClazz = Class.forName(entry.getKey());
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
List<EventContainer> containers = entry.getValue();
|
List<EventContainer> containers = entry.getValue();
|
||||||
|
|
||||||
if(eventClazz.isInstance(Event.class))
|
if(eventClazz.isInstance(Event.class))
|
||||||
|
|
|
@ -16,22 +16,22 @@ import com.google.common.collect.Maps;
|
||||||
|
|
||||||
public class EventsListenerList {
|
public class EventsListenerList {
|
||||||
|
|
||||||
public Map<Class<?>, List<EventContainer>> events = Maps.newHashMap();
|
public Map<String, List<EventContainer>> events = Maps.newHashMap();
|
||||||
|
|
||||||
public void addEventMethod(Class<?> e, Method action, Class<?> clazz)
|
public void addEventMethod(Class<?> e, Method action, Class<?> clazz)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Add a new container!
|
// Add a new container!
|
||||||
EventContainer contains = new EventContainer();
|
EventContainer contains = new EventContainer();
|
||||||
contains.function=action;
|
contains.function=action;
|
||||||
contains.containingClass = clazz;
|
contains.containingClass = clazz;
|
||||||
|
|
||||||
if(!events.containsKey(e)){
|
if((events.entrySet().stream()
|
||||||
|
.filter(entry -> entry.getKey() == e.getName()).count()) == 0){
|
||||||
List<EventContainer> tmp = Lists.newArrayList();
|
List<EventContainer> tmp = Lists.newArrayList();
|
||||||
tmp.add(contains);
|
tmp.add(contains);
|
||||||
events.put(e, tmp);
|
events.put(e.getName(), tmp);
|
||||||
}else {
|
}else {
|
||||||
events.get(e).add(contains);
|
events.get(e.getName()).add(contains);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue