feat(gui): add mine editor GUI system

New GUI classes:
- MineEditGui.java - main editor with navigation to sub-editors
- MineEditGuiHolder.java - inventory holder for editor
- ConfirmDeleteGui.java - confirmation dialog for mine deletion
- ConfirmDeleteGuiHolder.java - inventory holder for confirmation
- MineEditGuiListener.java - handles clicks in editor GUIs

Updated:
- AdminCommands.java - add /lm edit <mine> command
- RegistrationManager.java - register MineEditGuiListener
- plugin.yml - add lomines.admin.edit permission

Features:
- Visual editor showing mine configuration sections
- Blocks, Regions, Reset, Rewards, Teleport, UI sections
- Save and Delete actions with confirmation
- Info panel showing mine status (blocks, volume, percent)

Sub-editors (placeholder, to be implemented):
- BlockEditGui - edit block types and weights
- ResetEditGui - edit reset interval and triggers
- RewardEditGui - edit mining rewards
- TeleportEditGui - edit teleport on reset
- UIEditGui - edit action bar settings
This commit is contained in:
loki5512344 2026-05-31 22:23:46 +02:00
parent 56249f47cf
commit a9c8a0c323
8 changed files with 654 additions and 2 deletions

View file

@ -8,6 +8,7 @@ import dev.loki.lomines.command.StatsCommands;
import dev.loki.lomines.integration.IntegrationManager;
import dev.loki.lomines.listener.BlockBreakListener;
import dev.loki.lomines.listener.GroupGuiListener;
import dev.loki.lomines.listener.MineEditGuiListener;
import dev.loki.lomines.listener.PlayerInteractListener;
import dev.loki.lomines.listener.PlayerJoinListener;
import dev.lolib.commands.CommandManager;
@ -46,6 +47,7 @@ final class RegistrationManager {
plugin.getServer().getPluginManager().registerEvents(new BlockBreakListener(plugin), plugin);
plugin.getServer().getPluginManager().registerEvents(new PlayerInteractListener(plugin), plugin);
plugin.getServer().getPluginManager().registerEvents(new GroupGuiListener(plugin), plugin);
plugin.getServer().getPluginManager().registerEvents(new MineEditGuiListener(plugin), plugin);
if (plugin.getConfig().getBoolean("statistics-enabled", true)) {
plugin.getServer().getPluginManager().registerEvents(new PlayerJoinListener(plugin), plugin);