41 lines
1.3 KiB
Plaintext
41 lines
1.3 KiB
Plaintext
====== Technical Notes ======
|
|
|
|
===== Plugin Type =====
|
|
|
|
CoalGov is a server-side Paper/Bukkit plugin. It is not a Forge mod, Fabric mod, resource pack, datapack, or custom launcher. Vanilla clients can join normally.
|
|
|
|
===== Java Package =====
|
|
|
|
com.librewiki.coalgov
|
|
|
|
===== Architecture =====
|
|
|
|
The plugin is split into commands, listeners, models, services, storage repositories, and small utilities. The goal is boring, maintainable Java rather than one giant plugin class.
|
|
|
|
===== Persistence =====
|
|
|
|
CoalGov uses SQLite at:
|
|
|
|
plugins/CoalGov/coalgov.db
|
|
|
|
Tables:
|
|
|
|
* players
|
|
* claims
|
|
* claim_vertices
|
|
* land_regions
|
|
* permits
|
|
* transactions
|
|
* market_stock
|
|
|
|
===== Important Runtime Behavior =====
|
|
|
|
* Player rows are created on join.
|
|
* SQL uses PreparedStatement.
|
|
* Timestamps are stored as epoch milliseconds.
|
|
* Database access is synchronous because the target server is tiny.
|
|
* Money columns are stored as integer Coal Cents. The ''schema_meta'' table records the one-time migration from old whole-coal ledger units.
|
|
* Admin permission allows admin commands. Coal mining, build protection, and marker protection are bypassed only while the admin has enabled ''/coalgov admin bypass on''.
|
|
* Polygon claims store their vertices separately from the claim bounding box.
|
|
* The market stores stock separately from transaction history.
|