From ee6c0414246d4647db91686d91e414c80ea1fa8a Mon Sep 17 00:00:00 2001 From: Matthew Prenger Date: Sat, 19 Mar 2016 19:07:04 -0500 Subject: [PATCH] Pass exceptions thrown in mod event buses back to FML to handle apropriately --- .../minecraftforge/fml/common/LoadController.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/fml/common/LoadController.java b/src/main/java/net/minecraftforge/fml/common/LoadController.java index 3a5a60a5a0..59429b69c1 100644 --- a/src/main/java/net/minecraftforge/fml/common/LoadController.java +++ b/src/main/java/net/minecraftforge/fml/common/LoadController.java @@ -44,6 +44,8 @@ import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; +import com.google.common.eventbus.SubscriberExceptionHandler; +import com.google.common.eventbus.SubscriberExceptionContext; public class LoadController { @@ -88,10 +90,18 @@ public class LoadController { Builder eventBus = ImmutableMap.builder(); - for (ModContainer mod : loader.getModList()) + for (final ModContainer mod : loader.getModList()) { //Create mod logger, and make the EventBus logger a child of it. - EventBus bus = new EventBus(mod.getModId()); + EventBus bus = new EventBus(new SubscriberExceptionHandler() + { + @Override + public void handleException(final Throwable exception, final SubscriberExceptionContext context) + { + LoadController.this.errorOccurred(mod, exception); + } + }); + boolean isActive = mod.registerBus(bus, this); if (isActive) {