Add Holograms integration and Sub-GUI editors

Holograms:
- HologramManager with auto-detection of HolographicDisplays/DecentHolograms
- HologramProvider interface and implementations
- HologramConfig for per-mine configuration
- /lm hologram <mine> [on|off] command
- Updates every second showing mine name, fill %, progress bar, and timer

Sub-GUI Editors:
- BlocksGui - edit block weights with +/- clicks
- BlockMaterialSelectionGui - paginated material picker
- ResetGui - configure reset interval, percent trigger, message, commands
- RewardsGui - manage reward entries
- All holders moved to gui/mine/holder/
- Editors moved to gui/mine/edit/
- Main GUI (MineEditGui) moved to gui/mine/main/

Package structure reorganized to maintain max 6 files per folder.
This commit is contained in:
loki5512344 2026-06-01 10:38:00 +02:00
parent 46a9c98af6
commit 11f31e5b7a
22 changed files with 1682 additions and 45 deletions

View file

@ -4,6 +4,7 @@ import dev.loki.lomines.core.mine.MineTicker;
import dev.loki.lomines.core.mine.Mines;
import dev.loki.lomines.data.stats.StatsManager;
import dev.loki.lomines.integration.IntegrationManager;
import dev.loki.lomines.integration.hologram.HologramManager;
import dev.loki.lomines.wand.WandParticleService;
import dev.loki.lomines.wand.group.GroupWandManager;
import dev.lolib.commands.CommandManager;
@ -23,6 +24,7 @@ public final class LoMinesPlugin extends LoPlugin {
private CommandManager commandManager;
private IntegrationManager integrationManager;
private WandParticleService wandParticleService;
private HologramManager hologramManager;
@Override
protected void enable() {
@ -39,6 +41,7 @@ public final class LoMinesPlugin extends LoPlugin {
this.commandManager = components.commandManager();
this.integrationManager = components.integrationManager();
this.wandParticleService = new WandParticleService(this);
this.hologramManager = new HologramManager(this);
initializer.loadMines(mines);
this.mineTicker = initializer.startTicker(mines);
@ -85,6 +88,10 @@ public final class LoMinesPlugin extends LoPlugin {
wandParticleService.stopAll();
}
if (hologramManager != null) {
hologramManager.shutdown();
}
loLogger().info("LoMines has been disabled!");
} catch (Exception e) {
loLogger().error("Error during plugin shutdown: " + e.getMessage());
@ -122,4 +129,8 @@ public final class LoMinesPlugin extends LoPlugin {
public WandParticleService getWandParticleService() {
return wandParticleService;
}
public HologramManager getHologramManager() {
return hologramManager;
}
}