- leaderboard: parse M:SS.mmm/H:MM:SS(.mmm), switch TIME sort to long (п.25) - sql: single Hikari pool, non-blocking connect, adaptive init order, settings JSON round-trip (п.27-30) - coop: remove unregister recursion via session-only leave + reentrancy guard (п.24) - jump: perpendicular jitter for diagonal heading, valid safety-fallback on retry exhaustion (п.32-33) - lifecycle: fall threshold relative to course, lead via generated-blocks counter, one-time rewards once (п.35-37) - schematics: catch RuntimeExceptions, validate size, 10MB file limit (п.31) - config merge: preserve block-sequence lists and ignored sections, fix path reversal (п.26) - tests: +31 (score, jump, schematics, config merge) = 72 total
88 lines
No EOL
6.1 KiB
XML
88 lines
No EOL
6.1 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE suppressions PUBLIC
|
|
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
|
|
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
|
|
|
|
<!--
|
|
Suppressions for legacy files that violate the stricter rules:
|
|
- FileLength (200-line limit),
|
|
- IllegalCatch (no catch of Exception/Throwable/RuntimeException),
|
|
- NPathComplexity (<= 50) and WhitespaceAround.
|
|
|
|
Legacy files are scheduled for decomposition / cleanup (see docs/ARCHITECTURE.md).
|
|
Remove each entry once the file complies on its own.
|
|
|
|
New files must already comply with ALL rules and must NOT be added here —
|
|
EXCEPT two documented defensive boundary catches (see below).
|
|
|
|
NOTE: the noisy MagicNumber/FinalLocalVariable rules are kept at
|
|
severity="warning", so they do not need suppressions.
|
|
-->
|
|
|
|
<suppressions>
|
|
<!-- ===== FileLength (200 lines) ===== -->
|
|
|
|
<!--
|
|
===== Intentional defensive boundary catches =====
|
|
These are NOT swallowing exceptions:
|
|
- LoParkourCommand.onCommand: catches Throwable at the command entry point,
|
|
logs the full stack trace and notifies the player (never silent).
|
|
- ConfigUpdater: catches Exception to roll back to the backup copy and
|
|
rethrows — transactional semantics, the exception is not swallowed.
|
|
Do not remove without a review of the intended behavior.
|
|
-->
|
|
<suppress checks="IllegalCatch" files=".*[\\/]command[\\/]core[\\/]LoParkourCommand\.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]config[\\/]core[\\/]merge[\\/]ConfigUpdater\.java"/>
|
|
|
|
<!--
|
|
SchematicManager: catches RuntimeException so a corrupted/truncated schematic
|
|
(WorldEdit/Bukkit throw unchecked exceptions) is skipped instead of breaking
|
|
plugin enable. Not swallowing — the failure is logged at SEVERE with the cause.
|
|
-->
|
|
<suppress checks="IllegalCatch" files=".*[\\/]schematic[\\/]core[\\/]SchematicManager\.java"/>
|
|
|
|
<!-- ===== IllegalCatch / NPathComplexity / WhitespaceAround (legacy debt) ===== -->
|
|
<suppress checks="IllegalCatch" files=".*[\\/]LoParkour.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]adaptive[\\/]bootstrap[\\/]AdaptiveServices.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]bootstrap[\\/]PluginBootstrap.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]command[\\/]player[\\/]PlayerCommandHandler.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]config[\\/]core[\\/]ConfigLoader.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]config[\\/]locale[\\/]LocaleCache.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]config[\\/]locale[\\/]LocaleLoader.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]config[\\/]options[\\/]OptionGeneral.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]generator[\\/]core[\\/]coordinator[\\/]GeneratorProfileManager.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]generator[\\/]core[\\/]model[\\/]GeneratorState.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]generator[\\/]effect[\\/]EffectManager.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]generator[\\/]jump[\\/]calculation[\\/]JumpDirector.java"/>
|
|
<suppress checks="IllegalCatch|NPathComplexity" files=".*[\\/]generator[\\/]jump[\\/]calculation[\\/]JumpValidator.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]generator[\\/]jump[\\/]placement[\\/]BlockSelector.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]generator[\\/]lifecycle[\\/]loop[\\/]LifecycleEventManager.java"/>
|
|
<suppress checks="NPathComplexity|WhitespaceAround" files=".*[\\/]generator[\\/]lifecycle[\\/]player[\\/]GeneratorCleanup.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]hook[\\/]floodgate[\\/]FloodgateHook.java"/>
|
|
<suppress checks="IllegalCatch|NPathComplexity|WhitespaceAround" files=".*[\\/]hook[\\/]holo[\\/]HoloHook.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]hook[\\/]vault[\\/]VaultHook.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]leaderboard[\\/]core[\\/]LeaderboardSorter.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]listener[\\/]gameplay[\\/]ParkourRestrictionListener.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]listener[\\/]schematic[\\/]SchematicWandListener.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]community[\\/]LeaderboardsMenu.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]community[\\/]SingleLeaderboardMenu.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]menu[\\/]core[\\/]screen[\\/]DynamicMenu\.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]core[\\/]screen[\\/]MainMenu\.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]menu[\\/]core[\\/]MenuStub.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]lobby[\\/]LobbyMenu.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]lobby[\\/]PlayerManagementMenu.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]play[\\/]SingleMenu.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]menu[\\/]play[\\/]SpectatorMenu.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]mode[\\/]impl[\\/]solo[\\/]GravityShiftMode\.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]player[\\/]data[\\/]InventoryData.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]player[\\/]data[\\/]PreviousData.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]player[\\/]service[\\/]ui[\\/]ScoreboardManager\.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]player[\\/]service[\\/]UserRegistry.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]reward[\\/]core[\\/]Reward.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]session[\\/]manager[\\/]SessionStateManager.java"/>
|
|
<suppress checks="IllegalCatch" files=".*[\\/]storage[\\/]sql[\\/]SQLConnectionManager.java"/>
|
|
<suppress checks="WhitespaceAround" files=".*[\\/]storage[\\/]sql[\\/]SQLDataMapper.java"/>
|
|
<suppress checks="NPathComplexity|WhitespaceAround" files=".*[\\/]util[\\/]item[\\/]Materials.java"/>
|
|
<suppress checks="NPathComplexity" files=".*[\\/]world[\\/]core[\\/]World.java"/>
|
|
</suppressions> |