The socket connects with the shared-secret header, registers first, reassembles incoming frames of any size (the original dropped anything over 4 KiB) and reconnects two seconds after a failure. Incoming share_* frames go to the vital-sharing handlers; any other frame is a chat-box command for this character, run one per tick through the chat bar as if typed. Frames are written with Newtonsoft.Json defaults, the original's serializer, so the backend sees the same bytes. The secret lives in the character's settings. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# Mosswart Massacre for OpenAC
|
|
|
|
A private OpenAC port of the Mosswart Massacre DECAL plugin: it streams
|
|
telemetry, vitals, chat, inventory, combat and character stats to the Mosswart
|
|
Overlord backend, shares vitals and debuffs across machines, runs the commands
|
|
typed into the Overlord chat box, keeps the flag tracker and syncs metas.
|
|
|
|
**The backend contract is fixed.** Every frame this plugin sends or accepts is
|
|
byte-for-byte what the DECAL plugin sent and accepted; the golden tests under
|
|
`tests/` pin each one. Change a frame only together with the backend.
|
|
|
|
## Building
|
|
|
|
The plugin contract comes from the OpenAC release of the version named in
|
|
`Directory.Build.props` (`PluginApiPackageVersion`). Put that release's
|
|
`AcDream.Plugin.Abstractions.<version>.nupkg` in `packages-local/`:
|
|
|
|
```
|
|
gh release download v0.1.18 -R eriknihlen/OpenAC -p "AcDream.Plugin.Abstractions.0.1.18.nupkg" -D packages-local
|
|
dotnet build OpenAC.MosswartMassacre.slnx
|
|
dotnet test OpenAC.MosswartMassacre.slnx
|
|
```
|
|
|
|
## Installing
|
|
|
|
Copy `src/OpenAC.MosswartMassacre/bin/<config>/net10.0/` (the dll, its
|
|
`.deps.json`, `Newtonsoft.Json.dll`, `plugin.json` and the markup) into
|
|
`%LOCALAPPDATA%\acdream\plugins\openac.mosswartmassacre\`.
|
|
|
|
## First run
|
|
|
|
Streaming is off until you turn it on. The shared secret is never compiled in:
|
|
|
|
```
|
|
/mm ws secret <the backend's shared secret>
|
|
/mm ws enable
|
|
```
|
|
|
|
`/mm help` lists every command.
|