diff --git a/src/main/java/de/extio/game_engine/module/AbstractModule.java b/src/main/java/de/extio/game_engine/module/AbstractModule.java index 07b5324..4599c5a 100644 --- a/src/main/java/de/extio/game_engine/module/AbstractModule.java +++ b/src/main/java/de/extio/game_engine/module/AbstractModule.java @@ -24,6 +24,10 @@ public abstract class AbstractModule { public String getId() { return this.id; } + + public boolean isProtected() { + return false; + } public void onLoad() { diff --git a/src/main/java/de/extio/game_engine/module/ModuleServiceImpl.java b/src/main/java/de/extio/game_engine/module/ModuleServiceImpl.java index 49f8ecd..3170fea 100644 --- a/src/main/java/de/extio/game_engine/module/ModuleServiceImpl.java +++ b/src/main/java/de/extio/game_engine/module/ModuleServiceImpl.java @@ -117,6 +117,10 @@ public class ModuleServiceImpl implements ModuleService, ApplicationListener m.getId().equals(id))) { + LOGGER.info("Cannot unload protected active module {}", id); + return; + } this.changeActiveState(id, false); this.modulesAll.remove(module); @@ -147,6 +151,9 @@ public class ModuleServiceImpl implements ModuleService, ApplicationListener { if (!active) { + if (module.isProtected()) { + return; + } if (module instanceof final AbstractClientModule clientModule) { this.changeDisplayState(clientModule.getId(), false); } diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java index 4ea59c6..e4f993a 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java @@ -395,6 +395,11 @@ public class G2DRenderer implements Renderer { public static class G2DRendererModule extends AbstractClientModule { + @Override + public boolean isProtected() { + return true; + } + @Override public boolean isAlwaysDisplay() { return true;