
CombatGunSSS
Adds 45 unique guns to Minecraft, each with custom damage, recoil, fire rate, and reload mechanics, enhancing combat with balanced gameplay, multiple weapon types, and flexible customization for varied playstyles
124
3
Список изменений
[2.0.1] - 2026-04-14
Fixed
Plugin crash on startup (onEnable exception → plugin disabled)
- Root cause: Any uncaught exception inside
onEnable()caused Bukkit to calldisablePlugin()immediately, leaving the plugin in a broken state where commands responded with "plugin is disabled" instead of a useful error message. - Fix: Refactored
onEnable()into isolated private methods (initManagers(),registerListeners(),startServices(),registerCommands()). Each step is now wrapped in a top-level try-catch. A detailed stack trace is printed to console before the plugin gracefully self-disables — making the actual root cause visible instead of a cryptic command error.
StatsManager (SQLite) failure no longer kills the plugin
statsManager.init()is now wrapped in its own try-catch. If SQLite initialisation fails (missing driver, file permission error, corrupted DB), the plugin logs a warning, setsstatsManager = null, and continues loading. All stats-dependent features (/gun stats,/gun leaderboard, PAPI%combatgun_kills%etc.) degrade gracefully with a user-friendly error message.
HookManager failure no longer kills the plugin
hookManager.initAll()is wrapped in a try-catch. If any soft-depend integration throws an unexpected exception, the hook manager is set tonulland the plugin runs without integrations rather than crashing entirely.
Null pointer exceptions when hookManager or statsManager are null
GunListener.isAllowed()— WorldGuard check now guards withhm != nullbefore callingcanShoot().GunListener.applyRecoil()— AntiCheat exempt call guarded withhm2 != null.GunCommand.handleBuy()— Vault access guarded; returns a friendly error if hook manager is unavailable.GunCommand.handleStats()/handleLeaderboard()— Guarded withstatsManager != nullcheck; returns a friendly error if stats are disabled.EntityDeathListener— Stats recording guarded withstatsManager != null.
Material.GREY_DYE compile error
ThrowableManagerused the pre-1.13 material nameGREY_DYEwhich no longer exists. Corrected toGRAY_DYE(American English naming introduced in the 1.13 flattening).
Changed
onEnable()restructured intoinitManagers(),registerListeners(),startServices(),registerCommands(),scheduleCleanup(),printStartupBanner()for clarity and fault isolation.onDisable()wraps each cleanup call in its own try-catch so a failure in one manager never prevents the others from shutting down cleanly.- Startup banner now correctly reads version from
plugin.ymlat runtime viagetDescription().getVersion()— no hardcoded version strings in Java code.
Файлы
CombatGunSSS-2.0.1.jar(12.91 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
2.0.1
Загрузчики
PaperPurpur
Версии игры
1.21–1.21.11
Загрузок
3
Дата публикации
5 дн. назад
