refactor: apply 'one folder = one purpose' rule to overflowed packages

- Split by sub-purpose: storage/sql -> schema/+query/+repo/, adaptive/core ->
  calc/+metrics/+model/, command/admin -> ops/+support/, api/event ->
  session/+score/+generation/, menu/core -> screen/, config/core -> merge/,
  config/options -> section/, player/service -> ui/, hook/papi -> resolver/
  (done), mode/impl -> solo/+multi/+barrier/ (done)
- Move util/gui migration stubs -> menu/gui; lpschem POJOs -> pojo/
- Cross-package classes made public (signatures unchanged); fixed imports
- docs/ARCHITECTURE.md + TODO.md updated
- Build green: checkstyle 0 errors, PMD 34
This commit is contained in:
loki5512344 2026-08-05 18:50:39 +02:00
parent 81788e71ed
commit de47bce56e
Signed by: boba
GPG key ID: 253067914055423B
88 changed files with 228 additions and 167 deletions

View file

@ -3,7 +3,7 @@ package dev.loki.loparkour.menu.community;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

View file

@ -5,7 +5,7 @@ import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.leaderboard.core.Leaderboard;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import dev.loki.loparkour.mode.base.Mode;
import dev.lolib.gui.InventoryGUI;
import org.bukkit.entity.Player;

View file

@ -4,7 +4,7 @@ import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.leaderboard.core.Leaderboard;
import dev.loki.loparkour.leaderboard.model.Score;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import dev.loki.loparkour.mode.base.Mode;
import dev.loki.loparkour.player.core.ParkourUser;
import dev.lolib.gui.InventoryGUI;

View file

@ -8,6 +8,7 @@ import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -10,6 +10,7 @@ import dev.loki.loparkour.menu.play.SingleMenu;
import dev.loki.loparkour.menu.play.SpectatorMenu;
import dev.loki.loparkour.menu.settings.LangMenu;
import dev.loki.loparkour.menu.settings.ParkourSettingsMenu;
import dev.loki.loparkour.menu.core.screen.MainMenu;
import dev.loki.loparkour.menu.settings.SettingsMenu;
public final class Menus {

View file

@ -1,4 +1,4 @@
package dev.loki.loparkour.menu.core;
package dev.loki.loparkour.menu.core.screen;
import dev.loki.loparkour.player.core.ParkourUser;
import org.bukkit.entity.Player;
@ -33,7 +33,7 @@ public abstract class DynamicMenu {
/*
public void registerMainItem(
int row, int id,
BiFunction<@NotNull Player, @Nullable ParkourUser, dev.loki.loparkour.util.gui.MenuItem> item,
BiFunction<@NotNull Player, @Nullable ParkourUser, dev.loki.loparkour.menu.gui.MenuItem> item,
Predicate<Player> shouldDisplay) {
if (id < 0 || row < 0 || row > 4) {
return;
@ -82,7 +82,7 @@ public abstract class DynamicMenu {
*/
protected record ItemContainer(
int id,
BiFunction<@NotNull Player, @Nullable ParkourUser, dev.loki.loparkour.util.gui.MenuItem> item,
BiFunction<@NotNull Player, @Nullable ParkourUser, dev.loki.loparkour.menu.gui.MenuItem> item,
Predicate<Player> predicate
) {}
}

View file

@ -1,7 +1,9 @@
package dev.loki.loparkour.menu.core;
package dev.loki.loparkour.menu.core.screen;
import dev.loki.loparkour.config.core.Config;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.player.core.ParkourUser;
import dev.lolib.gui.InventoryGUI;
import org.bukkit.entity.Player;

View file

@ -1,4 +1,4 @@
package dev.loki.loparkour.menu.core;
package dev.loki.loparkour.menu.core.screen;
import dev.loki.loparkour.config.core.Config;
import dev.loki.loparkour.config.options.Option;

View file

@ -0,0 +1,30 @@
package dev.loki.loparkour.menu.gui;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.util.item.Item;
import org.bukkit.entity.Player;
/**
* Legacy menu stub — real menus use LoLib {@link dev.lolib.gui.InventoryGUI}.
*/
public class Menu {
private final int rows;
private final String title;
public Menu(int rows, String title) {
this.rows = rows;
this.title = title;
}
public Menu item(int slot, Item item) {
return this;
}
public Menu distributeRowsEvenly() {
return this;
}
public void open(Player player) {
Locales.send(player, "other.menu_unavailable", title, rows);
}
}

View file

@ -0,0 +1,19 @@
package dev.loki.loparkour.menu.gui;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
/**
* Menu item holder for migration from vilib
*/
public class MenuItem {
private final ItemStack item;
public MenuItem(@NotNull ItemStack item) {
this.item = item;
}
public ItemStack getItem() {
return item;
}
}

View file

@ -0,0 +1,42 @@
package dev.loki.loparkour.menu.gui;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.util.item.Item;
import org.bukkit.entity.Player;
import java.util.List;
/**
* Legacy paged menu stub — real menus use LoLib GUI.
*/
public class PagedMenu {
private final int rows;
private final String title;
private List<Item> items = List.of();
public PagedMenu(int rows, String title) {
this.rows = rows;
this.title = title;
}
public PagedMenu addToDisplay(List<Item> items) {
this.items = items;
return this;
}
public PagedMenu item(int slot, Item item) {
return this;
}
public PagedMenu nextPage(int slot, Item item) {
return this;
}
public PagedMenu prevPage(int slot, Item item) {
return this;
}
public void open(Player player) {
Locales.send(player, "other.paged_menu_unavailable", title, rows, items.size());
}
}

View file

@ -0,0 +1,19 @@
package dev.loki.loparkour.menu.gui;
import dev.loki.loparkour.util.item.Item;
import org.bukkit.event.inventory.InventoryClickEvent;
import java.util.function.Consumer;
/**
* Temporary stub for SliderItem during migration
*/
public class SliderItem {
public SliderItem initial(int value) {
return this;
}
public SliderItem add(int index, Item item, Consumer<InventoryClickEvent> handler) {
return this;
}
}

View file

@ -3,7 +3,7 @@ package dev.loki.loparkour.menu.lobby;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import dev.loki.loparkour.player.core.ParkourUser;
import dev.loki.loparkour.session.core.Session;
import dev.loki.loparkour.util.text.ColorUtil;

View file

@ -3,7 +3,7 @@ package dev.loki.loparkour.menu.play;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

View file

@ -5,7 +5,7 @@ import dev.loki.loparkour.config.core.Config;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import dev.loki.loparkour.player.core.ParkourPlayer;
import dev.loki.loparkour.style.core.Style;
import dev.loki.loparkour.util.text.ColorUtil;

View file

@ -3,7 +3,7 @@ package dev.loki.loparkour.menu.settings;
import dev.loki.loparkour.config.locale.Locales;
import dev.loki.loparkour.menu.core.LPMenu;
import dev.loki.loparkour.menu.core.Menus;
import dev.loki.loparkour.menu.core.ParkourOption;
import dev.loki.loparkour.menu.core.screen.ParkourOption;
import dev.loki.loparkour.player.core.ParkourPlayer;
import dev.loki.loparkour.player.core.ParkourUser;
import dev.lolib.gui.InventoryGUI;