How winsmp/fastfoliaworldedit works
FastFoliaWorldEdit is a Paper/Folia Minecraft editing plugin. A player marks two world bounds with an action item, then invokes commands to count or replace matching blocks; replacement plans are scheduled per chunk, applied to the world, and recorded for undo/redo. Filtering, weighted material parsing, chunk regeneration, and progress reporting are separate branches. The README is only a template, so this map is based on the sampled Kotlin runtime sources; unsampled resource configuration is not expanded.
Components 16
Plugin Runtime
- Plugin Lifecycle
src/main/kotlin/org/winlogon/ffwe/FfwePlugin.kt - FFWE Commands
src/main/kotlin/org/winlogon/ffwe/FfweCommand.kt - Bound Listener
src/main/kotlin/org/winlogon/ffwe/BoundListener.kt
Selection Filtering
- Filter Arguments
src/main/kotlin/org/winlogon/ffwe/BlockFilterArgument.kt - Filter Registry
src/main/kotlin/org/winlogon/ffwe/BlockFilterRegistry.kt - Block Filters
src/main/kotlin/org/winlogon/ffwe/BlockFilter.kt - Region Bounds
src/main/kotlin/org/winlogon/ffwe/Region.kt
World Operations
- Folia Scheduler
- Block Replacer
src/main/kotlin/org/winlogon/ffwe/BlockReplacer.kt - Block Counter
src/main/kotlin/org/winlogon/ffwe/BlockCounter.kt - Coordinate Packing
src/main/kotlin/org/winlogon/ffwe/CoordPacker.kt
History Integration
- Minecraft World
- History Manager
src/main/kotlin/org/winlogon/ffwe/HistoryManager.kt - Region Files
Other components
- Player
- Paper Server
Connections 31
- Paper Server → Plugin Lifecycle: enables
- Plugin Lifecycle → FFWE Commands: registers commands
- Plugin Lifecycle → Bound Listener: registers events
- Player → Bound Listener: selects bounds
- Bound Listener → Player: reports bounds
- Player → FFWE Commands: runs commands
- FFWE Commands → Bound Listener: reads bounds
- FFWE Commands → Filter Arguments: converts filters
- Filter Arguments → Filter Registry: resolves names
- Filter Arguments → Block Filters: creates filters
- FFWE Commands → Block Replacer: parses replacements
- FFWE Commands → Block Replacer: plans changes
- Block Replacer → Region Bounds: normalizes bounds
- Block Replacer → Block Filters: matches blocks
- Block Replacer → Folia Scheduler: schedules chunks
- Block Replacer → Minecraft World: writes blocks
- Block Replacer → Coordinate Packing: packs coordinates
- FFWE Commands → Block Counter: counts blocks
- Block Counter → Block Filters: matches blocks
- Block Counter → Region Bounds: normalizes bounds
- Block Counter → Folia Scheduler: schedules chunks
- Block Counter → Minecraft World: reads blocks
- FFWE Commands → History Manager: records changes
- FFWE Commands → History Manager: undoes changes
- FFWE Commands → History Manager: redoes changes
- History Manager → Coordinate Packing: unpacks coordinates
- History Manager → Minecraft World: restores blocks
- FFWE Commands → Player: reports progress
- FFWE Commands → Player: reports results
- FFWE Commands → Block Replacer: regenerates chunks
- Block Replacer → Region Files: deletes region files