53 lines
1.9 KiB
Markdown
53 lines
1.9 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 is `AcDream.Plugin.Abstractions` of the version named in
|
|
`Directory.Build.props` (`PluginApiPackageVersion`), currently 0.1.19, the
|
|
OpenAC 0.1.19 release. Put that release's package in `packages-local/`; an
|
|
OpenAC client from 0.1.19 on loads the plugin.
|
|
|
|
```
|
|
gh release download v0.1.19 --repo eriknihlen/OpenAC -p "AcDream.Plugin.Abstractions.0.1.19.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.
|
|
|
|
## Testing against a stand-in backend
|
|
|
|
`tools/FrameRecorder` accepts the plugin's socket like the backend does,
|
|
records every frame to a JSON-lines file, relays `share_*` frames between
|
|
subscribed clients as the backend does, and compares two recordings by
|
|
frame shape:
|
|
|
|
```
|
|
dotnet run --project tools/FrameRecorder -- record 18765 frames.jsonl
|
|
/mm ws url ws://localhost:18765/websocket/
|
|
dotnet run --project tools/FrameRecorder -- compare decal.jsonl port.jsonl
|
|
```
|