Skip to content

Feature Plan: Voice Chat Integration โ€‹

Summary โ€‹

  • Owner: Freddi
  • Status: Delivery
  • Target Release: Rolling
  • Backlog Entry: Projects/Uebliche/agendas.md โ–ธ ๐Ÿ“ฆ Backlog โ–ธ Voice chat workflows

Goals โ€‹

  • Provide proximity and party-based voice communication through SimpleVoiceChat.
  • Allow staff to create, manage, and moderate speaker channels dynamically.
  • Ensure the voice system respects auth tokens and player permissions.

Scope โ€‹

  • Maintain SimpleVoiceChat bridge under features/mods/simplevoicechat.
  • Manage speaker channels (ChannelCreate, ChannelDelete, SpeakerPacket flows) per speaker/README.md.
  • Sync with player party data and permissions modules.
  • Exclude custom codecs or external VoIP services.

Implementation Outline โ€‹

  1. Handle channel lifecycle packets per existing protocol specification (speaker/README.md).
  2. Bind voice state updates to Mongo persistence via VoiceState and related classes.
  3. Integrate with player/session lifecycle in platform/minestom/ConnectionManager.
  4. Expose admin commands or UI hooks for moderation.
  5. Mirror protocol updates here and inside /Projects/Uebliche/docs/gameserver/features/voicechat/plan.md.

Dependencies โ€‹

  • SimpleVoiceChat mod on clients and servers.
  • Player/party services for access control.
  • Monitoring feature for tracking voice latency and errors.

Risks & Mitigations โ€‹

  • Desync between mod versions: document supported versions; add compatibility checks at connect time.
  • Abuse/misuse: integrate moderation commands and logging.
  • Performance impact: profile packet handling; offload heavy tasks to async executors.

Validation Plan โ€‹

  • Manual QA: establish channels on dev server and verify creation/deletion flow.
  • Automated tests: serialize/deserialize voice packets where feasible.
  • Monitor voice metrics for errors or disconnect spikes.

Notes & Decisions โ€‹

  • Track decisions about channel policies (auto-cleanup, limits) under agenda โš–๏ธ Decisions.

References โ€‹

  • services/gameserver/src/main/java/net/uebliche/features/mods/simplevoicechat
  • services/gameserver/src/main/java/net/uebliche/features/mods/simplevoicechat/data/VoiceState.java
  • services/gameserver/src/main/java/net/uebliche/features/mods/simplevoicechat/network/minecraft/clientbound/GroupChangedPacket.java
  • Protocol outline in services/gameserver/src/main/java/net/uebliche/features/mods/speaker/README.md