TownyPacifist - Addon
作者:rebot | 分类:模组
Minecraft 版本: 1.20 1.20.1 1.20.2 1.20.3 1.20.4 1.20.5 1.20.6 1.21 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 1.21.6 1.21.7 1.21.8 1.21.9 1.21.10 1.21.11
平台: bukkit folia paper purpur spigot
标签: game-mechanics management utility
☮ 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
- Zero custom storage — reads directly from Towny's
isNeutral()flag - Bidirectional protection — peaceful towns can't attack OR be attacked
- Arena support — peaceful players can still PvP inside Towny arena plots (
/plot set arena) - EventWar integration — works naturally alongside EventWar's neutrality system
- SiegeWar integration — respects SiegeWar's own peaceful town system when installed
- TownyCaptureSites integration — allows peaceful players to fight inside capture sites when installed
- Multi-language — ships with 9 languages (en-US, pt-BR, es-ES, fr-FR, de-DE, zh-CN, ru-RU, pl-PL, tr-TR)
- Lightweight — 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
# 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.
- Go to
plugins/TownyPacifist/lang/ - Copy
en-US.ymland rename it (e.g.es-ES.yml) - Translate the messages
- 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 Towny releases) - EventWar JAR →
libs/EventWar-x.x.x.jar(optional, for IDE support only)
./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
请登录后举报
暂无评论,抢个沙发吧~