|
1 | 1 | # Changelog |
| 2 | + |
| 3 | +## [1.0.19] - 2025-12-10 |
| 4 | +### New Features |
| 5 | +- **Auto-Pay Option** - Players can enable auto-pay to automatically keep items on death |
| 6 | + - Toggle with `/dki autopay` command or via GUI button |
| 7 | + - When enabled, automatically pays and keeps items without showing GUI |
| 8 | + - Falls back to GUI if player doesn't have enough money |
| 9 | + - Setting saved per-player in database |
| 10 | + |
| 11 | +### Bug Fixes |
| 12 | +- **Fixed `/dki confirm` and `/dki autopay` error messages** - Now properly checks if GUI mode is enabled before allowing commands |
| 13 | + |
| 14 | +### Technical Changes |
| 15 | +- Added `player_settings` table for storing auto-pay preferences |
| 16 | +- Added auto-pay toggle button in Death Confirmation GUI (slot 8) |
| 17 | + |
| 18 | +## [1.0.18] - 2025-12-10 |
| 19 | +### New Features |
| 20 | +- **Death Confirmation GUI** - New economy mode `gui` that shows a GUI when player dies |
| 21 | + - Players can choose to pay to keep items or drop them |
| 22 | + - Configurable timeout (default: 30 seconds) |
| 23 | + - Persistent storage survives server restarts |
| 24 | + - Handles disconnect/reconnect gracefully |
| 25 | + - Protected against inventory duplication exploits |
| 26 | + - Command `/dki confirm` to reopen the GUI |
| 27 | +- **Pending Death Database** - Separate SQLite database for pending deaths persistence |
| 28 | + |
| 29 | +### Config Changes |
| 30 | +- New economy mode: `mode: "gui"` (alongside existing `charge-to-keep` and `charge-to-bypass`) |
| 31 | +- New GUI settings under `advanced.economy.gui`: |
| 32 | + - `timeout: 30` - Seconds before auto-drop |
| 33 | + - `expire-time: 300` - Seconds to store pending death if player disconnects |
| 34 | + |
| 35 | +### Bug Fixes |
| 36 | +- **Fixed timestamp not restored from DB** - Pending deaths loaded from database now use original timestamp instead of current time |
| 37 | +- **Fixed ConcurrentModificationException** - Cleanup task now collects expired IDs before iterating |
| 38 | +- **Fixed duplicate event listeners on reload** - Old DeathConfirmGUI listeners are now unregistered before creating new instance |
| 39 | + |
| 40 | +### Technical Changes |
| 41 | +- New classes: `PendingDeath`, `PendingDeathManager`, `DeathConfirmGUI` |
| 42 | +- Added `EconomyManager.getBalance()` method |
| 43 | +- Full Folia compatibility for GUI mode |
| 44 | + |
| 45 | +## [1.0.17] - 2025-12-10 |
| 46 | +### Bug Fixes |
| 47 | +- **Fixed ResultSet resource leak** - 6 database queries were not properly closing ResultSet objects, causing potential memory leaks |
| 48 | +- **Fixed async task race condition** - Stats async tasks now check shutdown flag inside the task to prevent SQLException after connection close |
| 49 | +- **Fixed economy retry spam** - Limited economy setup retries to 5 attempts (30s interval) instead of infinite retries |
| 50 | +- **Fixed PlaceholderAPI version** - Now uses dynamic version from plugin instead of hardcoded "1.0.15" |
| 51 | + |
| 52 | +### Improvements |
| 53 | +- Economy retry counter resets on `/dki reload` |
| 54 | +- Added debug logging for economy retry attempts |
| 55 | +- Better shutdown safety for async database operations |
| 56 | + |
| 57 | +## [1.0.16] - 2025-12-09 |
| 58 | +### Bug Fixes |
| 59 | +- Fixed stats GUI title detection so inventory clicks/drags are always cancelled |
| 60 | +- Fixed per-world keep-inventory resolution to use actual day/night state (not trigger window) |
| 61 | +- Lands override now cleanly defers to Lands when `override-lands=false`, avoiding double handling |
| 62 | +- Serialized all SQLite access to prevent concurrent connection use and potential locks |
| 63 | +- Removed unnecessary deprecation suppression in stats command lookup |
| 64 | + |
| 65 | + |
| 66 | +## [1.0.15] - 2025-12-07 |
| 67 | +### Bug Fixes |
| 68 | +- Fixed economy payments not being tracked in stats database |
| 69 | +- Fixed potential SQLite connection crashes on server lag |
| 70 | +- Fixed `/dki stats <player>` not working for offline players |
| 71 | + |
| 72 | +### Improvements |
| 73 | +- Added async database writes for better Paper/Folia performance |
| 74 | +- Database operations no longer block main server thread |
| 75 | +- Graceful shutdown with async task completion |
| 76 | + |
| 77 | +## [1.0.14] - 2025-12-07 |
| 78 | +### New Features |
| 79 | +- Added Player Stats GUI (`/dki stats [player]`) |
| 80 | +- SQLite database for persistent death statistics |
| 81 | +- Track deaths saved, deaths lost, economy paid, death reasons |
| 82 | +- 45-slot inventory GUI with player head, progress bar, server stats |
| 83 | +- Added 8 new PlaceholderAPI placeholders for stats |
| 84 | + |
| 85 | +### PlaceholderAPI Stats Placeholders |
| 86 | +- `%dynamickeepinv_stats_deaths_saved%` - Total deaths saved |
| 87 | +- `%dynamickeepinv_stats_deaths_lost%` - Total deaths lost |
| 88 | +- `%dynamickeepinv_stats_total_deaths%` - Total deaths |
| 89 | +- `%dynamickeepinv_stats_save_rate%` - Save rate percentage |
| 90 | +- `%dynamickeepinv_stats_economy_paid%` - Total economy paid |
| 91 | +- `%dynamickeepinv_stats_global_saved%` - Server-wide deaths saved |
| 92 | +- `%dynamickeepinv_stats_global_lost%` - Server-wide deaths lost |
| 93 | +- `%dynamickeepinv_stats_global_rate%` - Server-wide save rate |
| 94 | + |
| 95 | +### Config Changes |
| 96 | +- Config version updated to 5 |
| 97 | +- Added `stats.enabled` option |
| 98 | + |
| 99 | +### Permissions |
| 100 | +- `dynamickeepinv.stats` - View own stats |
| 101 | +- `dynamickeepinv.stats.others` - View other players' stats |
| 102 | + |
2 | 103 | ## [1.0.13] - 2025-12-04 |
3 | 104 | ### New Features |
4 | 105 | - Added PlaceholderAPI support with 14 placeholders |
|
0 commit comments