FinderTools
A high-performance asynchronous world scanning plugin designed specifically for Minecraft 1.20.1 Paper servers, supporting precise block and entity detection.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
FinderTools
FinderTools - High-Performance Async World Scanning Tool
FinderTools is a high-performance asynchronous world scanning plugin designed specifically for Minecraft 1.20.1 Paper servers, supporting precise block and entity detection. > Note: This plugin is developed with AI assistance
Features
- 🔍 Task Control - Efficient block and entity scanning without server performance impact - 🌍 Task Control - Support for entire world, specific region files, loaded/unloaded chunks - 📊 Task Control - Automatic memory monitoring, garbage collection and optimization - 📈 Task Control - Progress output every 10%, supports console and player messages - 📄 Task Control - Automatic YAML format scan reports with complete statistics - ⚙️ Task Control - Configurable thread count, scan intervals, memory thresholds and more - 🔒 Task Control - Complete permission node control for secure usage - ⏯️ Task Control - Support for stopping, pausing, and resuming scan tasks with flexible process management
Requirements
- Minecraft 1.20.1 - Paper Server - Java 8 or higher
Installation
1. Download the `FinderTools-1.0-SNAPSHOT.jar` file 2. Place the file in your server's `plugins` folder 3. Restart the server or use the `/reload` command 4. The plugin will automatically create configuration files and report directories
Commands
Basic Command Format
``` /findertools find <block|entity> <id> <world> [options] ```
Command Examples
Block Scanning
```bash
Scan for diamond ore in the entire world
/findertools find block diamond_ore world
Scan for stone in loaded chunks only
/findertools find block stone world{type='enabled'}
Scan for gold ore in a specific region
/findertools find block gold_ore world{region='0,0'} ```
Entity Scanning
```bash
Scan for villagers in the entire world
/findertools find entity villager world
Scan for zombies in loaded chunks
/findertools find entity zombie world{type='enabled'}
Scan for cows in a specific region
/findertools find entity cow world{region='-1,2'} ```
Task Control Commands
```bash
Stop current scan task
/findertools stop
Pause current scan task
/findertools pause
Resume paused scan task
/findertools start /findertools resume
Check current scan status
/findertools status ```
Other Commands
```bash
Reload configuration file
/findertools reload
Show help information
/findertools help ```
Permissions
| Permission Node | Description | Default | |----------------|-------------|---------| | `findertools.command` | Basic command usage permission | op | | `findertools.command.find` | Find command usage permission | op | | `findertools.command.reload` | Configuration reload permission | op | | `findertools.command.state` | Scan task control permission | op |
Configuration
Configuration file location: `plugins/FinderTools/config.yml`
Scan Configuration
```yaml scan: chunk-interval: 1 # Chunk scanning interval (ticks) write-interval: 10 # Chunk count interval for report writing debug: false # Enable debug output ```
Thread Configuration
```yaml threading: max-threads: 4 # Maximum thread count max-thread-usage: 0.8 # Maximum usage per thread check-interval: 100 # Thread check interval (milliseconds) ```
Memory Management
```yaml memory: max-memory-mb: 512 # Memory usage threshold (MB) gc-threshold: 0.9 # Forced garbage collection threshold ```
Report Configuration
```yaml report: output-directory: "plugins/FinderTools/reports" # Report save directory format: "yml" # Report file format detailed: true # Include detailed information ```
Progress Output
```yaml progress: output-interval: 10 # Progress output interval (percentage) console-output: true # Output progress to console player-output: true # Send progress messages to executor ```
Report Format
After scanning completion, the plugin generates report files in the format `report_YYYYMMDD_8-digit-random-ID.yml`.
Report Example
```yaml report: info: generated_at: "2024-01-01 12:00:00" plugin_version: "1.0-SNAPSHOT" request_id: "12345678-1234-1234-1234-123456789abc"
parameters: scan_type: "block" target_id: "diamond_ore" world: "world" loaded_only: false
statistics: total_results: 156 total_chunks_processed: 1000 chunks_with_results: 45 scan_duration_ms: 30000 scan_duration_readable: "30 seconds" completed_at: "2024-01-01 12:00:30"
results: - world: "world" location: "123,45,678" chunk: "7,42" type: "block" target: "diamond_ore" ```
Performance Optimization
Memory Optimization
- Automatic memory monitoring and garbage collection - Periodic report writing to release memory - Smart adjustment of write intervals
Thread Optimization
- Configurable thread pool size - Thread usage monitoring - Priority adjustment to avoid server performance impact
Scan Optimization
- Asynchronous chunk loading and unloading - Smart chunk state detection - Configurable scan intervals
Troubleshooting
Common Issues
Q: Scanning is very slow? A: Increase the `threading.max-threads` value or decrease the `scan.chunk-interval` value.
Q: Server experiencing lag? A: Reduce thread count, increase scan intervals, or lower the `threading.max-thread-usage` value.
Q: High memory usage? A: Decrease the `scan.write-interval` value to make the plugin write reports more frequently and release memory.
Q: Cannot find report files? A: Check the `report.output-directory` configuration and ensure the directory exists with write permissions.
Development Information
- Source Code: NSrank & Augment - Source Code: 1.1-SNAPSHOT - Source Code: MIT - Source Code: Please contact the author for source code
Support
If you encounter issues or have feature suggestions during usage, please contact the plugin author.
License
This project is licensed under the MIT License - see the LICENSE file for details
---
FinderTools - Making world scanning simple and efficient!