Advertisement
Guest User

eventbus

a guest
Jun 17th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.52 KB | None | 0 0
  1. val events = mutableMapOf<Class<Event>, MutableList<Pair<Int, Function<Any>>>>()
  2.  
  3. fun subscribe(event: Class<Event>, function: Function<Any>, priority: Int?) {
  4.     var getEvent = events[event]
  5.     if (getEvent == null)
  6.     {
  7.         getEvent = mutableListOf<Pair<Int, Function<Any>>>()
  8.         events[event] = getEvent
  9.     }
  10.  
  11.     getEvent.add((priority ?: 0) to function)
  12.     getEvent.sortBy { it.first }
  13. }
  14.  
  15. fun publish(event: Event) {
  16.     events[event.javaClass]?.forEach{
  17.         it.second.run { event }
  18.     }
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement