]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/common/EventBus.java
Tidy up
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / EventBus.java
1 package com.irtimaled.bbor.common;
2
3 import java.util.HashMap;
4 import java.util.Map;
5 import java.util.function.Consumer;
6
7 public class EventBus {
8     private static final Map<Class<?>, Consumer<?>> handlers = new HashMap<>();
9
10     public static <evt> void publish(evt event) {
11         if (event == null) return;
12
13         Class clazz = event.getClass();
14         Consumer<?> handler = handlers.get(clazz);
15         if (handler == null) return;
16
17         ((Consumer<evt>) handler).accept(event);
18     }
19
20     public static <evt> void subscribe(Class<evt> clazz, Consumer<evt> consumer) {
21         handlers.put(clazz, consumer);
22     }
23 }