https://github.com/lozaine/resourcesworldresetter
A plugin to reset the resources world at regular intervals.
https://github.com/lozaine/resourcesworldresetter
minecraft minecraft-plugin minecraft-server papermc spigot
Last synced: 2 months ago
JSON representation
A plugin to reset the resources world at regular intervals.
- Host: GitHub
- URL: https://github.com/lozaine/resourcesworldresetter
- Owner: Lozaine
- License: bsd-3-clause
- Created: 2024-09-27T14:00:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-18T16:45:08.000Z (over 1 year ago)
- Last Synced: 2025-08-22T13:14:23.728Z (10 months ago)
- Topics: minecraft, minecraft-plugin, minecraft-server, papermc, spigot
- Language: Java
- Homepage: https://loz-seas-organization.gitbook.io/resourcesworldresetter
- Size: 390 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
ResourceWorldResetter
## Overview
ResourceWorldResetter is a Spigot/Bukkit plugin designed to automatically manage and reset a designated resource world at scheduled intervals. It's perfect for Minecraft servers that want to provide fresh resources to players without completely resetting the entire server.
## Features
- **Automatic World Creation**: Automatically creates a "Resources" world if it doesn't exist
- **Scheduled Resets**: Resets the resource world on a configurable schedule
- **Warning System**: Warns players before a reset occurs
- **Player Safety**: Automatically teleports players out of the resource world before reset
- **Admin Commands**: Full set of commands to control all aspects of the plugin
- **Multiverse Integration**: Leverages Multiverse-Core for stable world management
- **Asynchronous Operations**: Uses background threads for resource-intensive operations to maintain server performance
## Requirements
- Minecraft 1.21.4
- Java 17 or higher
- Multiverse-Core 4.3.1 or higher
## Installation
1. Download the latest release from the [Releases](https://github.com/Lozaine/ResourceWorldResetter/releases) page
2. Place the JAR file in your server's `plugins` folder
3. Start or restart your server
4. The plugin will create a default configuration and a "Resources" world automatically
## Configuration (config.yml)
```yaml
worldName: "Resources" # The world to reset (defaults to "Resources")
resetWarningTime: 5 # Time (in minutes) to warn players before reset
resetInterval: 86400 # Time (in seconds) between resets (e.g., 24 hours = 86400)
restartTime: 3 # Time of day to reset (3 AM by default)
```
## Commands
| Command | Description | Permission |
|---------|-------------|------------|
| `/setworld ` | Set the resource world name | resourceworldresetter.admin |
| `/setresetinterval ` | Set the reset interval in hours | resourceworldresetter.admin |
| `/setrestarttime ` | Set the daily reset time (24hr format) | resourceworldresetter.admin |
| `/resetworld` | Force an immediate reset of the resource world | resourceworldresetter.admin |
| `/reloadworldresetter` | Reload the plugin configuration | resourceworldresetter.admin |
## Permissions
- `resourceworldresetter.admin` - Allows access to all plugin commands
## Performance Optimization
### Asynchronous Operations
ResourceWorldResetter uses background threads for resource-intensive operations to prevent server lag:
- **File I/O Operations**: World deletion and file operations run asynchronously to avoid blocking the main server thread
- **World Management**: The plugin carefully manages the reset process to minimize impact on server performance
- **Safe Thread Handling**: Operations that must run on the main thread (like Bukkit API calls) are properly scheduled
This approach prevents lag spikes during world resets, ensuring your server remains responsive even during maintenance operations.
## What's New in Version 2.1
- Improved asynchronous operations for better server performance
- Updated to support Minecraft 1.21.4
- Enhanced error handling and recovery mechanisms
- Optimized world deletion process
- Added more detailed logging for troubleshooting
## Building from Source
This project uses Gradle:
```bash
# Clone the repository
git clone https://github.com/yourusername/ResourceWorldResetter.git
# Navigate to the project directory
cd ResourceWorldResetter
# Build with Gradle
./gradlew build
```
## Support
If you encounter any issues or have questions, please create an issue on the GitHub repository or join Discord server here: https://discord.gg/Y3UuG7xu9x
## License
This project is licensed under BSD 3-Clause License - see the LICENSE file for details.