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:
parent
81788e71ed
commit
de47bce56e
88 changed files with 228 additions and 167 deletions
|
|
@ -7,6 +7,9 @@ import dev.loki.loparkour.generator.core.model.Profile;
|
|||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import dev.loki.loparkour.adaptive.core.calc.DifficultyAdjuster;
|
||||
import dev.loki.loparkour.adaptive.core.calc.DifficultyCalculator;
|
||||
import dev.loki.loparkour.adaptive.core.calc.SkillAnalyzer;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ import org.bukkit.plugin.Plugin;
|
|||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import dev.loki.loparkour.adaptive.core.metrics.JumpTimingTracker;
|
||||
import dev.loki.loparkour.adaptive.core.metrics.MetricEventCollector;
|
||||
import dev.loki.loparkour.adaptive.core.metrics.MetricsCacheStore;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.calc;
|
||||
|
||||
import dev.loki.loparkour.generator.core.model.Profile;
|
||||
import dev.loki.loparkour.adaptive.core.model.DifficultyWeights;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.calc;
|
||||
|
||||
import dev.loki.loparkour.adaptive.model.SkillRating;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.calc;
|
||||
|
||||
import dev.loki.loparkour.adaptive.model.PlayerMetrics;
|
||||
import dev.loki.loparkour.adaptive.model.SkillRating;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.metrics;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -18,30 +18,30 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
*
|
||||
* Thread-safe: Uses ConcurrentHashMap for player caches.
|
||||
*/
|
||||
class JumpTimingTracker {
|
||||
public class JumpTimingTracker {
|
||||
|
||||
private final Map<UUID, Block> lastBlockCache;
|
||||
private final Map<UUID, Long> lastLandTimeCache;
|
||||
|
||||
JumpTimingTracker() {
|
||||
public JumpTimingTracker() {
|
||||
this.lastBlockCache = new ConcurrentHashMap<>();
|
||||
this.lastLandTimeCache = new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
Long lastLandTime(@NotNull UUID playerUuid) {
|
||||
public Long lastLandTime(@NotNull UUID playerUuid) {
|
||||
return lastLandTimeCache.get(playerUuid);
|
||||
}
|
||||
|
||||
void markLand(@NotNull UUID playerUuid, long timeMillis) {
|
||||
public void markLand(@NotNull UUID playerUuid, long timeMillis) {
|
||||
lastLandTimeCache.put(playerUuid, timeMillis);
|
||||
}
|
||||
|
||||
void updateLastBlock(@NotNull UUID playerUuid, @NotNull Block block) {
|
||||
public void updateLastBlock(@NotNull UUID playerUuid, @NotNull Block block) {
|
||||
lastBlockCache.put(playerUuid, block);
|
||||
}
|
||||
|
||||
void unload(@NotNull UUID playerUuid) {
|
||||
public void unload(@NotNull UUID playerUuid) {
|
||||
lastBlockCache.remove(playerUuid);
|
||||
lastLandTimeCache.remove(playerUuid);
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.metrics;
|
||||
|
||||
import dev.loki.loparkour.adaptive.model.PlayerMetrics;
|
||||
import dev.loki.loparkour.generator.jump.calculation.JumpType;
|
||||
|
|
@ -17,19 +17,19 @@ import java.util.UUID;
|
|||
* - Detect near-miss jumps (distance > 3.5 blocks)
|
||||
* - Persist metrics when a player falls
|
||||
*/
|
||||
class MetricEventCollector {
|
||||
public class MetricEventCollector {
|
||||
|
||||
private static final double NEAR_MISS_THRESHOLD = 3.5;
|
||||
|
||||
private final MetricsCacheStore cacheStore;
|
||||
private final JumpTimingTracker timingTracker;
|
||||
|
||||
MetricEventCollector(@NotNull MetricsCacheStore cacheStore, @NotNull JumpTimingTracker timingTracker) {
|
||||
public MetricEventCollector(@NotNull MetricsCacheStore cacheStore, @NotNull JumpTimingTracker timingTracker) {
|
||||
this.cacheStore = cacheStore;
|
||||
this.timingTracker = timingTracker;
|
||||
}
|
||||
|
||||
void onBlockLand(@NotNull Player player, @NotNull Block block, double distance) {
|
||||
public void onBlockLand(@NotNull Player player, @NotNull Block block, double distance) {
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerMetrics metrics = cacheStore.getOrCreate(uuid);
|
||||
|
||||
|
|
@ -47,17 +47,17 @@ class MetricEventCollector {
|
|||
timingTracker.updateLastBlock(uuid, block);
|
||||
}
|
||||
|
||||
void onPlayerScore(@NotNull Player player, @NotNull Block block, double distance) {
|
||||
public void onPlayerScore(@NotNull Player player, @NotNull Block block, double distance) {
|
||||
onBlockLand(player, block, distance);
|
||||
}
|
||||
|
||||
void onPlayerFall(@NotNull Player player) {
|
||||
public void onPlayerFall(@NotNull Player player) {
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerMetrics metrics = cacheStore.getOrCreate(uuid);
|
||||
cacheStore.save(metrics);
|
||||
}
|
||||
|
||||
void onJump(@NotNull Player player, @NotNull JumpType jumpType) {
|
||||
public void onJump(@NotNull Player player, @NotNull JumpType jumpType) {
|
||||
UUID uuid = player.getUniqueId();
|
||||
PlayerMetrics metrics = cacheStore.getOrCreate(uuid);
|
||||
|
||||
|
|
@ -68,7 +68,7 @@ class MetricEventCollector {
|
|||
metrics.recordJump(jumpType.name().toLowerCase(), timeDiff);
|
||||
}
|
||||
|
||||
void unload(@NotNull UUID playerUuid) {
|
||||
public void unload(@NotNull UUID playerUuid) {
|
||||
timingTracker.unload(playerUuid);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.metrics;
|
||||
|
||||
import dev.loki.loparkour.adaptive.model.PlayerMetrics;
|
||||
import dev.loki.loparkour.adaptive.storage.StatsRepository;
|
||||
|
|
@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
*
|
||||
* Thread-safe: Uses ConcurrentHashMap for player metrics cache.
|
||||
*/
|
||||
class MetricsCacheStore {
|
||||
public class MetricsCacheStore {
|
||||
|
||||
private static final long AUTO_SAVE_INTERVAL_TICKS = 20 * 60 * 5; // 5 minutes
|
||||
|
||||
|
|
@ -31,14 +31,14 @@ class MetricsCacheStore {
|
|||
|
||||
private BukkitRunnable autoSaveTask;
|
||||
|
||||
MetricsCacheStore(@NotNull Plugin plugin, @NotNull StatsRepository repository) {
|
||||
public MetricsCacheStore(@NotNull Plugin plugin, @NotNull StatsRepository repository) {
|
||||
this.plugin = plugin;
|
||||
this.repository = repository;
|
||||
this.metricsCache = new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
PlayerMetrics getOrCreate(@NotNull UUID playerUuid) {
|
||||
public PlayerMetrics getOrCreate(@NotNull UUID playerUuid) {
|
||||
return metricsCache.computeIfAbsent(playerUuid, this::loadOrCreate);
|
||||
}
|
||||
|
||||
|
|
@ -50,33 +50,33 @@ class MetricsCacheStore {
|
|||
return new PlayerMetrics(playerUuid);
|
||||
}
|
||||
|
||||
void save(@NotNull UUID playerUuid) {
|
||||
public void save(@NotNull UUID playerUuid) {
|
||||
PlayerMetrics metrics = metricsCache.get(playerUuid);
|
||||
if (metrics != null) {
|
||||
repository.saveMetrics(metrics);
|
||||
}
|
||||
}
|
||||
|
||||
void save(@NotNull PlayerMetrics metrics) {
|
||||
public void save(@NotNull PlayerMetrics metrics) {
|
||||
repository.saveMetrics(metrics);
|
||||
}
|
||||
|
||||
void saveAll() {
|
||||
public void saveAll() {
|
||||
for (PlayerMetrics metrics : metricsCache.values()) {
|
||||
repository.saveMetrics(metrics);
|
||||
}
|
||||
}
|
||||
|
||||
void unload(@NotNull UUID playerUuid) {
|
||||
public void unload(@NotNull UUID playerUuid) {
|
||||
save(playerUuid);
|
||||
metricsCache.remove(playerUuid);
|
||||
}
|
||||
|
||||
int size() {
|
||||
public int size() {
|
||||
return metricsCache.size();
|
||||
}
|
||||
|
||||
void startAutoSave() {
|
||||
public void startAutoSave() {
|
||||
if (autoSaveTask != null) {
|
||||
autoSaveTask.cancel();
|
||||
}
|
||||
|
|
@ -91,7 +91,7 @@ class MetricsCacheStore {
|
|||
autoSaveTask.runTaskTimerAsynchronously(plugin, AUTO_SAVE_INTERVAL_TICKS, AUTO_SAVE_INTERVAL_TICKS);
|
||||
}
|
||||
|
||||
void stopAutoSave() {
|
||||
public void stopAutoSave() {
|
||||
if (autoSaveTask != null) {
|
||||
autoSaveTask.cancel();
|
||||
autoSaveTask = null;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.adaptive.core;
|
||||
package dev.loki.loparkour.adaptive.core.model;
|
||||
|
||||
/**
|
||||
* Calculates weight distributions for different difficulty levels.
|
||||
|
|
@ -6,7 +6,7 @@ package dev.loki.loparkour.adaptive.core;
|
|||
*
|
||||
* Thread-safe: Stateless, all methods are pure functions.
|
||||
*/
|
||||
class DifficultyWeights {
|
||||
public class DifficultyWeights {
|
||||
|
||||
private DifficultyWeights() {
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@ class DifficultyWeights {
|
|||
* @param difficulty Target difficulty (0.0-1.0)
|
||||
* @return Array of weights [dist1, dist2, dist3, dist4]
|
||||
*/
|
||||
static double[] calculateDistanceWeights(double difficulty) {
|
||||
public static double[] calculateDistanceWeights(double difficulty) {
|
||||
double[] weights = new double[4];
|
||||
|
||||
if (difficulty < 0.3) {
|
||||
|
|
@ -55,7 +55,7 @@ class DifficultyWeights {
|
|||
* @param difficulty Target difficulty (0.0-1.0)
|
||||
* @return Array of weights [-1, 0, 1, 2]
|
||||
*/
|
||||
static double[] calculateHeightWeights(double difficulty) {
|
||||
public static double[] calculateHeightWeights(double difficulty) {
|
||||
double[] weights = new double[4];
|
||||
|
||||
if (difficulty < 0.3) {
|
||||
|
|
@ -93,7 +93,7 @@ class DifficultyWeights {
|
|||
* @param difficulty Target difficulty (0.0-1.0)
|
||||
* @return Special block percentage (5.0-30.0)
|
||||
*/
|
||||
static double calculateSpecialFrequency(double difficulty) {
|
||||
public static double calculateSpecialFrequency(double difficulty) {
|
||||
double minFrequency = 5.0;
|
||||
double maxFrequency = 30.0;
|
||||
return minFrequency + (maxFrequency - minFrequency) * difficulty;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package dev.loki.loparkour.api.core;
|
||||
|
||||
import dev.loki.loparkour.api.event.ParkourBlockGenerateEvent;
|
||||
import dev.loki.loparkour.api.event.generation.ParkourBlockGenerateEvent;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.generation;
|
||||
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.generation;
|
||||
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.score;
|
||||
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.score;
|
||||
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.session;
|
||||
|
||||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.session;
|
||||
|
||||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.api.event;
|
||||
package dev.loki.loparkour.api.event.session;
|
||||
|
||||
import dev.loki.loparkour.player.spectator.ParkourSpectator;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -2,10 +2,14 @@ package dev.loki.loparkour.command.admin;
|
|||
|
||||
import dev.loki.loparkour.command.player.PlayerCommandHandler;
|
||||
import dev.loki.loparkour.command.schematic.SchematicCommandHandler;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import dev.loki.loparkour.command.admin.ops.ForceJoinExecutor;
|
||||
import dev.loki.loparkour.command.admin.ops.ForceLeaveExecutor;
|
||||
import dev.loki.loparkour.command.admin.ops.RecoverInventoryExecutor;
|
||||
import dev.loki.loparkour.command.admin.ops.ResetExecutor;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.command.admin;
|
||||
package dev.loki.loparkour.command.admin.ops;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.command.player.PlayerCommandHandler;
|
||||
|
|
@ -6,17 +6,19 @@ import dev.loki.loparkour.config.locale.Locales;
|
|||
import dev.loki.loparkour.mode.base.Modes;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import dev.loki.loparkour.command.admin.support.AdminResponses;
|
||||
import dev.loki.loparkour.command.admin.support.AdminTargetResolver;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
final class ForceJoinExecutor {
|
||||
public final class ForceJoinExecutor {
|
||||
|
||||
private final PlayerCommandHandler base;
|
||||
|
||||
ForceJoinExecutor(PlayerCommandHandler base) {
|
||||
public ForceJoinExecutor(PlayerCommandHandler base) {
|
||||
this.base = base;
|
||||
}
|
||||
|
||||
void execute(String target, CommandSender sender) {
|
||||
public void execute(String target, CommandSender sender) {
|
||||
if (!base.cooldown(sender, "forcejoin", 2500, Locales.getString(sender, "admin.cooldown"))) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.command.admin;
|
||||
package dev.loki.loparkour.command.admin.ops;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.command.player.PlayerCommandHandler;
|
||||
|
|
@ -7,17 +7,18 @@ import dev.loki.loparkour.player.core.ParkourPlayer;
|
|||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import dev.loki.loparkour.command.admin.support.AdminResponses;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
final class ForceLeaveExecutor {
|
||||
public final class ForceLeaveExecutor {
|
||||
|
||||
private final PlayerCommandHandler base;
|
||||
|
||||
ForceLeaveExecutor(PlayerCommandHandler base) {
|
||||
public ForceLeaveExecutor(PlayerCommandHandler base) {
|
||||
this.base = base;
|
||||
}
|
||||
|
||||
void execute(String target, CommandSender sender) {
|
||||
public void execute(String target, CommandSender sender) {
|
||||
if (!base.cooldown(sender, "forceleave", 2500, Locales.getString(sender, "admin.cooldown"))) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.command.admin;
|
||||
package dev.loki.loparkour.command.admin.ops;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.command.player.PlayerCommandHandler;
|
||||
|
|
@ -6,17 +6,18 @@ import dev.loki.loparkour.config.locale.Locales;
|
|||
import dev.loki.loparkour.player.data.InventoryData;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import dev.loki.loparkour.command.admin.support.AdminResponses;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
final class RecoverInventoryExecutor {
|
||||
public final class RecoverInventoryExecutor {
|
||||
|
||||
private final PlayerCommandHandler base;
|
||||
|
||||
RecoverInventoryExecutor(PlayerCommandHandler base) {
|
||||
public RecoverInventoryExecutor(PlayerCommandHandler base) {
|
||||
this.base = base;
|
||||
}
|
||||
|
||||
void execute(String target, CommandSender sender) {
|
||||
public void execute(String target, CommandSender sender) {
|
||||
if (!base.cooldown(sender, "recoverinventory", 2500, Locales.getString(sender, "admin.cooldown"))) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.command.admin;
|
||||
package dev.loki.loparkour.command.admin.ops;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.api.core.Registry;
|
||||
|
|
@ -9,17 +9,19 @@ import dev.loki.loparkour.mode.base.Mode;
|
|||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.UUID;
|
||||
import dev.loki.loparkour.command.admin.support.AdminResponses;
|
||||
import dev.loki.loparkour.command.admin.support.AdminTargetResolver;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
final class ResetExecutor {
|
||||
public final class ResetExecutor {
|
||||
|
||||
private final PlayerCommandHandler base;
|
||||
|
||||
ResetExecutor(PlayerCommandHandler base) {
|
||||
public ResetExecutor(PlayerCommandHandler base) {
|
||||
this.base = base;
|
||||
}
|
||||
|
||||
void execute(String target, CommandSender sender) {
|
||||
public void execute(String target, CommandSender sender) {
|
||||
if (!base.cooldown(sender, "reset", 2500, Locales.getString(sender, "admin.cooldown"))) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
package dev.loki.loparkour.command.admin;
|
||||
package dev.loki.loparkour.command.admin.support;
|
||||
|
||||
import dev.loki.loparkour.util.text.ColorUtil;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
final class AdminResponses {
|
||||
public final class AdminResponses {
|
||||
|
||||
private AdminResponses() {
|
||||
}
|
||||
|
||||
static void send(CommandSender sender, String msg) {
|
||||
public static void send(CommandSender sender, String msg) {
|
||||
sender.sendMessage(ColorUtil.color(msg));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.command.admin;
|
||||
package dev.loki.loparkour.command.admin.support;
|
||||
|
||||
import org.bukkit.command.BlockCommandSender;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
@ -9,12 +9,12 @@ import org.bukkit.entity.Player;
|
|||
|
||||
import java.util.UUID;
|
||||
|
||||
final class AdminTargetResolver {
|
||||
public final class AdminTargetResolver {
|
||||
|
||||
private AdminTargetResolver() {
|
||||
}
|
||||
|
||||
static Player findNearest(CommandSender sender) {
|
||||
public static Player findNearest(CommandSender sender) {
|
||||
Location from = sender instanceof Player p ? p.getLocation()
|
||||
: sender instanceof BlockCommandSender b ? b.getBlock().getLocation()
|
||||
: null;
|
||||
|
|
@ -28,7 +28,7 @@ final class AdminTargetResolver {
|
|||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static UUID resolveUUID(String input) {
|
||||
public static UUID resolveUUID(String input) {
|
||||
Player online = Bukkit.getPlayerExact(input);
|
||||
if (online != null) {
|
||||
return online.getUniqueId();
|
||||
|
|
@ -50,7 +50,7 @@ final class AdminTargetResolver {
|
|||
}
|
||||
}
|
||||
|
||||
static String resolvePlayerName(String input, UUID uuid) {
|
||||
public static String resolvePlayerName(String input, UUID uuid) {
|
||||
Player online = Bukkit.getPlayerExact(input);
|
||||
if (online != null) {
|
||||
return online.getName();
|
||||
|
|
@ -7,7 +7,7 @@ import dev.loki.loparkour.command.player.PlayerCommandHandler;
|
|||
import dev.loki.loparkour.command.schematic.SchematicCommandHandler;
|
||||
import dev.loki.loparkour.command.util.CommandUtil;
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.command.core;
|
|||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.api.core.Registry;
|
||||
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.schematic.core.SchematicManager;
|
||||
import org.bukkit.Bukkit;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import dev.loki.loparkour.LoParkour;
|
|||
import dev.loki.loparkour.api.core.Registry;
|
||||
import dev.loki.loparkour.command.util.CommandUtil;
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
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.mode.base.Modes;
|
||||
import dev.loki.loparkour.mode.base.MultiMode;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import dev.loki.loparkour.command.util.CommandUtil;
|
|||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
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 org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import dev.loki.loparkour.command.schematic.SchematicCommandHandler;
|
|||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
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.Modes;
|
||||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import dev.loki.loparkour.util.text.ColorUtil;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.command.schematic;
|
|||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import dev.loki.loparkour.config.core.merge.ConfigUpdater;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.config.core;
|
||||
package dev.loki.loparkour.config.core.merge;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
@ -19,22 +19,22 @@ import java.util.Map;
|
|||
* Reads YAML as raw lines and extracts the full path of each scalar value
|
||||
* (e.g. "sql.enabled") so that user values can be matched against the template.
|
||||
*/
|
||||
final class ConfigMergeParser {
|
||||
public final class ConfigMergeParser {
|
||||
|
||||
@NotNull
|
||||
List<String> readLines(@NotNull InputStream is) throws IOException {
|
||||
public List<String> readLines(@NotNull InputStream is) throws IOException {
|
||||
try (var r = new BufferedReader(new InputStreamReader(is))) {
|
||||
return r.lines().toList();
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
List<String> readLines(@NotNull File file) throws IOException {
|
||||
public List<String> readLines(@NotNull File file) throws IOException {
|
||||
return Files.readAllLines(file.toPath());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Map<String, String> extractFullPathValues(@NotNull List<String> lines) {
|
||||
public Map<String, String> extractFullPathValues(@NotNull List<String> lines) {
|
||||
Map<String, String> values = new LinkedHashMap<>();
|
||||
Deque<String> stack = new ArrayDeque<>();
|
||||
int prevIndent = -1;
|
||||
|
|
@ -57,7 +57,7 @@ final class ConfigMergeParser {
|
|||
}
|
||||
|
||||
@Nullable
|
||||
static LineTokens parseLine(@NotNull String line) {
|
||||
public static LineTokens parseLine(@NotNull String line) {
|
||||
if (isSkippable(line)) {
|
||||
return null;
|
||||
}
|
||||
|
|
@ -80,7 +80,7 @@ final class ConfigMergeParser {
|
|||
return after.isEmpty() || after.startsWith("#");
|
||||
}
|
||||
|
||||
static int popToLevel(@NotNull Deque<String> stack, int indent, int prevIndent) {
|
||||
public static int popToLevel(@NotNull Deque<String> stack, int indent, int prevIndent) {
|
||||
while (prevIndent >= 0 && indent <= prevIndent) {
|
||||
if (!stack.isEmpty()) {
|
||||
stack.pop();
|
||||
|
|
@ -91,11 +91,11 @@ final class ConfigMergeParser {
|
|||
}
|
||||
|
||||
@NotNull
|
||||
static String resolvePath(@NotNull Deque<String> stack, @NotNull String leaf) {
|
||||
public static String resolvePath(@NotNull Deque<String> stack, @NotNull String leaf) {
|
||||
return stack.isEmpty() ? leaf : String.join(".", stack) + "." + leaf;
|
||||
}
|
||||
|
||||
static int indentOf(@NotNull String line) {
|
||||
public static int indentOf(@NotNull String line) {
|
||||
int i = 0;
|
||||
while (i < line.length() && line.charAt(i) == ' ') {
|
||||
i++;
|
||||
|
|
@ -103,6 +103,6 @@ final class ConfigMergeParser {
|
|||
return i;
|
||||
}
|
||||
|
||||
record LineTokens(String leaf, String after, int indent, boolean isSection) {
|
||||
public record LineTokens(String leaf, String after, int indent, boolean isSection) {
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.config.core;
|
||||
package dev.loki.loparkour.config.core.merge;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
@ -18,7 +18,7 @@ import java.util.Set;
|
|||
* Builds the merged file by walking the template and substituting any scalar
|
||||
* value that the user has already customized, preserving comments and sections.
|
||||
*/
|
||||
final class ConfigMergeProcessor {
|
||||
public final class ConfigMergeProcessor {
|
||||
|
||||
private final ConfigMergeParser parser = new ConfigMergeParser();
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.config.core;
|
||||
package dev.loki.loparkour.config.core.merge;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.config.locale;
|
|||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
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.util.text.ColorUtil;
|
||||
import dev.loki.loparkour.util.item.Item;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.config.options;
|
|||
|
||||
import dev.loki.loparkour.api.core.Registry;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import dev.loki.loparkour.style.core.RandomStyle;
|
||||
import dev.loki.loparkour.style.core.Style;
|
||||
import dev.loki.loparkour.util.particle.ParticleData;
|
||||
|
|
@ -16,6 +16,10 @@ import org.bukkit.configuration.file.FileConfiguration;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import dev.loki.loparkour.config.options.section.OptionGeneration;
|
||||
import dev.loki.loparkour.config.options.section.OptionParticles;
|
||||
import dev.loki.loparkour.config.options.section.OptionSQL;
|
||||
import dev.loki.loparkour.config.options.section.OptionStyles;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.config.options;
|
|||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.config.options;
|
||||
package dev.loki.loparkour.config.options.section;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
package dev.loki.loparkour.config.options;
|
||||
package dev.loki.loparkour.config.options.section;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
import dev.loki.loparkour.util.particle.ParticleData;
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.Sound;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.config.options;
|
||||
package dev.loki.loparkour.config.options.section;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.config.options;
|
||||
package dev.loki.loparkour.config.options.section;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.core.ConfigAccessor;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package dev.loki.loparkour.generator.jump.placement;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.api.event.ParkourSchematicGenerateEvent;
|
||||
import dev.loki.loparkour.api.event.generation.ParkourSchematicGenerateEvent;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import dev.loki.loparkour.schematic.core.ParkourSchematic;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package dev.loki.loparkour.generator.lifecycle.loop;
|
||||
|
||||
import dev.loki.loparkour.api.event.ParkourFallEvent;
|
||||
import dev.loki.loparkour.api.event.ParkourScoreEvent;
|
||||
import dev.loki.loparkour.api.event.score.ParkourFallEvent;
|
||||
import dev.loki.loparkour.api.event.score.ParkourScoreEvent;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import dev.loki.loparkour.config.core.Config;
|
|||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
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.loki.loparkour.session.core.Session;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package dev.loki.loparkour.listener.player;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import dev.loki.loparkour.mode.base.Modes;
|
||||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import dev.loki.loparkour.world.core.World;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
) {}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.util.gui;
|
||||
package dev.loki.loparkour.menu.gui;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.util.item.Item;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.util.gui;
|
||||
package dev.loki.loparkour.menu.gui;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.util.gui;
|
||||
package dev.loki.loparkour.menu.gui;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.util.item.Item;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.util.gui;
|
||||
package dev.loki.loparkour.menu.gui;
|
||||
|
||||
import dev.loki.loparkour.util.item.Item;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import dev.loki.loparkour.mode.base.Mode;
|
|||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.leaderboard.core.Leaderboard;
|
||||
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.spectator.ParkourSpectator;
|
||||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.google.gson.annotations.Expose;
|
|||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.generator.core.model.Profile;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
package dev.loki.loparkour.player.core;
|
||||
import dev.loki.loparkour.player.service.UserRegistry;
|
||||
import dev.loki.loparkour.player.service.ScoreboardManager;
|
||||
import dev.loki.loparkour.player.service.ui.ScoreboardManager;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
import dev.loki.loparkour.hook.floodgate.FloodgateHook;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import dev.loki.loparkour.player.data.PreviousData;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
import dev.loki.loparkour.util.text.ColorUtil;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.player.core;
|
|||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.player.service.ParkourHotbar;
|
||||
import dev.loki.loparkour.player.service.ui.ParkourHotbar;
|
||||
import dev.lolib.scheduler.Scheduler;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package dev.loki.loparkour.player.service;
|
|||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package dev.loki.loparkour.player.service;
|
|||
import dev.loki.loparkour.player.core.ParkourUser;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
||||
import dev.loki.loparkour.api.event.ParkourJoinEvent;
|
||||
import dev.loki.loparkour.api.event.ParkourLeaveEvent;
|
||||
import dev.loki.loparkour.api.event.session.ParkourJoinEvent;
|
||||
import dev.loki.loparkour.api.event.session.ParkourLeaveEvent;
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.mode.base.Mode;
|
||||
import dev.loki.loparkour.mode.base.Modes;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package dev.loki.loparkour.player.service;
|
||||
package dev.loki.loparkour.player.service.ui;
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
||||
import dev.loki.loparkour.config.core.Config;
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.menu.core.ParkourOption;
|
||||
import dev.loki.loparkour.menu.core.screen.ParkourOption;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.player.service;
|
||||
package dev.loki.loparkour.player.service.ui;
|
||||
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.generator.core.coordinator.ParkourGenerator;
|
||||
|
|
@ -3,7 +3,7 @@ import dev.loki.loparkour.player.core.ParkourUser;
|
|||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.api.event.ParkourSpectateEvent;
|
||||
import dev.loki.loparkour.api.event.session.ParkourSpectateEvent;
|
||||
import dev.loki.loparkour.config.locale.Locales;
|
||||
import dev.loki.loparkour.player.data.PreviousData;
|
||||
import dev.loki.loparkour.session.core.Session;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
|||
import dev.loki.loparkour.LoParkour;
|
||||
import dev.loki.loparkour.schematic.config.SchematicDifficultyConfig;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.LPSchematicLegacy;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.SchematicMetadata;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicMetadata;
|
||||
import dev.loki.loparkour.schematic.schem.SchematicClipboardBuilder;
|
||||
import dev.loki.loparkour.schematic.schem.SchemWriter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ import java.io.FileInputStream;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.List;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicDimensions;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicLogic;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicMarkers;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicMetadata;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicVisuals;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.schematic.legacy.lpschem;
|
||||
package dev.loki.loparkour.schematic.legacy.lpschem.pojo;
|
||||
|
||||
/** Gson POJO for legacy {@code .lpschem}. */
|
||||
public class SchematicDimensions {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.schematic.legacy.lpschem;
|
||||
package dev.loki.loparkour.schematic.legacy.lpschem.pojo;
|
||||
|
||||
/** Gson POJO for legacy {@code .lpschem} (optional section). */
|
||||
public class SchematicLogic {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.schematic.legacy.lpschem;
|
||||
package dev.loki.loparkour.schematic.legacy.lpschem.pojo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.schematic.legacy.lpschem;
|
||||
package dev.loki.loparkour.schematic.legacy.lpschem.pojo;
|
||||
|
||||
/** Gson POJO for legacy {@code .lpschem}. */
|
||||
public class SchematicMetadata {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.schematic.legacy.lpschem;
|
||||
package dev.loki.loparkour.schematic.legacy.lpschem.pojo;
|
||||
|
||||
/** Gson POJO for legacy {@code .lpschem} (optional section). */
|
||||
public class SchematicVisuals {
|
||||
|
|
@ -7,7 +7,7 @@ import com.sk89q.worldedit.math.BlockVector3;
|
|||
import com.sk89q.worldedit.regions.CuboidRegion;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.LPSchematicLegacy;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.SchematicDimensions;
|
||||
import dev.loki.loparkour.schematic.legacy.lpschem.pojo.SchematicDimensions;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ import org.jetbrains.annotations.NotNull;
|
|||
import java.sql.SQLException;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import dev.loki.loparkour.storage.sql.repo.SQLPlayerRepository;
|
||||
import dev.loki.loparkour.storage.sql.repo.SQLScoreRepository;
|
||||
import dev.loki.loparkour.storage.sql.schema.SQLSchemaManager;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.storage.sql;
|
||||
package dev.loki.loparkour.storage.sql.query;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
package dev.loki.loparkour.storage.sql;
|
||||
package dev.loki.loparkour.storage.sql.query;
|
||||
|
||||
import dev.loki.loparkour.LoParkour;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import dev.loki.loparkour.storage.sql.SQLConnectionManager;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
|
|
@ -14,11 +15,11 @@ import java.sql.SQLException;
|
|||
*
|
||||
* @since 5.0.0
|
||||
*/
|
||||
class SQLQueryExecutor {
|
||||
public class SQLQueryExecutor {
|
||||
|
||||
private final SQLConnectionManager connectionManager;
|
||||
|
||||
SQLQueryExecutor(SQLConnectionManager connectionManager) {
|
||||
public SQLQueryExecutor(SQLConnectionManager connectionManager) {
|
||||
this.connectionManager = connectionManager;
|
||||
}
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.storage.sql;
|
||||
package dev.loki.loparkour.storage.sql.repo;
|
||||
|
||||
import dev.loki.loparkour.player.core.ParkourPlayer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -7,19 +7,22 @@ import java.sql.Connection;
|
|||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import dev.loki.loparkour.storage.sql.SQLConnectionManager;
|
||||
import dev.loki.loparkour.storage.sql.SQLDataMapper;
|
||||
import dev.loki.loparkour.storage.sql.query.SQLQueryBuilder;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* CRUD for player data.
|
||||
*/
|
||||
class SQLPlayerRepository {
|
||||
public class SQLPlayerRepository {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(SQLPlayerRepository.class.getName());
|
||||
|
||||
private SQLPlayerRepository() {
|
||||
}
|
||||
|
||||
static void readPlayer(@NotNull SQLConnectionManager manager, @NotNull ParkourPlayer player) {
|
||||
public static void readPlayer(@NotNull SQLConnectionManager manager, @NotNull ParkourPlayer player) {
|
||||
if (!manager.isConnected()) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -43,7 +46,7 @@ class SQLPlayerRepository {
|
|||
}
|
||||
}
|
||||
|
||||
static void writePlayer(@NotNull SQLConnectionManager manager, @NotNull ParkourPlayer player) {
|
||||
public static void writePlayer(@NotNull SQLConnectionManager manager, @NotNull ParkourPlayer player) {
|
||||
if (!manager.isConnected()) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package dev.loki.loparkour.storage.sql;
|
||||
package dev.loki.loparkour.storage.sql.repo;
|
||||
|
||||
import dev.loki.loparkour.leaderboard.model.Score;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -9,12 +9,15 @@ import java.sql.ResultSet;
|
|||
import java.sql.SQLException;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import dev.loki.loparkour.storage.sql.SQLConnectionManager;
|
||||
import dev.loki.loparkour.storage.sql.SQLDataMapper;
|
||||
import dev.loki.loparkour.storage.sql.query.SQLQueryBuilder;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* CRUD for leaderboard scores.
|
||||
*/
|
||||
class SQLScoreRepository {
|
||||
public class SQLScoreRepository {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(SQLScoreRepository.class.getName());
|
||||
|
||||
|
|
@ -22,7 +25,7 @@ class SQLScoreRepository {
|
|||
}
|
||||
|
||||
@NotNull
|
||||
static Map<UUID, Score> readScores(@NotNull SQLConnectionManager manager, @NotNull String mode) {
|
||||
public static Map<UUID, Score> readScores(@NotNull SQLConnectionManager manager, @NotNull String mode) {
|
||||
if (!manager.isConnected()) {
|
||||
return Map.of();
|
||||
}
|
||||
|
|
@ -41,7 +44,7 @@ class SQLScoreRepository {
|
|||
}
|
||||
}
|
||||
|
||||
static void writeScores(@NotNull SQLConnectionManager manager,
|
||||
public static void writeScores(@NotNull SQLConnectionManager manager,
|
||||
@NotNull String mode,
|
||||
@NotNull Map<UUID, Score> scores) {
|
||||
if (!manager.isConnected() || scores.isEmpty()) {
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package dev.loki.loparkour.storage.sql;
|
||||
package dev.loki.loparkour.storage.sql.schema;
|
||||
|
||||
import dev.loki.loparkour.storage.sql.query.SQLQueryExecutor;
|
||||
import dev.loki.loparkour.config.options.Option;
|
||||
|
||||
/**
|
||||
|
|
@ -7,11 +8,11 @@ import dev.loki.loparkour.config.options.Option;
|
|||
*
|
||||
* @since 5.0.0
|
||||
*/
|
||||
class SQLMigrationManager {
|
||||
public class SQLMigrationManager {
|
||||
|
||||
private final SQLQueryExecutor queryExecutor;
|
||||
|
||||
SQLMigrationManager(SQLQueryExecutor queryExecutor) {
|
||||
public SQLMigrationManager(SQLQueryExecutor queryExecutor) {
|
||||
this.queryExecutor = queryExecutor;
|
||||
}
|
||||
|
||||
|
|
@ -1,15 +1,17 @@
|
|||
package dev.loki.loparkour.storage.sql;
|
||||
package dev.loki.loparkour.storage.sql.schema;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import dev.loki.loparkour.storage.sql.SQLConnectionManager;
|
||||
import dev.loki.loparkour.storage.sql.query.SQLQueryBuilder;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* Creates the database schema (DDL) for parkour storage.
|
||||
*/
|
||||
class SQLSchemaManager {
|
||||
public class SQLSchemaManager {
|
||||
|
||||
private static final String ADAPTIVE_STATS_TABLE = """
|
||||
CREATE TABLE IF NOT EXISTS loparkour_player_stats (
|
||||
|
|
@ -28,7 +30,7 @@ class SQLSchemaManager {
|
|||
private SQLSchemaManager() {
|
||||
}
|
||||
|
||||
static void createTables(@NotNull SQLConnectionManager manager, @NotNull String mode) throws SQLException {
|
||||
public static void createTables(@NotNull SQLConnectionManager manager, @NotNull String mode) throws SQLException {
|
||||
String tableName = SQLQueryBuilder.getTableName(mode);
|
||||
try (Connection conn = manager.getConnection()) {
|
||||
createScoresTable(conn, tableName);
|
||||
Loading…
Add table
Add a link
Reference in a new issue