DominionFactions-0.7.2.jar
What's new
## 0.7.2 - 2026-10-16
### With the other mods
- `dominion:rank_changes` is sent now. Each promote or demote counts once for the member whose rank moved, not for
the member who made the change, which is what the New Rank feat in Feats 1.7.3 reads. It has a TrackerAPI
leaderboard like the other counters.
- With Feats 1.7.0 or newer Dominion links and unlinks through the Feats enable and disable hooks, the way it does
with TrackerAPI, Atlas and Coinage. An older Feats is still found by the watch every 5 seconds.
- During a `/plugin reload` of TrackerAPI, Coinage, Feats or Atlas, Dominion logs one INFO line saying the sibling
brings it back by itself, instead of a warning asking for `/plugin reload Ryvrook:Dominion`. The warning stays
for a sibling that is still gone after 30 seconds.
- A server stop or a `/plugin reload` no longer makes a Dominion timer wait for the plugin manager. The sibling watch,
the VaultUnlocked lookup and the reload threads only try the manager's lock and use the last answer while it is
held. The IO thread gets 1 s at stop plus 0.5 s after an interrupt instead of 15 s. With all nine suite jars a stop
after reloading TrackerAPI and Atlas took 0.55 s.
### For mod authors
- New bus event `MemberRankChanged(factionId, member, actor, fromRank, toRank)`, published after every promote,
demote and set rank, with the ranks as `Rank` ordinals. `DominionApi.API_VERSION` is 3.
## 0.7.1 - 2026-10-16
### With the other mods
- Fifteen more counters per player go to TrackerAPI and Feats under `dominion:`, read by the 14 feats Feats 1.7.2
adds: `joined`, `kicked`, `wars_declared`, `alliances`, `upgrades`, `upgrade_level_max`, `market_trades`,
`foreign_entries`, `sieges_defended`, `breaches`, `hill_wins`, `outposts_held`, `power_max`, `rank_changes` and
`tutorial_done`. War, alliance, upgrade, breach, hill and outpost credit goes to every member, online or not.
Foreign entries count each faction once, `upgrade_level_max` only rises, and `power_max` and `tutorial_done` are
sent once. `rank_changes` is listed and never sent, since the rank log line does not name the member by id.
- A Feats older than 1.7.2 keeps only the original ten counters, so only those are sent to it.
- TrackerAPI gets a leaderboard for every counter that can grow past one.
### For admins
- Player records keep the counter memories under `Counters` in the player file.
## 0.7.0 - 2026-10-16
### For admins
- After a `/plugin reload` of Dominion, every enabled plugin that lists `Ryvrook:Dominion` in its manifest is
reloaded two seconds later, one at a time and under the same lock TrackerAPI and Coinage use, so SocialBridge and
RestAPI link to the new instance. A plugin someone else already reloaded is left alone.
- Staff actions taken through the API (disband, set leader, set power, unclaim) write one server log line with the
caller's name, such as `RestAPI:ops force disbanded NRT through the Dominion API`.
### For mod authors
- `DominionApi.API_VERSION` is 2. `DominionApi.onEnable(Consumer)` runs at once when Dominion is up and after every
start, `onDisable(Runnable)` runs first thing on shutdown, `removeHooks` drops both. `DominionApi.find()` and
`isPresent()` answer without throwing.
- `factions()` lists every faction with safe and war zones, sorted by tag, and `factionById(UUID)` finds one.
- `sieges()` and `siegeHistory(factionId, limit)` return `SiegeInfo` records with both sides, their tags, the
phase, when it ends, the banner position and the counts.
- A `DominionEvent.ChatLine` is published for every faction, ally, officer and nation line, with the faction id and
tag, the channel, the sender and name, the text and the time. `sendFactionChat(factionId, name, text)` sends a line
from outside the game to the faction's online members and publishes it with a null sender. Lines are cut at 256
characters. Private lines still never reach `export/snapshot.json`.
- Staff actions `disband`, `setLeader`, `setPower`, `unclaim(world, chunkX, chunkZ)` and `unclaimAll` return a
`Result` with the reason. `setPower` refuses a player Dominion has never seen.
- Methods added after 0.6.2 have default bodies, so a stand in API written against the older jar still compiles.
- The build compiles against TrackerAPI 1.1.0, Coinage api 1.2.0, Feats 1.6.0 and Atlas 1.7.0.
This mod has no additional files

