feat: Add Nexo integration and economy-based respawn costs
- Integrated Nexo API for handling custom furniture and block events:
- Added `NexoFurnitureListener` to handle Nexo furniture placement and breaking.
- Added `NexoBlockListener` to handle Nexo note block placement and breaking.
- Implemented economy-based respawn costs:
- Updated `RespawnEconomy` to include `chargeForRespawn` method.
- Made respawn costs configurable via `config.yml`.
- Updated `PwingGraves` to register Nexo listeners conditionally based on plugin availability.
- Enhanced configuration:
- Added settings for Nexo furniture and block IDs in `config.yml`.
- Updated `messages.yml` to include economy-related messages.
- Fixed malformed code in `RespawnEconomy.java`.
- Updated `plugin.yml` to declare Nexo as a soft dependency.
- Cleaned up and refactored listeners for better modularity and maintainability.
### Example Usage:
1. **Nexo Furniture**:
- Place a Nexo furniture item with the configured ID (e.g., `nexo:beacon`) to create a respawn point.
- Break the furniture to remove the associated respawn point.
2. **Nexo Block**:
- Place a Nexo note block with the configured ID (e.g., `nexo:beacon`) to create a respawn point.
- Break the block to remove the associated respawn point.
Add automatic message.yml generation and updates
Implement smart config merging for new messages
Preserve user customizations during updates
Add InputStreamReader for efficient file handling
Enhance message system robustness
This update ensures seamless message system updates while maintaining user configurations.
Add centralized message management for all GUI components
Create hierarchical message structure in messages.yml
Update admin and respawn GUI systems to use translatable messages
Enhance GUI titles and item descriptions with configurable text
Standardize message formatting across all interfaces
This update improves customization options and enables full translation support throughout the plugin.