4.1 KiB
4.1 KiB
name, overview, todos, isProject
| name | overview | todos | isProject | |||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Plugin Server Data Plan | Concrete work plan for the current V8 plugin (Plugin API 26): improve what we send via retail TeamSpeak (plugin commands + hub policy). No ServerLib app. No hybrid authority in v1. Inventory already in vergleichs.md. |
|
false |
Current-plugin plan: better use of retail TeamSpeak (API 26)
Locked product: existing V8 DLL on retail TeamSpeak (PLUGIN_API_VERSION 26).
Locked approach: A-only — send/store more via TeamSpeak relay + hub description.
Deferred: hybrid voice authority, radio product, ServerLib custom app.
Baseline inventory: vergleichs.md.
Keep: Pos.txt -> CEPOS -> client proximity -> PCM/3D
Improve: cleaner peer messages + richer hub policy on TS server
Never: expect ts3server to compute who hears whom
0. Constraints (from live plugin)
| Can | Cannot |
|---|---|
sendPluginCommand relay (CEPOS today) |
Proximity math inside retail ts3server |
| Hub policy in root channel description | True packet drop for inaudible speakers |
| Client PCM + 3D as hearing | Trust client position as anti-cheat truth |
Optional later: requestClientSetWhisperList overlays |
Replace PCM with ServerLib routing |
1. Work packages (ordered)
WP0 — Inventory (done)
- CEPOS 56-byte layout, throttle/keepalive
- Hub
[GLOBAL]/ zones / races / defaults keys - Used vs unused
TS3Functions - Documented in
vergleichs.md
WP1 — Protocol + hub design (doc only)
Plugin commands (keep CEPOS wire-compatible):
| Prefix | Purpose | When to send |
|---|---|---|
CEPOS: |
Position + voiceDistance (unchanged 56 B) | Throttled move + 1 Hz keepalive |
CEDRAIN: |
Wakeup (unchanged) | Internal |
CEMODE: (first new) |
Voice mode id + distance | On mode change only (edge) |
CEPING: (later) |
Seq / stale hint | Low rate |
CEAUTH: (later) |
Soft identity hint | On connect — still spoofable |
Rules: sendPluginCommand only; bounds-check; throttle; no secrets; unknown prefixes ignored.
Hub schema (additive): SchemaVersion + flags; missing keys = old defaults; clients read only.
WP2 — First code change (Golden Rule: one function)
Implement CEMODE only:
- On voice-mode change, send small plugin command (mode + distance).
- Peers update without waiting for CEPOS keepalive.
- Do not break 56-byte CEPOS.
Likely files: ts3_cepos.c / new cmd dispatch, voice_modes.c, ts3_entry.c, doku/aenderungen/….
Off-limits in WP2: hub keys, whisper lists, filter wiring, radio, hybrid backend.
WP3 — Optional: wire FilterIntensity if still unwired (ask first)
WP4 — Optional: whisper-list admin overlay experiment (not proximity)
2. Out of scope
- ServerLib custom app /
ts3-Testingproduct - Proximity inside retail
ts3server - Hybrid authority (unless reopened)
- Breaking CEPOS without compatibility plan
3. Success / test
- Two clients: mode hotkey → peer sees update via
CEMODE; CEPOS distance still works; old clients ignoreCEMODEand keep CEPOS.
4. Default on “go”
Implement CEMODE first.