
Chess
A plugin that features a working Chess board using dialogs and a resourcepack
Список изменений
Chess v1.0.0
Overview
Chess v1.0.0 is the first public release of the CASTLED CODEX chess plugin. It provides complete, timed player-versus-player chess matches inside Minecraft's native Paper dialog UI. The board is a live 8x8 grid of clickable dialog actions rather than a chest inventory or a physical world build.
Gameplay
- Added player challenges with
/chess duel <player> <time>. - Added accept and decline flows with expiring duel requests.
- Added 17 time controls from one-minute bullet through five-hour games.
- Added increment modes using
minutes|seconds, including1|1,2|1,3|2,5|2,5|5,10|5, and15|10. - Added live clocks with timeout wins.
- Added legal-move validation, captures, castling, en passant, and a promotion picker.
- Added check and checkmate handling.
- Added automatic stalemate and insufficient-material draws.
- Added draw offers with confirmation, expiry, and cooldown handling.
- Added two-step resign confirmation.
- Added
/chess openso players can close and reopen an active board.
Native dialog board
- Added a 64-button Paper dialog board with a consistent 8-column layout.
- Added per-player orientation so White and Black can each view the board from their own side.
- Added an in-game flip control.
- Added configurable coordinate tooltips, legal-move highlights, last-move highlights, check markers, captured-piece lists, and clock display.
- Added stale-click rejection so a board rendered before the opponent's move cannot submit an old action.
- Added resource-pack glyphs for textured pieces, squares, and highlight states.
- Added standard Unicode pieces as a resource-pack-free fallback.
Resource pack delivery
- Bundled
resourcepack.zipinsideChess.jarand export it toplugins/Chess/resourcepack.zipon startup. - Added optional ResourcePackManager integration. When the plugin is installed, Chess registers its pack for automatic merging and distribution.
- Added direct-send support for servers without ResourcePackManager. Administrators host the
exported ZIP and configure
resource-pack.url; Chess computes its SHA-1 automatically. - Added
resource-pack.use-resourcepackso external pack systems can take full control.
Configuration
- Added
settings.ymlfor request timers, draw and resign confirmation windows, sounds, dialog appearance, board feedback, and resource-pack behavior. - Added
messages.ymlfor chat messages and MiniMessage dialog labels. - Added configurable player-relative orientation, escape-to-close behavior, glyph rendering, square width, clocks, captures, coordinates, and move highlights.
Platform support
- Built against Paper 1.21.11 and Java 21.
- Declared Folia support and routed authoritative game state through the global region scheduler.
- Routed player-facing dialog and sound work through player/entity schedulers.
- Bundled and relocated the PocketChess API and common engine so no chess-engine plugin is needed at runtime.
Chess requires Paper's native Dialog API and does not support a standard Spigot server. ResourcePackManager is an optional soft dependency.
Commands
/chess duel <player> <time>
/chess accept <player>
/chess decline <player>
/chess open
/chess help
All players can use the commands in this release; there are no permission nodes.
Verification
The Gradle build compiles the plugin with Java 21, packages the deterministic resource-pack ZIP,
shades and relocates the PocketChess engine, and produces the publishable build/libs/Chess.jar.
GitHub Actions now repeats this build on every push and pull request and uploads the shaded JAR as
a workflow artifact.
Installation note
After the first startup, install ResourcePackManager or host the exact
plugins/Chess/resourcepack.zip file and configure its public URL in settings.yml. Servers which
manage the pack externally can disable Chess pack delivery and use Unicode pieces or merge the
bundled textures themselves.
