refactor: split 6 oversized packages into semantic subpackages
Structure debt list is now empty (FOLDER_DEBT = Set.of()), every folder
holds at most 4 java files:
- elytra/{mode,generator} -> elytra/core plus per-mode slices (close,
minspeed, obstacle, speeddemon, timetrial), 2 files each
- command/schematic -> command/schematic (4) + wand/ (2)
- generator/jump: JumpType -> jump/model/, SchematicBlockPlacer ->
jump/placement/schematic/
- player/core -> player/core (4) + PlayerSpawnSetup -> player/service (4)
18 files moved, imports/tests updated, 5 classes widened to public for
cross-package calls. No behavior change; check and build stay green.
This commit is contained in:
parent
e8b6569ccf
commit
4263df50a2
29 changed files with 63 additions and 62 deletions
|
|
@ -3,7 +3,7 @@ package dev.loki.loparkour.adaptive.core;
|
|||
import dev.loki.loparkour.adaptive.model.PlayerMetrics;
|
||||
import dev.loki.loparkour.adaptive.storage.StatsRepository;
|
||||
import dev.loki.loparkour.generator.core.coordinator.GeneratorEventListener;
|
||||
import dev.loki.loparkour.generator.jump.calculation.JumpType;
|
||||
import dev.loki.loparkour.generator.jump.model.JumpType;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package dev.loki.loparkour.adaptive.core.metrics;
|
||||
|
||||
import dev.loki.loparkour.adaptive.model.PlayerMetrics;
|
||||
import dev.loki.loparkour.generator.jump.calculation.JumpType;
|
||||
import dev.loki.loparkour.generator.jump.model.JumpType;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ import dev.loki.loparkour.hook.papi.PAPIHook;
|
|||
import dev.loki.loparkour.listener.gameplay.ParkourRestrictionListener;
|
||||
import dev.loki.loparkour.listener.schematic.SchematicWandListener;
|
||||
import dev.loki.loparkour.listener.player.PlayerConnectionListener;
|
||||
import dev.loki.loparkour.elytra.mode.CloseMode;
|
||||
import dev.loki.loparkour.elytra.mode.ElytraMode;
|
||||
import dev.loki.loparkour.elytra.mode.MinSpeedMode;
|
||||
import dev.loki.loparkour.elytra.mode.ObstacleMode;
|
||||
import dev.loki.loparkour.elytra.mode.SpeedDemonMode;
|
||||
import dev.loki.loparkour.elytra.mode.TimeTrialMode;
|
||||
import dev.loki.loparkour.elytra.close.CloseMode;
|
||||
import dev.loki.loparkour.elytra.core.ElytraMode;
|
||||
import dev.loki.loparkour.elytra.minspeed.MinSpeedMode;
|
||||
import dev.loki.loparkour.elytra.obstacle.ObstacleMode;
|
||||
import dev.loki.loparkour.elytra.speeddemon.SpeedDemonMode;
|
||||
import dev.loki.loparkour.elytra.timetrial.TimeTrialMode;
|
||||
import dev.loki.loparkour.mode.base.Modes;
|
||||
import dev.loki.loparkour.mode.impl.barrier.InvisibleBarrierMode;
|
||||
import dev.loki.loparkour.mode.impl.multi.CoopMode;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package dev.loki.loparkour.command.schematic;
|
|||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.command.player.PlayerCommandHandler;
|
||||
import dev.loki.loparkour.command.schematic.wand.SchematicWand;
|
||||
import dev.loki.loparkour.command.schematic.wand.SelectionStore;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.bukkit.Location;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package dev.loki.loparkour.command.schematic;
|
||||
package dev.loki.loparkour.command.schematic.wand;
|
||||
|
||||
import dev.loki.loparkour.command.schematic.SchematicCommandHandler;
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
|
|
@ -9,7 +10,7 @@ import org.bukkit.inventory.ItemStack;
|
|||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
final class SchematicWand {
|
||||
public final class SchematicWand {
|
||||
|
||||
private static ItemStack cachedWand;
|
||||
|
||||
|
|
@ -17,11 +18,11 @@ final class SchematicWand {
|
|||
}
|
||||
|
||||
@NotNull
|
||||
static ItemStack getWand() {
|
||||
public static ItemStack getWand() {
|
||||
return build().clone();
|
||||
}
|
||||
|
||||
static boolean isWand(@Nullable ItemStack item) {
|
||||
public static boolean isWand(@Nullable ItemStack item) {
|
||||
if (item == null || !item.hasItemMeta()) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -30,7 +31,7 @@ final class SchematicWand {
|
|||
&& meta.getPersistentDataContainer().has(SchematicCommandHandler.WAND_KEY, PersistentDataType.BYTE);
|
||||
}
|
||||
|
||||
static void clearCache() {
|
||||
public static void clearCache() {
|
||||
cachedWand = null;
|
||||
}
|
||||
|
||||
|
|
@ -1,16 +1,17 @@
|
|||
package dev.loki.loparkour.command.schematic;
|
||||
package dev.loki.loparkour.command.schematic.wand;
|
||||
|
||||
import dev.loki.loparkour.command.schematic.SchematicCommandHandler;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
final class SelectionStore {
|
||||
public final class SelectionStore {
|
||||
|
||||
private SelectionStore() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static Location[] get(@NotNull Player player) {
|
||||
public static Location[] get(@NotNull Player player) {
|
||||
Location[] sel = SchematicCommandHandler.SELECTIONS.get(player);
|
||||
if (sel == null) {
|
||||
sel = new Location[]{null, null};
|
||||
|
|
@ -19,7 +20,7 @@ final class SelectionStore {
|
|||
return sel;
|
||||
}
|
||||
|
||||
static void set(@NotNull Player player, @NotNull Location loc, int index) {
|
||||
public static void set(@NotNull Player player, @NotNull Location loc, int index) {
|
||||
final Location[] updated = get(player).clone();
|
||||
updated[index] = loc.clone();
|
||||
SchematicCommandHandler.SELECTIONS.put(player, updated);
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.close;
|
||||
|
||||
import dev.loki.loparkour.elytra.core.ElytraGenerator;
|
||||
import dev.loki.loparkour.elytra.section.ElytraPointType;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.mode;
|
||||
package dev.loki.loparkour.elytra.close;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.elytra.generator.CloseGenerator;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.ModeMessages;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.core;
|
||||
|
||||
import dev.loki.loparkour.elytra.section.ElytraSection;
|
||||
import dev.loki.loparkour.util.misc.Compat;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.core;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.elytra.section.ClientBlockChanger;
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.mode;
|
||||
package dev.loki.loparkour.elytra.core;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.elytra.generator.ElytraGenerator;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.ModeMessages;
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.minspeed;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.elytra.core.ElytraGenerator;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.mode;
|
||||
package dev.loki.loparkour.elytra.minspeed;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.elytra.generator.MinSpeedGenerator;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.ModeMessages;
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.obstacle;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.elytra.core.ElytraGenerator;
|
||||
import dev.loki.loparkour.elytra.section.ElytraPointType;
|
||||
import dev.loki.loparkour.elytra.section.ElytraSection;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.mode;
|
||||
package dev.loki.loparkour.elytra.obstacle;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.elytra.generator.ObstacleGenerator;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.ModeMessages;
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.speeddemon;
|
||||
|
||||
import dev.loki.loparkour.elytra.core.ElytraGenerator;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.mode;
|
||||
package dev.loki.loparkour.elytra.speeddemon;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.elytra.generator.SpeedDemonGenerator;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.ModeMessages;
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package dev.loki.loparkour.elytra.generator;
|
||||
package dev.loki.loparkour.elytra.timetrial;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.elytra.core.ElytraGenerator;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
|
||||
/**
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package dev.loki.loparkour.elytra.mode;
|
||||
package dev.loki.loparkour.elytra.timetrial;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.elytra.generator.TimeTrialGenerator;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.ModeMessages;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package dev.loki.loparkour.generator.core.coordinator;
|
||||
|
||||
import dev.loki.loparkour.generator.jump.calculation.JumpType;
|
||||
import dev.loki.loparkour.generator.jump.model.JumpType;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.generator.jump.calculation;
|
||||
package dev.loki.loparkour.generator.jump.model;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -2,6 +2,7 @@ package dev.loki.loparkour.generator.jump.placement;
|
|||
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.generator.jump.calculation.JumpCalculator;
|
||||
import dev.loki.loparkour.generator.jump.placement.schematic.SchematicBlockPlacer;
|
||||
import dev.loki.loparkour.util.misc.Probs;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.Block;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.generator.jump.placement;
|
|||
|
||||
import dev.loki.loparkour.api.core.Registry;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.generator.jump.calculation.JumpType;
|
||||
import dev.loki.loparkour.generator.jump.model.JumpType;
|
||||
import dev.loki.loparkour.style.core.Style;
|
||||
import dev.loki.loparkour.util.misc.MaterialUtil;
|
||||
import org.bukkit.Material;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
|||
/**
|
||||
* Computes the target block position for generated parkour blocks based on jump parameters.
|
||||
*/
|
||||
class BlockTargetSelector {
|
||||
public class BlockTargetSelector {
|
||||
|
||||
private static final int NO_FORCED_HEIGHT = Integer.MIN_VALUE;
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ class BlockTargetSelector {
|
|||
}
|
||||
|
||||
@NotNull
|
||||
List<Block> selectBlocks() {
|
||||
public List<Block> selectBlocks() {
|
||||
return selectBlocks(NO_FORCED_HEIGHT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
package dev.loki.loparkour.generator.jump.placement;
|
||||
package dev.loki.loparkour.generator.jump.placement.schematic;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.api.event.generation.ParkourSchematicGenerateEvent;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.generator.jump.placement.BlockTargetSelector;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import dev.loki.loparkour.schematic.core.ParkourSchematic;
|
||||
import dev.loki.loparkour.schematic.core.SchematicManager;
|
||||
|
|
@ -15,17 +16,17 @@ import java.util.List;
|
|||
/**
|
||||
* Pastes schematic parkour sections into the world and fires the related event.
|
||||
*/
|
||||
class SchematicBlockPlacer {
|
||||
public class SchematicBlockPlacer {
|
||||
|
||||
private final ParkourGenerator generator;
|
||||
private final BlockTargetSelector targetSelector;
|
||||
|
||||
SchematicBlockPlacer(@NotNull ParkourGenerator generator, @NotNull BlockTargetSelector targetSelector) {
|
||||
public SchematicBlockPlacer(@NotNull ParkourGenerator generator, @NotNull BlockTargetSelector targetSelector) {
|
||||
this.generator = generator;
|
||||
this.targetSelector = targetSelector;
|
||||
}
|
||||
|
||||
boolean placeSchematic() {
|
||||
public boolean placeSchematic() {
|
||||
final SchematicManager manager = LoParkour.getSchematicManager();
|
||||
if (manager == null) {
|
||||
return false;
|
||||
|
|
@ -2,12 +2,12 @@ package dev.loki.loparkour.mode.base;
|
|||
|
||||
import dev.loki.loparkour.api.core.Registry;
|
||||
import dev.loki.loparkour.duels.DuelsMode;
|
||||
import dev.loki.loparkour.elytra.mode.CloseMode;
|
||||
import dev.loki.loparkour.elytra.mode.ElytraMode;
|
||||
import dev.loki.loparkour.elytra.mode.MinSpeedMode;
|
||||
import dev.loki.loparkour.elytra.mode.ObstacleMode;
|
||||
import dev.loki.loparkour.elytra.mode.SpeedDemonMode;
|
||||
import dev.loki.loparkour.elytra.mode.TimeTrialMode;
|
||||
import dev.loki.loparkour.elytra.close.CloseMode;
|
||||
import dev.loki.loparkour.elytra.core.ElytraMode;
|
||||
import dev.loki.loparkour.elytra.minspeed.MinSpeedMode;
|
||||
import dev.loki.loparkour.elytra.obstacle.ObstacleMode;
|
||||
import dev.loki.loparkour.elytra.speeddemon.SpeedDemonMode;
|
||||
import dev.loki.loparkour.elytra.timetrial.TimeTrialMode;
|
||||
import dev.loki.loparkour.mode.impl.barrier.InvisibleBarrierMode;
|
||||
import dev.loki.loparkour.mode.impl.multi.CoopMode;
|
||||
import dev.loki.loparkour.mode.impl.multi.RaceMode;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
|||
import dev.loki.loparkour.mode.base.MultiMode;
|
||||
import dev.loki.loparkour.player.data.PreviousData;
|
||||
import dev.loki.loparkour.player.service.PlayerSettingsManager;
|
||||
import dev.loki.loparkour.player.service.PlayerSpawnSetup;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
import dev.loki.loparkour.world.core.Divider;
|
||||
import org.bukkit.Location;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
package dev.loki.loparkour.player.core;
|
||||
package dev.loki.loparkour.player.service;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import dev.loki.loparkour.player.service.ui.ParkourHotbar;
|
||||
import dev.loki.loparkour.scheduler.Scheduler;
|
||||
import org.bukkit.GameMode;
|
||||
|
|
@ -10,11 +11,11 @@ import org.bukkit.Location;
|
|||
/**
|
||||
* Prepares a parkour player's world state such as location, game mode and hotbar.
|
||||
*/
|
||||
final class PlayerSpawnSetup {
|
||||
public final class PlayerSpawnSetup {
|
||||
|
||||
private static final int HOTBAR_APPLY_DELAY = 5;
|
||||
|
||||
void setup(ParkourPlayer player, Location to) {
|
||||
public void setup(ParkourPlayer player, Location to) {
|
||||
if (to != null) {
|
||||
player.teleport(to);
|
||||
}
|
||||
|
|
@ -28,7 +29,7 @@ final class PlayerSpawnSetup {
|
|||
}
|
||||
}
|
||||
|
||||
void updateHotbar(ParkourPlayer player) {
|
||||
public void updateHotbar(ParkourPlayer player) {
|
||||
ParkourHotbar.apply(player);
|
||||
}
|
||||
}
|
||||
|
|
@ -25,13 +25,7 @@ class StructureRulesTest {
|
|||
private static final int MAX_LINES_PER_FILE = 200;
|
||||
|
||||
/** Known debt (docs/TODO.md, task 2). Remove entries as folders get split. */
|
||||
private static final Set<String> FOLDER_DEBT = Set.of(
|
||||
"dev/loki/loparkour/command/schematic",
|
||||
"dev/loki/loparkour/elytra/generator",
|
||||
"dev/loki/loparkour/elytra/mode",
|
||||
"dev/loki/loparkour/generator/jump/calculation",
|
||||
"dev/loki/loparkour/generator/jump/placement",
|
||||
"dev/loki/loparkour/player/core");
|
||||
private static final Set<String> FOLDER_DEBT = Set.of();
|
||||
|
||||
@Test
|
||||
void foldersHaveAtMostFourFiles() throws IOException {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue