No description
Find a file
loki5512344 c120309663
refactor(config): encapsulate option sections, drop the Option mirror
Option was a facade of 45 public static fields kept in sync with the four
sections by syncFields(); the sections themselves also exposed public static
mutable fields. 88 VisibilityModifier violations in one place and two owners
for every value.

- Option keeps only init(boolean) (the reload entry ConfigLoader calls);
  the mirrors, syncFields() and the unused @Deprecated initStyles are gone
- sections hold private static state behind fluent accessors (OptionSQL.enabled(),
  OptionGeneration.cleanupInterval(), OptionGeneral.goBackLocation()); the two
  Option.SQL = false writes become OptionSQL.disable()
- collection/location accessors hand out unmodifiable views and a Location copy,
  so no caller can mutate loaded config state
- ParticleShape promoted from nested enum to config/options/ParticleShape
- delete 17 never-read generation probability fields and initGenerationProbabilities():
  live weights come from advanced.* via GeneratorProfileManager/GenerationProfileLoader;
  min-y/max-y guard moved 1:1 into initBounds()
- rewrite 63 Option.<FIELD> reads in 19 files to the section accessors
- validateConfigs() now checks the paths the code actually consumes
  (advanced.distance/height/type weights) instead of the dead generation.normal.*
- ParkourRestrictionListener.onChat: getOrDefault(CHAT, true) instead of unboxing
  a Boolean that may be absent

checkstyle 0 errors / 329 -> 240 warnings (VisibilityModifier 163 -> 75);
config/options itself is clean. Dead config keys found on the way are filed as
TODO items 164-166. ./gradlew check green: PMD 0, 94 tests, NullAway unchanged.
2026-10-06 15:54:31 +02:00
.github build: add ArchUnit, JaCoCo, Spotless, SpotBugs, Error Prone/NullAway, forbidden-apis, CPD, dependency-analysis 2026-10-06 13:50:25 +02:00
config build: two-tier checkstyle gate, empty suppressions, fix baseline 2026-10-06 14:17:14 +02:00
docs refactor: remove legacy .lpschem format (TODO 117) 2026-08-05 18:58:18 +02:00
gradle/wrapper ci: fix multi-version build matrix (Gradle 9 + Java 21 for 1.19.x) 2026-08-06 13:51:51 +02:00
src refactor(config): encapsulate option sections, drop the Option mirror 2026-10-06 15:54:31 +02:00
.gitignore refactor: drop lolib, add own scheduler, inventory GUI and void generator 2026-10-06 13:41:25 +02:00
build.gradle.kts build: add ArchUnit, JaCoCo, Spotless, SpotBugs, Error Prone/NullAway, forbidden-apis, CPD, dependency-analysis 2026-10-06 13:50:25 +02:00
CHANGELOG.md docs: add 1.4.0 changelog (en+ru) 2026-08-06 14:43:35 +02:00
gradle.properties Initial commit: LoParkour v1.1.0 2026-02-24 22:07:03 +01:00
gradlew feat: replace Elytra mode with Invisible Barrier mode 2026-07-06 11:24:09 +02:00
gradlew.bat Initial commit: LoParkour v1.1.0 2026-02-24 22:07:03 +01:00
LICENSE Initial commit: LoParkour v1.1.0 2026-02-24 22:07:03 +01:00
README.md chore: bump version to 1.4.0 2026-08-06 14:37:35 +02:00
settings.gradle.kts fix 50% 2026-03-01 22:43:37 +01:00
TODO.md refactor(config): encapsulate option sections, drop the Option mirror 2026-10-06 15:54:31 +02:00

LoParkour

Advanced infinitely generating parkour plugin with ghost system, leaderboards and multiple game modes.

Java Paper Folia License version

English | Русский


English

Overview

LoParkour is an advanced parkour plugin with infinite world generation. The course generates endlessly as you play, with multiple game modes, a ghost racing system, custom schematics, visual themes, and MySQL leaderboards.

Features

Feature Description
Infinite generation Parkour generates endlessly as you play
Multiple game modes Default, Speedrun, Gravity Shift, Elytra
Ghost system Race against top player recordings
Custom schematics Create and use your own parkour structures (.lpschem)
Visual themes Customize block styles and particle effects
Leaderboards Track high scores with MySQL or local storage
Rewards system Configure rewards for score milestones
Multi-language Full localization support (en, ru included)
PlaceholderAPI Parkour stats in other plugins
Vault economy Economy rewards support
Floodgate Bedrock player support

Game Modes

Mode Description
Default Classic infinite parkour
Speedrun Blocks disappear after a few seconds
Gravity Shift Random gravity effects (levitation, slow falling, jump boost)
Elytra Fly through particle rings

Commands

Command Description
/lp join Join parkour
/lp leave Leave parkour
/lp spectate <player> Spectate another player
/lp schematic save <name> Save a schematic
/lp schematic reload Reload schematics
/lp schematic convert Convert old vilib format
/lp forcejoin <player> Force player to join (admin)
/lp reset Reset leaderboards (admin)

Dependencies

  • Required: Paper 1.19.2+, Java 21+
  • Optional: PlaceholderAPI, Vault, HolographicDisplays, Floodgate, Multiverse-Core

Installation

  1. Drop the jar into plugins/
  2. Restart the server
  3. Configure plugins/LoParkour/config.yml

Русский

Обзор

LoParkour - продвинутый паркур-плагин с бесконечной генерацией мира. Трасса генерируется по мере игры, с несколькими режимами, системой призраков, кастомными схематиками, визуальными темами и MySQL лидербордами.

Возможности

Возможность Описание
Бесконечная генерация Паркур генерируется по мере игры
Несколько режимов Default, Speedrun, Gravity Shift, Elytra
Система призраков Гонка против записей топ-игроков
Кастомные схематики Создавайте свои структуры (.lpschem)
Визуальные темы Настройка стилей блоков и частиц
Лидерборды Топ результатов через MySQL или локально
Награды Настройка наград за достижение очков
Мультиязычность Полная локализация (en, ru)
PlaceholderAPI Статистика паркура в других плагинах
Vault Экономические награды
Floodgate Поддержка бедрок-игроков

Команды

Команда Описание
/lp join Начать паркур
/lp leave Выйти из паркура
/lp spectate <игрок> Наблюдать за игроком
/lp schematic save <имя> Сохранить схематику
/lp schematic reload Перезагрузить схематики
/lp forcejoin <игрок> Заставить игрока начать (админ)
/lp reset Сбросить лидерборды (админ)

Зависимости

  • Обязательные: Paper 1.19.2+, Java 21+
  • Опциональные: PlaceholderAPI, Vault, HolographicDisplays, Floodgate, Multiverse-Core

Установка

  1. Положите jar в папку plugins/
  2. Перезапустите сервер
  3. Настройте plugins/LoParkour/config.yml

License

GNU General Public License v3.0