TownyPacifist - Addon
Prevents combat involving peaceful Towny towns — bidirectional protection with arena, SiegeWar & TownyCaptureSites support.
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.
TownyPacifist - Addon
☮ TownyPacifist
> A lightweight Towny addon that enforces peace for peaceful towns — everywhere, not just within their borders.
---
📖 About
Many servers struggle with a common problem: players from peaceful towns getting killed by aggressive towns, or peaceful town members attacking others without consequence.
TownyPacifist solves this by hooking directly into Towny's own peaceful flag (`/t toggle peaceful`). No custom data, no extra commands — if a town is marked as peaceful in Towny, this plugin enforces that everywhere on the map.
---
✨ Features
- Cross-platform — reads directly from Towny's `isNeutral()` flag - Cross-platform — peaceful towns can't attack OR be attacked - Cross-platform — peaceful players can still PvP inside Towny arena plots (`/plot set arena`) - Cross-platform — works naturally alongside EventWar's neutrality system - Cross-platform — respects SiegeWar's own peaceful town system when installed - Cross-platform — allows peaceful players to fight inside capture sites when installed - Cross-platform — ships with 9 languages (en-US, pt-BR, es-ES, fr-FR, de-DE, zh-CN, ru-RU, pl-PL, tr-TR) - Cross-platform — a single event listener, no databases, no commands - Cross-platform — runs on Bukkit, Spigot, Paper, Purpur and Folia
---
🔗 Dependencies
| Plugin | Required | |---|---| | Towny | ✅ Required | | EventWar | ➕ Optional (integrates automatically) | | SiegeWar | ➕ Optional (integrates automatically) | | TownyCaptureSites | ➕ Optional (integrates automatically) |
---
⚙️ How It Works
TownyPacifist listens to `TownyPlayerDamagePlayerEvent` and checks both players' towns using Towny's API:
``` Player A hits Player B └─ Is either player from a neutral (peaceful) town? ├─ No → do nothing, let Towny handle it normally ├─ Yes → are they inside an arena plot? │ ├─ Yes + arenas allowed → permit combat (no spam, notified on entry) │ └─ No → cancel damage + send message └─ Both peaceful → cancel damage + specific message ```
The "peaceful" status is set by the town mayor using Towny's own command: ``` /t toggle peaceful ```
No TownyPacifist commands needed.
---
📁 Config
```yaml
Enable or disable all protection globally
enabled: true
Allow peaceful town members to PvP inside Towny arena plots
allow-pacifist-in-arenas: true
Allow peaceful town members to fight inside TownyCaptureSites plots (requires TownyCaptureSites)
allow-pacifist-in-capture-sites: true ```
---
🌍 Adding a Language
TownyPacifist uses Towny's built-in translation system. Messages are delivered in each player's own language automatically.
1. Go to `plugins/TownyPacifist/lang/` 2. Copy `en-US.yml` and rename it (e.g. `es-ES.yml`) 3. Translate the messages 4. Towny picks it up automatically — no config change needed
---
🔨 Building from Source
Requirements: - JDK 21 (for compilation) - Gradle 8.12 (or use the included `gradlew`) - Towny JAR → `libs/Towny-x.x.x.x.jar` (download from Requirements:) - EventWar JAR → `libs/EventWar-x.x.x.jar` *(optional, for IDE support only)*
```bash ./gradlew build
Output: build/libs/TownyPacifist-1.0.jar
```
---
🗺️ Planned Integrations
- [x] Capture sites - [x] SiegeWar
---
📜 License
Apache 2.0 — see LICENSE
---
👤 Author
Made by RN_Axol