How terranova-devs/nations works
TerraNova Nations is a Paper Minecraft plugin for managing settlements, nations, land, real estate, and settlement progression. Players use the plugin’s commands and inventory GUIs to administer these domains; region state and related domain records are persisted, with map layers reflecting region and nation changes. The tree documents integrations with WorldGuard, Pl3xMap, and Citizens, as well as Discord webhook support. Sampled source confirms selected manager-to-DAO and map-update calls; unsampled command and GUI wiring is shown only at the broad product boundary.
Main entry points: RegionManager.java Region manager · dao Domain DAOs · NationsPlugin.java Plugin lifecycle · command Domain commands
Components 22
Player interface
- Plugin lifecycle
src/main/java/de/terranova/nations/NationsPlugin.java - Domain commands
src/main/java/de/terranova/nations/command - Player GUIs
src/main/java/de/terranova/nations/gui
Land and access
- Region manager
src/main/java/de/terranova/nations/regions/RegionManager.java - Region types
src/main/java/de/terranova/nations/regions - Region rules
src/main/java/de/terranova/nations/regions/rule - Access control
src/main/java/de/terranova/nations/regions/modules/access - WorldGuard hooks
src/main/java/de/terranova/nations/worldguard
Settlement governance
- Nation manager
src/main/java/de/terranova/nations/nations/NationManager.java - Nation model
src/main/java/de/terranova/nations/nations/Nation.java - Real estate
src/main/java/de/terranova/nations/regions/modules/realEstate
Economy and progression
- Settlement bank
src/main/java/de/terranova/nations/regions/modules/bank - Profession manager
src/main/java/de/terranova/nations/professions/ProfessionManager.java - Profession progress
src/main/java/de/terranova/nations/professions/ProfessionProgressManager.java
Persistence and integrations
- Pl3xMap layers
src/main/java/de/terranova/nations/pl3xmap - Domain DAOs
src/main/java/de/terranova/nations/database/dao - SQL database
src/main/java/de/terranova/nations/database/HikariCP.java
Other components
- Player
- Paper server
- Pl3xMap
- Discord webhook
- Citizens NPCs
Connections 28
- Player → Domain commands: issues commands
- Player → Player GUIs: uses menus
- Paper server → Plugin lifecycle: loads plugin
- Plugin lifecycle → Domain commands: registers
- Plugin lifecycle → WorldGuard hooks: integrates
- Plugin lifecycle → Pl3xMap layers: integrates
- Domain commands → Region manager: manages regions
- Domain commands → Nation manager: manages nations
- Domain commands → Real estate: manages listings
- Player GUIs → Real estate: browses listings
- Player GUIs → Nation manager: manages nation
- Region manager → Region types: caches and looks up
- Region manager → WorldGuard hooks: queries regions
- Region manager → Region rules: validates regions
- Region manager → Domain DAOs: loads and saves
- Nation manager → Domain DAOs: persists nations
- Nation manager → Region manager: looks up settlements
- Nation manager → Pl3xMap layers: updates layers
- Profession manager → Domain DAOs: removes settlement data
- Profession progress → Profession manager: reads configuration
- Profession progress → Domain DAOs: persists progress
- Profession progress → Settlement bank: charges profession cost
- Profession progress → Pl3xMap layers: updates region layer
- Pl3xMap layers → Pl3xMap: publishes layers
- Domain DAOs → SQL database: queries and writes
- Real estate → Domain DAOs: persists listings
- Region types → Citizens NPCs: uses NPC integration
- Plugin lifecycle → Discord webhook: optional webhook