diff --git a/src/main/java/net/rptools/maptool/events/ZoneLoadedListener.java b/src/main/java/net/rptools/maptool/events/ZoneLoadedListener.java index 2d71cedb18..ba522ea6a2 100644 --- a/src/main/java/net/rptools/maptool/events/ZoneLoadedListener.java +++ b/src/main/java/net/rptools/maptool/events/ZoneLoadedListener.java @@ -16,6 +16,7 @@ import com.google.common.eventbus.Subscribe; import java.util.Collections; +import java.util.Objects; import java.util.concurrent.ExecutionException; import net.rptools.maptool.client.MapTool; import net.rptools.maptool.client.events.ZoneLoaded; @@ -30,6 +31,8 @@ public class ZoneLoadedListener { private static final Logger LOGGER = LogManager.getLogger(EventMacroUtil.class); public static final String ON_CHANGE_MAP_CALLBACK = "onChangeMap"; + public String priorMapID = + MapTool.getFrame().getCurrentZoneRenderer().getZone().getId().toString(); public ZoneLoadedListener() { new MapToolEventBus().getMainEventBus().register(this); @@ -38,6 +41,12 @@ public ZoneLoadedListener() { @Subscribe public void OnChangedMap(ZoneLoaded event) { ZoneRenderer currentZR = MapTool.getFrame().getCurrentZoneRenderer(); + String oCMoutput = currentZR.getZone().getId().toString(); + for (ZoneRenderer zr : MapTool.getFrame().getZoneRenderers()) { + if (Objects.equals(zr.getZone().getId().toString(), priorMapID)) { + oCMoutput = oCMoutput + ", " + priorMapID; + } + } try { var libs = new LibraryManager().getLegacyEventTargets(ON_CHANGE_MAP_CALLBACK).get(); if (libs.isEmpty()) { @@ -47,11 +56,7 @@ public void OnChangedMap(ZoneLoaded event) { try { String libraryNamespace = handler.getNamespace().get(); EventMacroUtil.callEventHandler( - ON_CHANGE_MAP_CALLBACK, - libraryNamespace, - currentZR.getZone().getId().toString(), - null, - Collections.emptyMap()); + ON_CHANGE_MAP_CALLBACK, libraryNamespace, oCMoutput, null, Collections.emptyMap()); } catch (InterruptedException | ExecutionException e) { LOGGER.error(I18N.getText("library.error.notFound"), e); throw new AssertionError("Error retrieving library namespace"); @@ -60,5 +65,6 @@ public void OnChangedMap(ZoneLoaded event) { } catch (InterruptedException | ExecutionException e) { LOGGER.error(I18N.getText("library.error.retrievingEventHandler"), e); } + priorMapID = currentZR.getZone().getId().toString(); } }