From eebe4b7815d72ed6d40f1c32360e0d216f26a768 Mon Sep 17 00:00:00 2001 From: extio-de Date: Sun, 8 Feb 2026 15:33:03 +0100 Subject: [PATCH] feat(module): implement isProtected method in AbstractModule and G2DRendererModule --- .../java/de/extio/game_engine/module/AbstractModule.java | 4 ++++ .../de/extio/game_engine/module/ModuleServiceImpl.java | 7 +++++++ .../de/extio/game_engine/renderer/g2d/G2DRenderer.java | 5 +++++ 3 files changed, 16 insertions(+) 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;