Towns And Nations

Towns And Nations is a Hytale plugin that lets players create, manage, and expand towns and nations with territory control, alliances, and strategic warfare.

File Details

TownsAndNations-0.1.0.jar

  • R
  • Feb 24, 2026
  • 3.01 MB
  • 38
  • Early Access

File Name

TownsAndNations-0.1.0.jar

Supported Versions

  • Early Access
# ๐Ÿ“‹ CHANGELOG - TownsAndNations

## Version 0.1.0 (Current Release)

### ๐ŸŽจ GUI Interface - Complete Modernization

#### New Design System
- โœจ **Created `Styles.ui`** - Centralized reusable styles file
  - Professional color palette (Primary, Secondary, Accent, Success, Danger)
  - 6 button styles (`@ButtonPrimary`, `@ButtonSecondary`, `@ButtonAccent`, etc.)
  - 5 text styles (Title, Subtitle, Heading, Body, Label)
  - Consistent background colors (`@ColorBgDark`, `@ColorBgCard`)

- ๐Ÿงญ **Created `NavBar.ui`** - Reusable horizontal navigation bar
  - Navigation between Dashboard, Members, Bank, Plots, Nation, Browse
  - Settings option visible only for mayor
  - Modern design with hover effects

#### Modernized Pages
- โœ… **TownMenuPage.ui** - Redesigned main dashboard
  - Card-based display system
  - Town statistics grid
  - "No Town" section for players without a town
  - Quick Actions for rapid access

- โœ… **MayorMenuPage.ui** - Enhanced mayor interface
  - Organized two-column layout
  - Sections: Territory Management, Town Settings, Commands, Plots Info
  - Danger Zone for critical actions (red background)

- โœ… **BrowseTownsPage.ui** - Town browsing interface
  - Search bar and filter system
  - Available towns list
  - Hints section for instructions

- โœ… **CreateTownPage.ui** - Modern town creation
  - Simplified form in a single card
  - Clear cost display
  - Integrated error messages

#### GUI Documentation
- ๐Ÿ“„ **GUI_MODERNIZATION.md** - Complete technical documentation
- ๐Ÿ“„ **GUI_README.md** - System overview
- ๐Ÿ“„ **MIGRATION_GUIDE.md** - Migration guide for remaining pages
- ๐Ÿ“„ **Commands.md** - Complete command list in French

### ๐Ÿ—บ๏ธ Map System (WorldMap)

- ๐ŸŒ **Ready minimap infrastructure**
  - Town chunk display on map
  - Customizable colors (RGB + transparency) via `/town mayor setcolor`
  - Temporary border system (60s) with `/town mayor showborder`
  - `TownsMapProvider.json` configuration created
  - Awaiting official Hytale WorldMapManager API

### ๐Ÿ˜๏ธ Plot System

- ๐Ÿ“ **Standardized dimensions**: 32x32 blocks per chunk
- ๐Ÿ  **Home Spawn system per plot**
  - `/town home` - Teleport to town spawn
  - `/town mayor sethome` - Set town spawn

- ๐Ÿ’ฐ **Sale system**
  - `/town mayor plot forsale <price>` - Put on sale
  - `/town plot buy` - Buy a plot
  - `/town mayor plot reclaim` - Reclaim a plot

- ๐Ÿ‘ฅ **Trust system**
  - `/plot trust add <player>` - Add trusted player
  - `/plot trust remove <player>` - Remove trust
  - `/plot trust list` - List trusted players
  - Per-plot permission management

- ๐Ÿ“Š **Management**
  - `/town plot list` - List all plots
  - `/town plot myplots` - View own plots
  - Fixed chunk coordinate system

### ๐Ÿ›๏ธ Nation System

- ๐ŸŒ **Nation interface created**
  - GUI menu for nations
  - Visual management of member towns
  - Invitation system

- ๐Ÿ‘” **Governance**
  - `/nation create <name>` - Create a nation
  - `/nation minister add/remove <player>` - Manage ministers
  - `/nation invite <town>` - Invite a town
  - `/nation info [nation]` - Nation information

### ๐Ÿ” Permission System

- ๐Ÿ”‘ **LuckPerms integration**
  - LuckPerms support as permission provider
  - Role-based permissions (mayor, deputy, citizen)
  - Permissions for town and plot commands
  - Default permissions configuration

### ๐Ÿ’พ Storage and Configuration

- ๐Ÿ“ **Flexible storage system**
  - JSON support (default)
  - MySQL support with connection pool
  - Configurable auto-save
  - SQL prefix: `townsandnations_`

- โš™๏ธ **Configuration files**
  - `config.yml` - Main configuration
  - `schema.sql` - Database structure
  - `manifest.json` - Plugin metadata

### ๐ŸŒ Internationalization

