diff --git a/src/main/java/net/rptools/maptool/client/events/ChatMessageAdded.java b/src/main/java/net/rptools/maptool/client/events/ChatMessageAdded.java
index cc7a9e1ff4..5cd75b3bda 100644
--- a/src/main/java/net/rptools/maptool/client/events/ChatMessageAdded.java
+++ b/src/main/java/net/rptools/maptool/client/events/ChatMessageAdded.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.TextMessage;
-public record ChatMessageAdded(TextMessage message) {}
+public record ChatMessageAdded(TextMessage message) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/OverlayVisibilityChanged.java b/src/main/java/net/rptools/maptool/client/events/OverlayVisibilityChanged.java
index ae6e5811cc..3310e73548 100644
--- a/src/main/java/net/rptools/maptool/client/events/OverlayVisibilityChanged.java
+++ b/src/main/java/net/rptools/maptool/client/events/OverlayVisibilityChanged.java
@@ -15,5 +15,7 @@
package net.rptools.maptool.client.events;
import net.rptools.maptool.client.ui.htmlframe.HTMLOverlayManager;
+import net.rptools.maptool.events.MTEvent;
-public record OverlayVisibilityChanged(HTMLOverlayManager overlay, boolean isVisible) {}
+public record OverlayVisibilityChanged(HTMLOverlayManager overlay, boolean isVisible)
+ implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/PlayerConnected.java b/src/main/java/net/rptools/maptool/client/events/PlayerConnected.java
index bedd35f374..e14ac402bd 100644
--- a/src/main/java/net/rptools/maptool/client/events/PlayerConnected.java
+++ b/src/main/java/net/rptools/maptool/client/events/PlayerConnected.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.player.Player;
-public record PlayerConnected(Player player, boolean isLocal) {}
+public record PlayerConnected(Player player, boolean isLocal) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/PlayerDisconnected.java b/src/main/java/net/rptools/maptool/client/events/PlayerDisconnected.java
index 68f96e022c..f370c10153 100644
--- a/src/main/java/net/rptools/maptool/client/events/PlayerDisconnected.java
+++ b/src/main/java/net/rptools/maptool/client/events/PlayerDisconnected.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.player.Player;
-public record PlayerDisconnected(Player player) {}
+public record PlayerDisconnected(Player player) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/PlayerStatusChanged.java b/src/main/java/net/rptools/maptool/client/events/PlayerStatusChanged.java
index a76b45709a..bf6b3f3972 100644
--- a/src/main/java/net/rptools/maptool/client/events/PlayerStatusChanged.java
+++ b/src/main/java/net/rptools/maptool/client/events/PlayerStatusChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.player.Player;
-public record PlayerStatusChanged(Player player) {}
+public record PlayerStatusChanged(Player player) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/PreferencesChanged.java b/src/main/java/net/rptools/maptool/client/events/PreferencesChanged.java
index a0acee427a..b713960f15 100644
--- a/src/main/java/net/rptools/maptool/client/events/PreferencesChanged.java
+++ b/src/main/java/net/rptools/maptool/client/events/PreferencesChanged.java
@@ -14,4 +14,6 @@
*/
package net.rptools.maptool.client.events;
-public record PreferencesChanged() {}
+import net.rptools.maptool.events.MTEvent;
+
+public record PreferencesChanged() implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/RepaintZoneRequested.java b/src/main/java/net/rptools/maptool/client/events/RepaintZoneRequested.java
index 43cb1d9921..1277dee5c4 100644
--- a/src/main/java/net/rptools/maptool/client/events/RepaintZoneRequested.java
+++ b/src/main/java/net/rptools/maptool/client/events/RepaintZoneRequested.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record RepaintZoneRequested(Zone zone) {}
+public record RepaintZoneRequested(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/ServerDisconnected.java b/src/main/java/net/rptools/maptool/client/events/ServerDisconnected.java
index 65eb33514a..fcd6862090 100644
--- a/src/main/java/net/rptools/maptool/client/events/ServerDisconnected.java
+++ b/src/main/java/net/rptools/maptool/client/events/ServerDisconnected.java
@@ -14,4 +14,6 @@
*/
package net.rptools.maptool.client.events;
-public record ServerDisconnected() {}
+import net.rptools.maptool.events.MTEvent;
+
+public record ServerDisconnected() implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/TokenHoverEnter.java b/src/main/java/net/rptools/maptool/client/events/TokenHoverEnter.java
index 644710d53b..1511c74ec3 100644
--- a/src/main/java/net/rptools/maptool/client/events/TokenHoverEnter.java
+++ b/src/main/java/net/rptools/maptool/client/events/TokenHoverEnter.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
import net.rptools.maptool.model.Zone;
@@ -27,4 +28,5 @@
* @param altDown is the alt-key down.
*/
public record TokenHoverEnter(
- Token token, Zone zone, boolean shiftDown, boolean controlDown, boolean altDown) {}
+ Token token, Zone zone, boolean shiftDown, boolean controlDown, boolean altDown)
+ implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/TokenHoverExit.java b/src/main/java/net/rptools/maptool/client/events/TokenHoverExit.java
index a17cc670e9..c171ba2e7e 100644
--- a/src/main/java/net/rptools/maptool/client/events/TokenHoverExit.java
+++ b/src/main/java/net/rptools/maptool/client/events/TokenHoverExit.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
import net.rptools.maptool.model.Zone;
@@ -27,4 +28,5 @@
* @param altDown is the alt-key down.
*/
public record TokenHoverExit(
- Token token, Zone zone, boolean shiftDown, boolean controlDown, boolean altDown) {}
+ Token token, Zone zone, boolean shiftDown, boolean controlDown, boolean altDown)
+ implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/ZoneActivated.java b/src/main/java/net/rptools/maptool/client/events/ZoneActivated.java
index 78b432cf2c..b5b692e9db 100644
--- a/src/main/java/net/rptools/maptool/client/events/ZoneActivated.java
+++ b/src/main/java/net/rptools/maptool/client/events/ZoneActivated.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneActivated(Zone zone) {}
+public record ZoneActivated(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/ZoneDeactivated.java b/src/main/java/net/rptools/maptool/client/events/ZoneDeactivated.java
index bf693376e2..5c023ce7e2 100644
--- a/src/main/java/net/rptools/maptool/client/events/ZoneDeactivated.java
+++ b/src/main/java/net/rptools/maptool/client/events/ZoneDeactivated.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneDeactivated(Zone zone) {}
+public record ZoneDeactivated(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/ZoneLoaded.java b/src/main/java/net/rptools/maptool/client/events/ZoneLoaded.java
index 7b2178c6da..8f93755adc 100644
--- a/src/main/java/net/rptools/maptool/client/events/ZoneLoaded.java
+++ b/src/main/java/net/rptools/maptool/client/events/ZoneLoaded.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneLoaded(Zone zone) {}
+public record ZoneLoaded(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/events/ZoneLoading.java b/src/main/java/net/rptools/maptool/client/events/ZoneLoading.java
index 10fd977f35..6c73883e38 100644
--- a/src/main/java/net/rptools/maptool/client/events/ZoneLoading.java
+++ b/src/main/java/net/rptools/maptool/client/events/ZoneLoading.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.client.events;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneLoading(Zone zone) {}
+public record ZoneLoading(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/ui/theme/ThemeLoadedEvent.java b/src/main/java/net/rptools/maptool/client/ui/theme/ThemeLoadedEvent.java
index a25a5d0d68..7ce5e69b4b 100644
--- a/src/main/java/net/rptools/maptool/client/ui/theme/ThemeLoadedEvent.java
+++ b/src/main/java/net/rptools/maptool/client/ui/theme/ThemeLoadedEvent.java
@@ -15,5 +15,6 @@
package net.rptools.maptool.client.ui.theme;
import net.rptools.maptool.client.ui.theme.ThemeSupport.ThemeDetails;
+import net.rptools.maptool.events.MTEvent;
-public record ThemeLoadedEvent(ThemeDetails themeDetails) {}
+public record ThemeLoadedEvent(ThemeDetails themeDetails) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/client/ui/zone/SelectionModel.java b/src/main/java/net/rptools/maptool/client/ui/zone/SelectionModel.java
index 9a813c8066..3e6a2dba2c 100644
--- a/src/main/java/net/rptools/maptool/client/ui/zone/SelectionModel.java
+++ b/src/main/java/net/rptools/maptool/client/ui/zone/SelectionModel.java
@@ -21,13 +21,14 @@
import java.util.List;
import java.util.Set;
import net.rptools.maptool.client.AppUtil;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.events.MapToolEventBus;
import net.rptools.maptool.model.GUID;
import net.rptools.maptool.model.Zone;
/** Models the current and historical selections for a ZoneRenderer. */
public class SelectionModel {
- public record SelectionChanged(Zone zone) {}
+ public record SelectionChanged(Zone zone) implements MTEvent {}
/** The zone in which the selections are made. */
private final Zone zone;
diff --git a/src/main/java/net/rptools/maptool/events/MTEvent.java b/src/main/java/net/rptools/maptool/events/MTEvent.java
new file mode 100644
index 0000000000..de4f5ab53d
--- /dev/null
+++ b/src/main/java/net/rptools/maptool/events/MTEvent.java
@@ -0,0 +1,25 @@
+/*
+ * This software Copyright by the RPTools.net development team, and
+ * licensed under the Affero GPL Version 3 or, at your option, any later
+ * version.
+ *
+ * MapTool Source Code is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License * along with this source Code. If not, please visit
+ * and specifically the Affero license
+ * text at .
+ */
+package net.rptools.maptool.events;
+
+/**
+ *
+ *
+ * Event for {@link MapToolEventBus}
+ *
+ * Implement this whenever creating a new Event type.
+ * It makes it easier to find events no matter where they are hiding.
+ */
+public interface MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/events/MapToolEventBus.java b/src/main/java/net/rptools/maptool/events/MapToolEventBus.java
index cafd187adb..882f25d642 100644
--- a/src/main/java/net/rptools/maptool/events/MapToolEventBus.java
+++ b/src/main/java/net/rptools/maptool/events/MapToolEventBus.java
@@ -25,7 +25,16 @@ public class MapToolEventBus {
/**
* Returns the main MapTool {@link EventBus}.
*
- * @return the main Maptool {@link EventBus}.
+ * @return the main MapTool {@link EventBus}.
+ */
+ public static EventBus get() {
+ return mainEventBus;
+ }
+
+ /**
+ * Returns the main MapTool {@link EventBus}.
+ *
+ * @return the main MapTool {@link EventBus}.
*/
public EventBus getMainEventBus() {
return mainEventBus;
diff --git a/src/main/java/net/rptools/maptool/model/library/AddOnsAddedEvent.java b/src/main/java/net/rptools/maptool/model/library/AddOnsAddedEvent.java
index 1ff3e1c105..664dd27c60 100644
--- a/src/main/java/net/rptools/maptool/model/library/AddOnsAddedEvent.java
+++ b/src/main/java/net/rptools/maptool/model/library/AddOnsAddedEvent.java
@@ -15,5 +15,6 @@
package net.rptools.maptool.model.library;
import java.util.Set;
+import net.rptools.maptool.events.MTEvent;
-public record AddOnsAddedEvent(Set addOns) {}
+public record AddOnsAddedEvent(Set addOns) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/library/AddOnsRemovedEvent.java b/src/main/java/net/rptools/maptool/model/library/AddOnsRemovedEvent.java
index c8c26a05a8..34fa78abfe 100644
--- a/src/main/java/net/rptools/maptool/model/library/AddOnsRemovedEvent.java
+++ b/src/main/java/net/rptools/maptool/model/library/AddOnsRemovedEvent.java
@@ -15,5 +15,6 @@
package net.rptools.maptool.model.library;
import java.util.Set;
+import net.rptools.maptool.events.MTEvent;
-public record AddOnsRemovedEvent(Set addOns) {}
+public record AddOnsRemovedEvent(Set addOns) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/tokens/TokenMacroChanged.java b/src/main/java/net/rptools/maptool/model/tokens/TokenMacroChanged.java
index a529791504..60dd7093dd 100644
--- a/src/main/java/net/rptools/maptool/model/tokens/TokenMacroChanged.java
+++ b/src/main/java/net/rptools/maptool/model/tokens/TokenMacroChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.tokens;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
-public record TokenMacroChanged(Token token) {}
+public record TokenMacroChanged(Token token) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/tokens/TokenPanelChanged.java b/src/main/java/net/rptools/maptool/model/tokens/TokenPanelChanged.java
index 1072904e75..91003b2a1e 100644
--- a/src/main/java/net/rptools/maptool/model/tokens/TokenPanelChanged.java
+++ b/src/main/java/net/rptools/maptool/model/tokens/TokenPanelChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.tokens;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
-public record TokenPanelChanged(Token token) {}
+public record TokenPanelChanged(Token token) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/BoardChanged.java b/src/main/java/net/rptools/maptool/model/zones/BoardChanged.java
index 972dcefee4..27f471eca8 100644
--- a/src/main/java/net/rptools/maptool/model/zones/BoardChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/BoardChanged.java
@@ -16,6 +16,8 @@
import java.awt.*;
import net.rptools.lib.MD5Key;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record BoardChanged(Zone zone, MD5Key asset, Point position, double scaleX, double scaleY) {}
+public record BoardChanged(Zone zone, MD5Key asset, Point position, double scaleX, double scaleY)
+ implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/DrawableAdded.java b/src/main/java/net/rptools/maptool/model/zones/DrawableAdded.java
index 3916da52ba..21ed3d09c3 100644
--- a/src/main/java/net/rptools/maptool/model/zones/DrawableAdded.java
+++ b/src/main/java/net/rptools/maptool/model/zones/DrawableAdded.java
@@ -14,7 +14,8 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
import net.rptools.maptool.model.drawing.DrawnElement;
-public record DrawableAdded(Zone zone, DrawnElement drawnElement) {}
+public record DrawableAdded(Zone zone, DrawnElement drawnElement) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/DrawableChanged.java b/src/main/java/net/rptools/maptool/model/zones/DrawableChanged.java
index 3fc0a86306..8ade9c9e39 100644
--- a/src/main/java/net/rptools/maptool/model/zones/DrawableChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/DrawableChanged.java
@@ -14,7 +14,8 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
import net.rptools.maptool.model.drawing.DrawnElement;
-public record DrawableChanged(Zone zone, DrawnElement drawnElement) {}
+public record DrawableChanged(Zone zone, DrawnElement drawnElement) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/DrawableRemoved.java b/src/main/java/net/rptools/maptool/model/zones/DrawableRemoved.java
index 4bbbe6982a..f2c0c2d002 100644
--- a/src/main/java/net/rptools/maptool/model/zones/DrawableRemoved.java
+++ b/src/main/java/net/rptools/maptool/model/zones/DrawableRemoved.java
@@ -14,7 +14,8 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
import net.rptools.maptool.model.drawing.DrawnElement;
-public record DrawableRemoved(Zone zone, DrawnElement drawnElement) {}
+public record DrawableRemoved(Zone zone, DrawnElement drawnElement) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/FogChanged.java b/src/main/java/net/rptools/maptool/model/zones/FogChanged.java
index 32777420e3..ee9d13acc4 100644
--- a/src/main/java/net/rptools/maptool/model/zones/FogChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/FogChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record FogChanged(Zone zone) {}
+public record FogChanged(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/GridChanged.java b/src/main/java/net/rptools/maptool/model/zones/GridChanged.java
index 3aa7805608..93f189a165 100644
--- a/src/main/java/net/rptools/maptool/model/zones/GridChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/GridChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record GridChanged(Zone zone) {}
+public record GridChanged(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/InitiativeListChanged.java b/src/main/java/net/rptools/maptool/model/zones/InitiativeListChanged.java
index c5cca3d65c..ae4fb8cd9c 100644
--- a/src/main/java/net/rptools/maptool/model/zones/InitiativeListChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/InitiativeListChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.InitiativeList;
-public record InitiativeListChanged(InitiativeList initiativeList) {}
+public record InitiativeListChanged(InitiativeList initiativeList) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/LabelAdded.java b/src/main/java/net/rptools/maptool/model/zones/LabelAdded.java
index d413abee5d..c91683055f 100644
--- a/src/main/java/net/rptools/maptool/model/zones/LabelAdded.java
+++ b/src/main/java/net/rptools/maptool/model/zones/LabelAdded.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Label;
-public record LabelAdded(Label label) {}
+public record LabelAdded(Label label) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/LabelChanged.java b/src/main/java/net/rptools/maptool/model/zones/LabelChanged.java
index e32afe5f88..5f2c8f5878 100644
--- a/src/main/java/net/rptools/maptool/model/zones/LabelChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/LabelChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Label;
-public record LabelChanged(Label label) {}
+public record LabelChanged(Label label) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/LabelRemoved.java b/src/main/java/net/rptools/maptool/model/zones/LabelRemoved.java
index 86a53dfe1d..e01598506e 100644
--- a/src/main/java/net/rptools/maptool/model/zones/LabelRemoved.java
+++ b/src/main/java/net/rptools/maptool/model/zones/LabelRemoved.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Label;
-public record LabelRemoved(Label label) {}
+public record LabelRemoved(Label label) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/MaskTopologyChanged.java b/src/main/java/net/rptools/maptool/model/zones/MaskTopologyChanged.java
index 285bb5f646..d152af219e 100644
--- a/src/main/java/net/rptools/maptool/model/zones/MaskTopologyChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/MaskTopologyChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record MaskTopologyChanged(Zone zone) {}
+public record MaskTopologyChanged(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/TokenEdited.java b/src/main/java/net/rptools/maptool/model/zones/TokenEdited.java
index bbbd9dbb7c..32992a9d0e 100644
--- a/src/main/java/net/rptools/maptool/model/zones/TokenEdited.java
+++ b/src/main/java/net/rptools/maptool/model/zones/TokenEdited.java
@@ -14,7 +14,8 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
import net.rptools.maptool.model.Zone;
-public record TokenEdited(Zone zone, Token token) {}
+public record TokenEdited(Zone zone, Token token) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/TokensAdded.java b/src/main/java/net/rptools/maptool/model/zones/TokensAdded.java
index b2751ca96b..a4a19ee01a 100644
--- a/src/main/java/net/rptools/maptool/model/zones/TokensAdded.java
+++ b/src/main/java/net/rptools/maptool/model/zones/TokensAdded.java
@@ -15,7 +15,8 @@
package net.rptools.maptool.model.zones;
import java.util.List;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
import net.rptools.maptool.model.Zone;
-public record TokensAdded(Zone zone, List tokens) {}
+public record TokensAdded(Zone zone, List tokens) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/TokensChanged.java b/src/main/java/net/rptools/maptool/model/zones/TokensChanged.java
index 5bf1b5a606..3491e93bee 100644
--- a/src/main/java/net/rptools/maptool/model/zones/TokensChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/TokensChanged.java
@@ -15,7 +15,8 @@
package net.rptools.maptool.model.zones;
import java.util.List;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
import net.rptools.maptool.model.Zone;
-public record TokensChanged(Zone zone, List tokens) {}
+public record TokensChanged(Zone zone, List tokens) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/TokensRemoved.java b/src/main/java/net/rptools/maptool/model/zones/TokensRemoved.java
index 4898304db1..ec8407e218 100644
--- a/src/main/java/net/rptools/maptool/model/zones/TokensRemoved.java
+++ b/src/main/java/net/rptools/maptool/model/zones/TokensRemoved.java
@@ -15,7 +15,8 @@
package net.rptools.maptool.model.zones;
import java.util.List;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Token;
import net.rptools.maptool.model.Zone;
-public record TokensRemoved(Zone zone, List tokens) {}
+public record TokensRemoved(Zone zone, List tokens) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/WallTopologyChanged.java b/src/main/java/net/rptools/maptool/model/zones/WallTopologyChanged.java
index 5ec24a0145..a13f2a2426 100644
--- a/src/main/java/net/rptools/maptool/model/zones/WallTopologyChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/WallTopologyChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record WallTopologyChanged(Zone zone) {}
+public record WallTopologyChanged(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/ZoneAdded.java b/src/main/java/net/rptools/maptool/model/zones/ZoneAdded.java
index 39c3529dae..93d95d6dd6 100644
--- a/src/main/java/net/rptools/maptool/model/zones/ZoneAdded.java
+++ b/src/main/java/net/rptools/maptool/model/zones/ZoneAdded.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneAdded(Zone zone) {}
+public record ZoneAdded(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/ZoneLightingChanged.java b/src/main/java/net/rptools/maptool/model/zones/ZoneLightingChanged.java
index 1f7a46bdf7..2f05bff394 100644
--- a/src/main/java/net/rptools/maptool/model/zones/ZoneLightingChanged.java
+++ b/src/main/java/net/rptools/maptool/model/zones/ZoneLightingChanged.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneLightingChanged(Zone zone) {}
+public record ZoneLightingChanged(Zone zone) implements MTEvent {}
diff --git a/src/main/java/net/rptools/maptool/model/zones/ZoneRemoved.java b/src/main/java/net/rptools/maptool/model/zones/ZoneRemoved.java
index d7e9c32a5a..070d80c7a2 100644
--- a/src/main/java/net/rptools/maptool/model/zones/ZoneRemoved.java
+++ b/src/main/java/net/rptools/maptool/model/zones/ZoneRemoved.java
@@ -14,6 +14,7 @@
*/
package net.rptools.maptool.model.zones;
+import net.rptools.maptool.events.MTEvent;
import net.rptools.maptool.model.Zone;
-public record ZoneRemoved(Zone zone) {}
+public record ZoneRemoved(Zone zone) implements MTEvent {}