WorldsColors

**🌎 WorldsColors** brings visual clarity and style to your Minecraft server by automatically coloring player nicknames depending on the dimension they are in.

Make Nether inhabitants glow in intimidating red, let Overworld adventurers keep a clean look, and give End explorers a soft, mystical pink — all fully automated and seamless.

**✨ Key Features**

Instant dimension-based coloring
Player name colors update immediately when entering or leaving a dimension.

Everywhere you need it
Colors are shown in chat, the TAB player list, and above player heads.

100% server-side
No client-side installation required — players can join with a vanilla client.

Highly compatible
Designed to work smoothly with other mods that modify chat or TAB lists.

Fully customizable
Configure colors for any dimension using a simple and flexible config file.

**🔧 Commands**

/worldscolor reload
Reload the configuration instantly without restarting the server.

世界存档优化器(自动异步保存)

# WorldSaveOptimizer

## 概述Overview
专为bukkit 1.21+服务器设计的插件,优化世界保存功能。
A plugin designed specifically for Bukkit 1.21 servers, optimizing world-saving functionality.

## 功能特性Features
– 异步自动保存:每5分钟自动保存,减少卡顿
– 可禁用原版自动保存机制
– 手动保存支持
– 灵活配置系统
– 完整命令和权限系统
– Asynchronous auto-save: automatically saves every 5 minutes to reduce lag
– Option to disable the original auto-save mechanism
– Manual save supported
– Flexible configuration system
– Complete command and permission system

## 系统要求System Requirements
– bukkit 1.21+
– Java 21+
– 建议2GB RAM Recommended 2GB RAM

## 安装方法Installation method
1. 将WorldSaveOptimizer.jar放入plugins目录-Place WorldSaveOptimizer.jar into the plugins directory
2. 重启服务器或使用/reload命令-Restart the server or use the /reload command

## 配置文件Configuration File
首次启动后在plugins/WorldSaveOptimizer/config.yml生成配置The configuration will be generated in plugins/WorldSaveOptimizer/config.yml after the first launch:

`yaml
save-interval-minutes: 5
save-message: “&aWorld has been auto-saved”
disable-default-autosave: true
log-saves: true
save-on-stop: true
`

可能出现配置文件不生成、内容空白等错误,这时,你只需到
“`
https://github.com/ABC114514114514114514/WorldSaveOptimizer/blob/main/%E7%A4%BA%E4%BE%8B%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.yml
“`
_
复制初始配置内容到**config.yml**

Errors such as the configuration file not being generated or appearing empty may occur. In this case, you just need to go to
“`
https://github.com/ABC114514114514114514/WorldSaveOptimizer/blob/main/ExampleConfig.yml
“`
and copy the initial configuration content into **config.yml**

## 命令使用
需要worldsaveoptimizer.admin权限(OP默认拥有)

| 命令 | 说明 |
|——|——|
| /s reload | 重载插件配置 |
| /s save | 手动保存世界 |
| /s status | 查看保存状态 |
| /s info | 查看插件信息 |

## Command Usage
Requires worldsaveoptimizer.admin permission (OPs have it by default)

| Command | Description |
|———|————|
| /s reload | Reload the plugin configuration |
| /s save | Manually save the world |
| /s status | Check the save status |
| /s info | View plugin information |

**注意**:使用前请备份世界数据。
**Note**: Please back up your world data before use.

WorldSaveBroadcast

# WorldSaveBroadcast
WorldSaveBroadcast is a plugin for [Bukkit](https://bukkit.org), [Spigot](https://spigotmc.org) or [Paper](https://papermc.io) that broadcasts a message to all players when the server is saving the world.

# About
This is a very simple plugin for your Minecraft server.
It sends a message to all players when the server saves a world.
It creates a configuration file with a default message that you can change.

The message also supports the placeholder `%name%`, which is replaced by the name of the world.

Please note that this plugin sends a message for each world / dimension that is saved.
This means, if you have `world`, `world_nether` and `world_the_end`, the message will be sent 3 times.

# Features
* Lightweight
* Easy to use
* Plug and play
* Customizable message
* Placeholder support
* Supports color codes and formatting codes
* Supports multiple worlds / dimensions
* Supports Bukkit, Spigot and Paper
* Works on pretty much all versions of Minecraft
* Open source and free

# How to use
* Download the plugin
* Put the plugin in your plugins folder
* (Re)start your server
* Open the config file to edit the message
* (Re)start or reload your server

# Config
“`yaml
message: “&o[Server: Saved the world %name%]”
“`

WorldRulesManage

# WorldRulesManage Plugin Overview

**WorldRulesManage** is a professional plugin for managing world rules. It allows you to freely configure player behavior (e.g., blocking block breaking, block triggering, block interaction, etc.) and world behaviors (e.g., blocking fire spread, liquid flow, etc.) in specific worlds. You can also define radius-based rules using coordinates to restrict player or world actions within a certain area.
**Use cases:** Server lobbies, spawn protection, and controlled world zones.
> English [README.md](https://github.com/MaddyJace/WorldRulesManage/blob/5.0/README.md)

> 中文简体 [CN-README.md](https://github.com/MaddyJace/WorldRulesManage/blob/5.0/CN-README.md)

## 📦 Plugin Features
– Supports global and radius-based world rules: prevent fire spread, prevent leaf decay, prevent block ignition (non-player), prevent entity block destruction, and block liquid flow (e.g., lava and water).
– Supports global and radius-based player rules: custom permission control, prevent block ignition, block breaking, block placing, item pickup/drop, bucket usage (e.g., collect water), hunger,
auto-restore hunger to full, prevent player damage, block all portals (overrides Nether/End), block Nether portal, block End portal, block specific item usage (configured by you),
block interaction with specific entities/blocks, block triggering of specific blocks.
– Radius rule shapes (for world and player): 2D Circle (ignores Y), 3D Sphere (includes Y), 2D Square (ignores Y), 3D Cube (includes Y), custom origin and radius values.
– Supports blacklist/whitelist configuration
– Supports multiple worlds
– Supports auto-hot-reload of configuration files

# ⚙️ WorldRulesManage Configuration Guide
> [config.yml](https://github.com/MaddyJace/WorldRulesManage/blob/5.0/src/main/resources/config.yml)

> [world.yml](https://github.com/MaddyJace/WorldRulesManage/blob/5.0/src/main/resources/world.yml)

> [radius.yml](https://github.com/MaddyJace/WorldRulesManage/blob/5.0/src/main/resources/radius.yml)

> [message.yml](https://github.com/MaddyJace/WorldRulesManage/blob/5.0/src/main/resources/message.yml)

### ✅ `worldName: ` # Name of the world (e.g., world)
### ✅ `globalRules:` # Rules applied to the world, regardless of player permissions
– `flameSpread: true` # Prevent fire from spreading
– `leavesDecay: true` # Prevent leaf decay
– `blockIgnite: true` # Prevent block ignition
– `entityBlockBreak: true` # Prevent entities from breaking blocks
– `liquidFlow: true` # Prevent liquid flow

### ✅ `playerRules:` # Rules applied to players without permission
– `permission: “wm.world”` # Permission node
– `blockIgnite: true` # Prevent players from igniting blocks
– `blockBreak: true` # Prevent players from breaking blocks
– `blockPlace: true` # Prevent players from placing blocks
– `itemPickup: false` # Prevent players from picking up items
– `itemDrop: false` # Prevent players from dropping items
– `usePail: true` # Prevent players from using buckets (e.g., to collect water)
– `food: true` # Prevent hunger
– `foodSatiety: true` # Restore hunger to full
– `playerDamage: true` # Prevent player damage
– `portalAll: false` # Prevent all portal access (overrides portalNether and portalEnder)
– `portalNether: false` # Prevent Nether portal access
– `portalEnder: false` # Prevent End portal access

######
– `🎯playerUseItem:` # Block item usage
– `type:` `BLACKLIST` / `WHITELIST`
– `list:`
– “EGG” # Egg
– “FLINT_AND_STEEL” # Flint and Steel

######
– `🧍PlayerInteractEntity:` # Block entity interaction
– `type:` `BLACKLIST` / `WHITELIST`
– `list:`
– “ITEM_FRAME” # Item Frame
– “PAINTING” # Painting
– “ARMOR_STAND” # Armor Stand

######
– `🧱PlayerInteractBlock:` # Block block interaction
– `type:` `BLACKLIST` / `WHITELIST`
– `list:`
– “LEVER” # Lever
– “FURNACE” # Furnace

######
– `🎛️PlayerTriggerBlock:` # Block block triggering
– `type:` `BLACKLIST` / `WHITELIST`
– `list:`
– “SOIL” # Farmland
– “TRIPWIRE” # Tripwire

### `This option only takes effect in radius.yml`
– `✅settingsRadius:`
– `type:` `2DRange`, `3DRange`, `2DCube`, `3DCube`
– `xyz:` # Starting coordinates (e.g., 0 0 0)
– `radius:` # Radius in blocks

## 📌 Case Sensitivity Warning

> ⚠️ **Important:** All configuration keys are case-sensitive. Misuse of uppercase/lowercase may result in errors or ignored settings.

## 🛠 Recommended Practices
– When using TNT near the radius edge, explosions may affect blocks just outside the protected area. To avoid this, expand the radius by 7 blocks for edge safety.
– Remove or comment out unused configuration sections to keep your setup clean and readable.

WorldRules

# 🌍 WorldRules

**WorldRules** is a lightweight yet powerful **Paper plugin** that gives you full control over player interactions and chat — both globally and per-player.

Perfect for **event, minigames**.

## ✨ Features

### 🔒 Interaction Control
– Enable/disable:
– Block placing & breaking
– Item usage (bows, food, etc.)
– Door & container interactions
– Item drop & pickup
– Player movement & jumping
– PvP combat
– Command usage

### 💬 Chat Management
– Toggle **global chat** on/off
– Control chat per-player
– Allow bypass permissions

### 👤 Per-Player Rules
– Apply rules individually to players
– Override global settings easily
– Perfect for staff moderation or event control

### 🛡️ Admin Bypass
– Permission: `worldrules.bypass`
– Ignore all restrictions when needed

### ⚙️ Runtime Commands
Manage everything without restarting:

WorldResourcepacks

###### ![https://i.imgur.com/O6LAUDf.png](https://i.imgur.com/O6LAUDf.png) Made in Germany with love (and [beer](https://s.moep.tv/beer))

######

![World Resourcepacks Logo](https://i.phoenix616.dev/htpqO5BI.png)

_Did you ever want to set a different server resource pack for your each of your worlds? Or switch your current resource pack with just one command? Then you came to the right place!
_

This plugin lets you set one Server Resource Pack for each of your worlds or event your whole server! It also allows you to specify packs that should be usable on multiple worlds!

It is also compatible with my [Bungee Resourcepacks](https://modrinth.com/plugin/bungeeresourcepacks) and [Velocity Resourcepacks](https://modrinth.com/plugin/velocityresourcepacks) plugin and will not make the player redownload a resource pack after server switching if it got already applied by Bungee/Velocity Resourcepacks on another server!

**Please check if there are newer [development builds](https://ci.minebench.de/job/resourcepacksplugins/) before reporting issues!**

> Please note that the Vanilla Minecraft client only applies server resource packs that are smaller than **250MiB**! (50MiB before 1.15, 100MiB before in 1.18)
>
> Also certain new **SSL certificates** for URLs (like Let’s Encrypt) do not work with the old Java version shipped with Minecraft (Java 1.8.0_51, [a bug report](https://bugs.mojang.com/browse/mc-143768) regarding that has been filed with Mojang) so you’ll have to either use a different certificate or a non encrypted download (not recommended!)

**Note:** This plugin does not work with older Minecraft versions above 1.8 that do not support server resourcepacks!

### **Features**

* Set different server resourcepacks per world or whole server
* Match world names with regex!
* Commands to configure the plugin ingame
* Language system with messages depending on the locale of the client
* Simplified compoment/json message formatting syntax ([MineDown](https://wiki.phoenix616.dev/library:minedown:syntax))
* Configurable delay before sending the pack to a player
* Remembers which pack a user has currently applied and doesn’t resend on world switch
* Let the user set the pack himself. The pack can be re-applied on each login and will be used for resets on servers that don’t have the pack
* Inform the user which pack the server send them if it was done automatically
* [ResourcePackSendEvent](https://docs.phoenix616.dev/resourcepacksplugins/de/themoep/resourcepacksplugin/bukkit/events/resourcepacksendevent.html) and [ResourcePackSelectEvent](https://docs.phoenix616.dev/resourcepacksplugins/de/themoep/resourcepacksplugin/bukkit/events/resourcepackselectevent.html) for developers to react on the sending or selecting of a pack in their own plugins
* Send the correct pack format depending on the client’s version (requires ViaVersion or ProtocolSupport) with pack-variants either via the version, protocol number or pack format id.
* Automatically generates the sha1 hashes!
* Compatible with [AuthMe Reloaded](https://www.spigotmc.org/resources/authme-reloaded.6269/), [OpenLogin](https://www.spigotmc.org/resources/openlogin-1-7x-1-19x.57272/), NLogin, [LibrePremium](https://www.spigotmc.org/resources/librepremium-proxy-authorization-plugin-automatic-login-2fa.101040/), JPremium.
Do you need it to be compatible with more plugins? [Contact me](https://github.com/phoenix616/resourcepacksplugins/issues/new)!

### **Statistics**

* [McStats.org](http://metrics.griefcraft.com/plugin/worldresourcepacks/)
* [bStats.org](https://bstats.org/plugin/bungeecord/worldresourcepacks)

### **Commands**
To execute every /wrp command you need the `worldresourcepacks.command` permission!

**/wrp reload [resend]** – `worldresourcepacks.command.reload` – Reloads the config file; resends the packs to every online player if the 2nd argument is “resend”

**/wrp version** – `worldresourcepacks.command.version` – Shows the version of this plugin

**/wrp generatehashes** – `worldresourcepacks.command.generatehashes` – Manually generate the resource pack hashes

**/wrp addpack ** – `worldresourcepacks.command.addpack` – Add a new pack

**/wrp pack ** – `worldresourcepacks.command.pack` – View and edit an existing pack

**/wrp listassignments** – `worldresourcepacks.command.listassignments` – View all world assignments

**/wrp deleteassignment ** – `worldresourcepacks.command.deleteassignment` – Delete a world assignment

**/wrp assignment ** – `worldresourcepacks.command.assignment` – View and edit a world assignment

**/wrp globalassignment** – `worldresourcepacks.command.globalassignment` – View and edit the global assignment

**/resetpack [] []** – `worldresourcepacks.command.resetpack` – Reset the pack (of a player) to the empty one or the stored pack. (Like what would happen if you joined a server without any pack) If is set to false the stored pack of the player is reset too.

To execute every /usepack command you need the `worldresourcepacks.command.usepack` permission!

To execute it for other players you need `worldresourcepacks.command.usepack.others`!

To have access to a specific pack a player needs the `worldresourcepacks.pack.` permission or the one defined for the pack in it’s config section!

**/usepack** – List all packs available to you

**/usepack []** – Send a specific pack to yourself or another player

### **Config**

The config.yml allows you to configure everything you can do set up via the commands and a lot more, take a look at the commands in the [file on GitHub](https://github.com/phoenix616/resourcepacksplugins/blob/master/bukkit/src/main/resources/config.yml) for an explanation on all options! (Some might only be available on the [latest development builds](https://ci.minebench.de/job/ResourcepacksPlugins/)!

### **About the client freeze**
> **This should no longer be an issue starting with 1.20.3!**

When a server resource pack is send to a client it will shortly freeze after the download is complete. (Same as manually applying a local pack) This happens because the client has to reload all resources, check which resources overlap and do some other calculation and manipulation with them. (Like stitching all the textures together to a single image like they were in the first texture pack format) It’s not a download issue as the client will locally cache the pack files and not re-download them if their hash didn’t change.

How long this takes generally depends on the PC’s performance and the size of the textures (HD packs take longer) that are used in all resource packs that the player has applied. (So even if the server resource pack doesn’t contain any HD textures or textures at all the client will still completely reload all locally applied resource packs) This is something that has to be fixed in the client by Mojang for example by only reloading resources that changed.

**1.14, 1.15 and 1.16 have some major improvements there and 1.20.3 basically fixed it all so suggest players to use these if they have issues with your server resourcepack!**

### **Dev-Resources**
The source is available on [GitHub](https://github.com/phoenix616/resourcepacksplugins) and licensed under the [GPLv3](https://github.com/phoenix616/resourcepacksplugins/blob/master/license).
Development builds can be found on the Minebench.de [Jenkins](http://ci.minebench.de/job/resourcepacksplugins/).
There are also some [Javadocs](http://docs.phoenix616.dev/resourcepacksplugins/) if you intend to develop plugins based on mine.

### **Support**
You can receive support in the [resource discussion thread on SpigotMC](https://www.spigotmc.org/threads/world-resourcepacks.125581/), the [GitHub issue tracker](https://github.com/phoenix616/resourcepacksplugins/issues), [my IRC channel](https://irc.phoenix616.dev/), or [my Discord](https://phoenix616.dev/discord).

### **Metrics**
This resource includes [bstats.org](https://bstats.org/) metrics. If you don’t want bstats to collect info on your server then you can disable it in the *bStats/config.yml* file. The license the used bStats-lite class is under can be found [here](https://github.com/btobastian/bstats-metrics/blob/master/license).

#####

*This resource is distributed without any warranty or liability by the author. Read more about it [here](https://github.com/Phoenix616/ResourcepacksPlugins/blob/master/LICENSE#L589-L610)*

WorldResetter

WorldResetter

A fully configurable World Reset system for your Minecraft server. Automatically resets worlds at set intervals and teleports players between worlds seamlessly.

Discord: https://discord.gg/ufhB5DZezp

WorldReset

❤️ **If you enjoy this plugin, please consider leaving a like! It means a lot for me.** ❤️

> **⚠️ Compatibility Note:** This plugin is built for **Minecraft 1.21.5 Purpur**. I tested it on Purpur 1.21.5, 1.21.11 and Spigot 1.21. It should work on 1.21-1.21.11 Spigot/Purpur/Paper/Bukkit.

If you want to report a bug or suggest a new plugin, join my [Discord server](https://discord.gg/A7WVnYj3BP).

Also check my other plugin **[SharedHealthAndHunger](https://modrinth.com/plugin/sharedhealthandhunger)**

# 🌍 WorldReset

**Reset your world instantly without restarting the server! Perfect for Speedruns, Manhunts, and Challenges.**

WorldReset is a plugin designed to manage game worlds dynamically. Instead of kicking players and restarting the server to generate a new map, this plugin moves players to a “Limbo” world, deletes the old map, generates a fresh one, and teleports everyone back—all within seconds!

### ✨ Key Features

* **🔄 Instant Reset:** Regenerates Overworld, Nether, and End without shutting down the server.
* **🌱 Seed Control:** Choose between **Random Seed** for a fresh experience or **Fixed Seed** for practice/speedruns.
* **🏹 Spawn Shifter:** Never reset for a good seed again! Configure a target **Structure** (e.g., Village) or **Biome** (e.g., Cherry Grove). The plugin intelligently scans the generated world and **moves the world spawn** directly to your target.
* **🏝️ Smart Land Seeker:** No more spawning in the middle of the ocean! After generating a new world (or shifting spawn), the plugin scans the terrain to ensure the spawn point is on solid ground.
* **☁️ Seamless Limbo:** Players are moved to a waiting world (“Limbo”) during generation.
* **⏱️ Advanced Speedrun Timer:** Built-in Action Bar stopwatch! Race in **Global** mode (first to finish stops the timer) or **Individual** mode (personal timers). Set automatic stop triggers (Goals) such as killing an entity (e.g., Ender Dragon), entering a specific portal, or getting an advancement!
* **🧭 Player Tracker Radar (Compass):** A dynamic compass ribbon at the top of your screen! Track other players in real-time. Players appear as colored dots (`●`) on the compass based on where you look. Fully customizable player colors.
* **🌍 Multi-Language:** Full support for **English** and **Polish** (changeable via command).

### 📜 Commands and Permissions

Main command: `/worldreset` or `/wr`

| Command | Description | Permission |
| — | — | — |
| `/wr reset` | Instantly resets the game: moves everyone to Limbo, regenerates the world, and starts a new game. | `worldreset.reset` |
| `/wr limbo` | Toggles Limbo mode. Moves you to Limbo (Pause) or starts a new game if you are already in Limbo. | `worldreset.limbo` |
| `/wr death` | Toggles **Reset on Death** mode (Hardcore) ON/OFF. | `worldreset.death` |
| `/wr silent` | Toggles **Silent Mode** (hides global chat messages) ON/OFF. | `worldreset.silent` |
| `/wr filter structure ` | Sets a target structure (e.g., VILLAGE). Auto-clears biome filter. | `worldreset.filter` |
| `/wr filter biome ` | Sets a target biome (e.g., PLAINS). Auto-clears structure filter. | `worldreset.filter` |
| `/wr seed ` | Sets a fixed seed for future resets. | `worldreset.seed` |
| `/wr seed` | Disables fixed seed (enables Random Seed mode). | `worldreset.seed` |
| `/wr timer ` | Turns the speedrun stopwatch system ON/OFF. | `worldreset.timer` |
| `/wr timer ` | Controls the built-in speedrun stopwatch. | `worldreset.timer` |
| `/wr timer ` | Configures timer settings (RTA/IGT, Global/Individual, end triggers). | `worldreset.timer` |
| `/wr compass ` | Toggles the player tracker radar on top of the screen. | `worldreset.compass` |
| `/wr compass color [player] ` | Sets a specific radar dot color for a player. | `worldreset.compass` |
| `/wr language ` | Changes the plugin language (English / Polish). | `worldreset.language` |
| `/wr reload` | Reloads configuration and language files instantly. | `worldreset.admin` |

**Wildcard Permission (Full Admin):** `worldreset.*`

### 🚀 Installation

1. Download the `.jar` file.
2. Place it in the `/plugins/` folder of your server (Spigot/Paper/Purpur **1.21+**).
3. **Restart** the server.
4. Done! The plugin will generate the `limbo` world and the `game_world`.

* *Tip: To use your own custom lobby, simply stop the server, delete the generated `limbo` folder, and upload your own world folder named `limbo`.*

### ❤️ Credits

The default Limbo map is **Floating Island Sanctuary**.
All credits go to the original creator.
**[Download Original Map Here](https://www.planetminecraft.com/project/floating-island-sanctuary/)**

WorldReboot

# WorldReboot

## Info

This spigot plugin allows you to rapidly delete and regenerate your Minecraft worlds; especially useful for plugin development.

## Standard config

“`yaml
# WARNING: Turning this on, will IRREVERSIBLY ERASE all worlds specified in “WorldsToRegenerate”!
Enabled: false
# Whether to disable this plugin after the worlds have been re-generated.
DisableAfterRegeneration: false
# What worlds you want to re-generate on startup.
# Comment / uncomment lines as needed.
WorldsToRegenerate:
– world
– world_nether
– world_the_end
“`

## Usage statistics

[![Usage statistics](https://bstats.org/signatures/bukkit/WorldReboot.svg)](https://bstats.org/plugin/bukkit/WorldReboot/18036)

WorldPrune

WorldPrune identifies region files that aren’t covered by GriefPrevention claims and safely moves them into a quarantine folder. Nothing is permanently deleted until you explicitly say so — every apply is fully reversible via a built-in undo command.

## Why use it?

Over time, Minecraft worlds accumulate thousands of region files generated by explorers who never claimed anything. WorldPrune lets you reclaim that disk space without risking player builds. A quarantine-first design means you can always roll back.

## How it works

1. `/prune scan` reads your GriefPrevention, Towny, Residence, and WorldGuard claims (whichever are present) and marks unclaimed regions as candidates.
2. **Heuristic filtering** checks candidate regions for player-placed entities (item frames, armor stands, paintings, etc.) and keeps them even if unclaimed.
3. **CoreProtect rescue** (optional) — if CoreProtect is installed, any unclaimed region with recent player block activity is automatically rescued from pruning, catching builds that were never claimed.
4. `/prune apply` moves candidate files to `/quarantine//`. An `apply-manifest.json` records every move.
5. `/prune undo` reads the manifest and puts files back exactly where they were.
6. `/prune drop` permanently deletes a quarantine entry once you’re satisfied.
7. **Web map overlay** (optional) — if BlueMap or Dynmap is installed, keep/prune markers are automatically pushed to the web map after each scan.

All destructive operations (`apply`, `drop`) require a `/prune confirm` within 30 seconds, so there are no accidental deletions.

## Requirements

– Paper or Spigot 1.20.1 or newer
– Java 21 or newer
– At least one claim plugin (all optional — WorldPrune works standalone, but claim awareness prevents false positives):
– **GriefPrevention** — API queried directly; falls back to claim file parsing
– **Towny Advanced** — API queried directly; falls back to townblock `.data` file parsing
– **Residence** — API queried directly; falls back to `Global.yml` parsing
– **WorldGuard** — API queried directly (requires WorldEdit); falls back to per-world `regions.yml` parsing
– CoreProtect — optional; enables activity-based rescue of unclaimed regions with recent player interaction
– BlueMap or Dynmap — optional; region markers pushed to the web map after each scan

## Commands

| Command | What it does |
|———|————-|
| `/prune scan [world|all]` | Analyse one or all worlds and generate a prune plan |
| `/prune apply [world]` | Preview and stage an apply |
| `/prune confirm` | Execute the staged operation |
| `/prune undo [world]` | Restore files from quarantine |
| `/prune drop ` | Permanently delete a quarantine entry (staged) |
| `/prune plans [world]` | List stored plans |
| `/prune map [world]` | Get a filled map showing the keep/prune grid |
| `/prune status` | Show current configuration |

## Permissions

`prune.admin` (default: op) covers read-only commands. Destructive actions require `prune.admin.apply` (apply/undo) or `prune.admin.purge` (drop/quarantine).

## Source

MIT licensed. Source available on [GitHub](https://github.com/dave-i-am/WorldPrune).