# Changelogs
### Added:
- **Automatic safety backup before every restore**
- **Discord webhook notifications for backups**
- **Atomic (crash-safe) file restore**
### Fixed:
- Blacklisted items could be placed into the EnderChest via hotbar number-key swap — now blocked.
- `/ec search` ignored the "require permission for command" setting — it now respects `ec.use` like every other command.
- Switching pages could freeze the server (especially with MySQL) because saving ran on the main thread — page switching is now fully asynchronous.
- `/ec reload` could hang the server for up to 10 seconds while waiting for open chests to save — it no longer blocks the main thread.
- MySQL chest lock had a race condition — two networked servers opening the same chest at once could both acquire the lock. The lock is now claimed atomically.
- MySQL restore now runs in a proper transaction with rollback — a failed restore no longer leaves the database half-wiped.
- Offline player name lookups in `/ecsee`, `/ecshare`, `/ec clear`, `/ec uninvite`, `/ec rowinfo`, and `/ec pageinfo` no longer risk freezing the server on unknown names (resolved asynchronously now).
### Removed:
- Dead/unused internal code.
- Unused `enderchest.command.use` permission node.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }