Skip to content

Commit 8ea5e55

Browse files
committed
Safely load wrappers
1 parent a630640 commit 8ea5e55

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

plugin/src/main/java/net/thenextlvl/service/plugin/listeners/ServiceListener.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public final class ServiceListener implements Listener {
3434
public ServiceListener(final Plugin plugin) {
3535
this.plugin = plugin;
3636
getServicesManager().getKnownServices().forEach(aClass ->
37-
getServicesManager().getRegistrations(aClass).forEach(this::loadWrapper));
37+
getServicesManager().getRegistrations(aClass).forEach(this::safeLoadWrapper));
3838
}
3939

4040
@EventHandler(priority = EventPriority.LOWEST)
@@ -50,7 +50,15 @@ public void onServiceUnregister(final ServiceUnregisterEvent event) {
5050

5151
@EventHandler(priority = EventPriority.LOWEST)
5252
public void onServiceRegister(final ServiceRegisterEvent event) {
53-
loadWrapper(event.getProvider());
53+
safeLoadWrapper(event.getProvider());
54+
}
55+
56+
private void safeLoadWrapper(final RegisteredServiceProvider<?> provider) {
57+
try {
58+
loadWrapper(provider);
59+
} catch (final Throwable t) {
60+
plugin.getComponentLogger().error("Failed to register wrapper for {}", provider.getPlugin().getName(), t);
61+
}
5462
}
5563

5664
@SuppressWarnings({"unchecked", "IfCanBeSwitch"})

0 commit comments

Comments
 (0)