- ๐Ÿ‡ฌ๐Ÿ‡ง **English** (`en_US.properties`) - Complete language
- ๐Ÿ‡ซ๐Ÿ‡ท **French** (`fr_FR.properties`) - Complete translation
- ๐Ÿ”„ **Translation cleanup**
  - PowerShell script `check-translations.ps1` to verify keys
  - `unused-language-keys.txt` report for unused keys
  - Modernized GUI translations

### ๐Ÿฆ Economy and Bank

- ๐Ÿ’ฐ **Town bank system**
  - `/town bank deposit <amount>` - Deposit
  - `/town mayor withdraw <amount>` - Withdraw (mayor only)
  - GUI interface with quick amount buttons
  - Real-time balance display

- ๐Ÿ’ต **Configurable costs**
  - Town creation (free by default)
  - Nation creation (configurable)
  - Chunk claim/unclaim with refund
  - Plot prices set by mayor

### ๐Ÿ‘ฅ Member Management

- ๐Ÿ“จ **Invitation system**
  - `/town mayor invite <player>` - Invite
  - `/town accept` - Accept invitation
  - GUI interface for invitation management

- ๐Ÿ‘” **Roles and hierarchy**
  - Mayor (town creator)
  - Deputies (`/town mayor deputy add/remove`)
  - Citizens
  - Kick system: `/town mayor kick <player>`

### โš”๏ธ PVP and Protection

- ๐Ÿ›ก๏ธ **Complete protections**
  - Build protection
  - Break protection
  - Use protection (chests, doors, etc.)
  - Configurable PVP protection per town

- โš”๏ธ **PVP Toggle**: `/town mayor togglepvp` - Enable/disable

### ๐Ÿ”ง Development and Build

- ๐Ÿ—๏ธ **Gradle configuration**
  - Updated to latest Gradle version
  - `build.gradle` and `build.gradle.kts` configuration
  - Java 25 support
  - Building against Hytale 2026.02.18-f3b8fff95

- ๐Ÿ“ฆ **Project structure**
  - Modular code organization
  - Separated resources (Common, Server)
  - Javadoc generation
  - Shadow JAR build system

### ๐Ÿ“ Command System

- ๐Ÿ–ฅ๏ธ **Complete command overhaul**
  - Town commands: `/town <action>`
  - Mayor commands: `/town mayor <action>`
  - Plot commands: `/town plot <action>` and `/plot <action>`
  - Nation commands: `/nation <action>`
  - Command logging for debugging

### ๐Ÿ› Bug Fixes

- โœ… Fixed command variables
- โœ… Fixed permissions
- โœ… Fixed chunk coordinates
- โœ… Fixed plot height
- โœ… Fixed NavBar for mayor
- โœ… Fixed translations
- โœ… Fixed UI (2 passes)
- โœ… Cleaned up code and unused UIs

### ๐Ÿ“œ License

- ๐Ÿ“„ Added LICENSE file to project

---

## ๐Ÿ“Š Project Statistics

- **Current version**: 0.1.0
- **Modernized GUI pages**: 4/14 (28%)
- **Supported languages**: 2 (EN, FR)
- **Commits**: 40+
- **Last Hytale update**: 2026.02.18

---

## ๐Ÿš€ Core Features

โœ… Complete towns and nations system  
โœ… Chunk management (claim/unclaim)  
โœ… Plot system with sales  
โœ… Town bank  
โœ… Permissions and roles  
โœ… Modern GUI interface  
โœ… Complete zone protection  
โœ… Integrated economy  
โœ… Minimap with customizable colors  
โœ… Multi-language (EN/FR)  

---

## ๐Ÿ”œ Upcoming Features

The following GUI pages are planned for modernization:

- [ ] MembersPage.ui
- [ ] BankPage.ui
- [ ] PlotsPage.ui
- [ ] TownInfoPage.ui
- [ ] NationMenuPage.ui
- [ ] CreateNationPage.ui
- [ ] NationTownsPage.ui
- [ ] InvitationsPage.ui
- [ ] LeaveTownConfirmPage.ui
- [ ] PlaceholderPage.ui

---

## ๐Ÿ“ Commit History Summary

Recent development activity includes:

- Fix NavBar mayor and add LICENSE file
- UI updates and modernization
- Translation cleanup and fixes
- Town display on map
- WorldMap integration
- Plot system improvements (32x32, height fixes, SetPos)
- Map overlay testing
- Nation UI addition
- Home spawn functionality
- Input fields for town creation and bank
- Commands list documentation
- 0.1.0 Release
- Town invite UI
- MiniMap testing
- LuckPerms integration
- Permissions fixes
- Plugin rename and UI updates
- UI pages creation
- UI testing phase
- Command logging
- Permissions management for town and plot commands
- Plot system implementation
- Plot home and sale fixes
- Chunk coordinate fixes
- GUI translation additions
- Menu GUI implementation
- Commands rework
- Initial commit

---

This plugin is under active development and continues to evolve with new features coming soon! ๐ŸŽฎ