private ServiceCallback(Class<T> serviceClass) { this.serviceClass = serviceClass; refresh(); // listen for service updates this.listener = Events.merge(ServiceEvent.class, ServiceRegisterEvent.class, ServiceUnregisterEvent.class) .filter(e -> e.getProvider() != null && e.getProvider().getService().equals(serviceClass)) .handler(e -> refresh()); }
@EventHandler public void onServiceChange(ServiceUnregisterEvent e) { if (e.getProvider().getService() == Chat.class) { refreshVault(); } }