|
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 | | - |
103 | 2 | ## [1.0.13] - 2025-12-04 |
104 | 3 | ### New Features |
105 | 4 | - Added PlaceholderAPI support with 14 placeholders |
|
0 commit comments