feat: personal run replays (ghost system)
- GhostData: worldName field, format v4; GhostManager stores last N runs per player (ghosts/<uuid>/<ts>.ghost)
- GhostService: per-player recording (start on run start, every tick, finalize on fall), gated by ghost-mode.enabled + per-player toggle
- PlayerGhost: packet-based fake-player NPC with viewer skin (NMS via remapNms gradle task, reflection send, graceful degradation)
- GhostReplay: teleport viewer to run start, replay frames via PlayerGhost, restore on finish
- /lp replay [index] command + tab completion; settings menu ghost_recording toggle (persisted disk/SQL)
- config: ghost-mode.{enabled,max-runs}, remove dead show-top/transparency + GHOST_* statics
- tests: GhostData v4 round-trip, GhostManager eviction/ordering, yawToFixed (79 total)
This commit is contained in:
parent
4c255111f0
commit
8c8046a4f5
30 changed files with 1027 additions and 227 deletions
|
|
@ -246,6 +246,11 @@ settings:
|
|||
name: "Воспроизводить звуки"
|
||||
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, каждый сгенерированный блок||&#A0A0A0будет воспроизводить звук."
|
||||
|
||||
ghost_recording:
|
||||
material: ""
|
||||
name: "Записывать призрачные забеги"
|
||||
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, ваши забеги записываются,||&#A0A0A0чтобы вы могли их повторить позже."
|
||||
|
||||
special_blocks:
|
||||
material: ""
|
||||
name: "Использовать специальные блоки"
|
||||
|
|
@ -380,9 +385,15 @@ commands:
|
|||
unknown_player: "&#FF4444Неизвестный игрок."
|
||||
not_playing: "&#FF4444Этот игрок не в паркуре."
|
||||
reload: "&#A0A0A0Перезагрузка конфигов... (локали грузятся асинхронно)"
|
||||
replay:
|
||||
disabled: "&#FF4444Призрачные повторы отключены на этом сервере."
|
||||
no_runs: "&#A0A0A0У вас пока нет записанных забегов."
|
||||
invalid: "&#FF4444Неверный номер забега."
|
||||
starting: "7FF55Воспроизведение вашего забега..."
|
||||
help:
|
||||
header: "񢩈&m--------------- &#FF6464&lLoParkour 񢩈&m---------------"
|
||||
line_parkour: "&#A0A0A0/parkour 񢩈- Главная команда"
|
||||
line_replay: "&#A0A0A0/parkour replay [забег] 񢩈- Смотреть записанные забеги"
|
||||
line_join: "&#A0A0A0/parkour join [режим/игрок] 񢩈- Войти в режим"
|
||||
line_leave: "&#A0A0A0/parkour leave 񢩈- Выйти"
|
||||
line_menu: "&#A0A0A0/parkour menu 񢩈- Открыть меню"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue