refactor: reorganize packages and replace LPSchematic with WorldEdit

Restructure core modules into subpackages (generator, schematic, config, session, etc.); add .schem/.nbt schematic pipeline, commands, adaptive stats skeleton, and bootstrap wiring.
This commit is contained in:
loki5512344 2026-06-01 14:02:48 +02:00
parent 6ba6e5137d
commit fd0ba2cc0e
203 changed files with 5652 additions and 2367 deletions

View file

@ -2,7 +2,7 @@
# By loki
# Copy this file and rename it to add your own language!
# Materials have to be from: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
# Learn more about colouring: https://docs.adventure.kyori.net/minimessage/format.html#format
# Colors: hex &#RRGGBB and legacy & codes only (see .cursor/rules/locale-and-colors.mdc)
name: "English"
@ -236,10 +236,14 @@ lobby:
head:
material: ""
name: "&#00D4FF&l%s"
name: "&#FFFF55%s%s"
muted_suffix: " &#FF4444[mute]"
lore: ""
top: "&#404040Muted in lobby||"
bottom: "&#00D4FFLeft click&#404040 to kick from lobby||&#00D4FFRight click&#404040 to (un)mute in lobby"
lore_kick: "&#A0A0A0Left-click &#FFFFFFto kick"
lore_mute: "&#A0A0A0Right-click &#FFFFFFto mute"
lore_unmute: "&#A0A0A0Right-click &#FFFFFFto unmute"
scoreboard:
@ -256,8 +260,24 @@ scoreboard:
other:
no_do: "&#A0A0A0You can't do this right now."
no_menu_items: "&#FF4444&lNo menu items are available for you right now."
joining_disabled: "&#FF4444&lJoining is currently disabled."
no_teleporting: "&#FFFFFFYou can't enter the parkour world by teleporting!"
customize: "&#A0A0A0Customize your parkour experience by using \"/parkour\""
leave_error: "&#FF4444&lThere was an error while trying to leave."
bungee_kick: "Couldn't move you to %s. Please rejoin."
menu_unavailable: "&#FF4444%s &#A0A0A0(%d rows) — menu unavailable."
paged_menu_unavailable: "&#FF4444%s &#A0A0A0(%d rows, %d items) — menu unavailable."
back:
material: "red_dye"
name: "&#DE1F1F&lBack"
lore: ""
next:
material: "lime_dye"
name: "&#0DCB07&lNext"
lore: ""
quit:
material: "barrier"
@ -280,19 +300,95 @@ modes:
name: "&#00D4FF&lElytra"
lore: "&#A0A0A0Fly through rings!||&#A0A0A0Use fireworks to boost"
start_hint: "&#A0A0A0Fly through the rings! Use fireworks to boost."
ring_perfect: "&#55FF55Perfect! +%d"
ring_good: "&#55FF55Good! +%d"
fell: "&#FF4444Fell: %s"
action_bar: "&#FFFF55Ring: %d/%d &#A0A0A0| &#55FF55Score: &#FFFFFF%d"
race:
material: "golden_boots"
name: "&#FFD700&lRace"
lore: "&#A0A0A0First to reach target score!||&#A0A0A0Compete for fastest time"
completed: "&#FFD700Finished! Score: &#FFFFFF%s &#A0A0Ain &#FFFFFF%s"
title: "&#FFD700&lRACE COMPLETE!"
subtitle: "&#55FF55Finished in &#FFFFFF%s"
action_bar: "%s &#FFFF55%d &#A0A0A0/ &#55FF55%d%s"
action_bar_left: " &#A0A0A0(&#FF4444%d &#A0A0A0left)"
action_bar_done: " &#FFD700&lDONE!"
coop:
material: "player_head"
name: "&#00FF00&lCo-op"
lore: "&#A0A0A0Team up with friends!||&#A0A0A0Shared score and progress"
player_joined: "&#00FF00%s &#A0A0Ajoined the co-op session!"
stats: "&#A0A0ATeam score: &#FFFFFF%s &#A0A0A| Your blocks: &#FFFFFF%s &#A0A0A(&#FFFFFF%s%%&#A0A0A)"
player_joined: "&#00FF00%s &#A0A0A0joined the co-op session!"
stats: "&#A0A0A0Team score: &#FFFFFF%s &#A0A0A0| Your blocks: &#FFFFFF%s &#A0A0A0(&#FFFFFF%s%%&#A0A0A0)"
milestone_title: "&#FFD700&lTeam: &#FFFFFF%d"
milestone_subtitle: "&#55FF55Keep it up!"
admin:
cooldown: "<gray>Please wait before using this again."
cooldown: "&#A0A0A0Please wait before using this again."
force_join_everyone: "&#55FF55Force joined everyone!"
force_join_player: "&#55FF55Force joined %s!"
force_leave_everyone: "&#55FF55Force kicked everyone!"
player_not_online: "&#FF4444Player not online!"
player_not_playing: "&#FF4444That player isn't playing parkour!"
reset_all: "&#55FF55Reset all high scores."
reset_player: "&#55FF55Reset high score of %s."
recover_inventory: "&#55FF55Recovered inventory of %s."
recover_inventory_missing: "&#FF4444No saved inventory found for %s."
commands:
too_many_args: "&#A0A0A0Too many arguments. Try /parkour help"
error: "&#FF4444&lLoParkour: command error — see server console."
unknown_player: "&#FF4444Unknown player."
not_playing: "&#FF4444That player isn't playing."
reload: "&#A0A0A0Reloading config files... (locales load asynchronously)"
help:
header: "&#404040&m--------------- &#FF6464&lLoParkour &#404040&m---------------"
line_parkour: "&#A0A0A0/parkour &#404040- Main command"
line_join: "&#A0A0A0/parkour join [mode/player] &#404040- Join a mode"
line_leave: "&#A0A0A0/parkour leave &#404040- Leave parkour"
line_menu: "&#A0A0A0/parkour menu &#404040- Open the menu"
line_play: "&#A0A0A0/parkour play &#404040- Mode selection menu"
line_leaderboard: "&#A0A0A0/parkour leaderboard [type] &#404040- Leaderboard"
line_schematic: "&#A0A0A0/LoParkour schematic &#404040- Schematic tools"
line_reload: "&#A0A0A0/LoParkour reload &#404040- Reload configs"
line_reset: "&#A0A0A0/LoParkour reset <everyone/player> &#404040- Reset scores"
line_force: "&#A0A0A0/LoParkour forcejoin/forceleave <target> &#404040- Force join/leave"
line_recover: "&#A0A0A0/LoParkour recoverinventory <player> &#404040- Recover inventory"
schematic:
wand:
material: "golden_axe"
name: "&#FF4444&lSchematic Wand"
lore: "&#A0A0A0Left click: position 1||&#A0A0A0Right click: position 2"
help:
header: "&#8B0000&lSchematics &#404040-----------"
line_wand: "&#FF4444/LoParkour schematic wand &#404040- &#A0A0A0Selection wand"
line_pos1: "&#FF4444/LoParkour schematic pos1 &#404040- &#A0A0A0Set position 1"
line_pos2: "&#FF4444/LoParkour schematic pos2 &#404040- &#A0A0A0Set position 2"
line_create: "&#FF4444/LoParkour create <difficulty> &#404040- &#A0A0A0Save selection to .schem + yml"
line_create_named: "&#FF4444/LoParkour schematic create <name> <difficulty> &#404040- &#A0A0A0Named save"
line_convert: "&#FF4444/LoParkour schematic convert &#404040- &#A0A0A0Convert .lpschem to .schem"
line_paste: "&#FF4444/LoParkour schematic paste <name> &#404040- &#A0A0A0Test-paste"
line_list: "&#FF4444/LoParkour schematic list &#404040- &#A0A0A0List loaded"
line_reload: "&#FF4444/LoParkour schematic reload &#404040- &#A0A0A0Reload from disk"
line_folder: "&#A0A0A0Folder: plugins/LoParkour/schematics/ (.nbt, .schem, .schematic)"
line_docs: "&#A0A0A0Docs: plugins/LoParkour/docs/SCHEMATICS.md (also in jar /docs)"
wand_given: "&#A0A0A0Wand given. Left = pos1, Right = pos2."
list_header: "&#A0A0A0Loaded schematics:"
list_entry: "&#A0A0A0- &#FF4444%s &#404040(%s, %s)"
reloaded: "&#A0A0A0Reloaded."
pos_set: "&#A0A0A0Position %s set to %s"
invalid_name: "&#FF4444Invalid name. Use only letters, numbers, hyphens and underscores."
invalid_difficulty: "&#FF4444Difficulty must be a number from 0.0 to 1.0 (e.g. 0.25, 0.5, 1.0)."
selection_incomplete: "&#FF4444Selection incomplete. Use wand or pos1/pos2 first."
created: "&#A0A0A0Added &#FF4444%s &#404040(diff %s) as &#FF4444%s"
create_failed: "&#FF4444Create failed: %s"
convert_done: "&#A0A0A0Converted %s file(s), %s failed."
convert_truncated: "&#A0A0A0...and %s more (see console)."
not_found: "&#FF4444Schematic '%s' not found."
pasted: "&#A0A0A0Pasted &#FF4444%s&#A0A0A0."
ghost:
saved: "&#00D4FFYour ghost was saved with a score of %s!"