▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/DreamVoice
DreamVoice

DreamVoice

Advanced spatial audio framework for Paper, Fabric & Simple Voice Chat. Featuring soundproof acoustic physics (VoiceWall), 3D visualizer, spatial speakers, covert wiretaps, radio channels, playable audio cassettes, DSP filters & speech AI.

Оцените первым
144
3
Все версии→DreamVoice Fabric 2.0.1

DreamVoice Fabric 2.0.1

Release30.09.2026

Список изменений

Changelog 2.0.1

🚀 Dual-Platform Engine: Paper & Fabric First-Class Support

  • Multi-Module Gradle Architecture:
    • Restructured the entire codebase into a clean, modern multi-module architecture:
      • :api: Platform-independent public interfaces, models, and events (DreamVoiceAPI, VoiceLocation, Speaker, VoiceWiretap, VoiceEvent, etc.).
      • :common: Platform-agnostic core acoustic engine (DreamVoiceCommon), DSP audio pipelines, raycasting logic, persistence, and service implementations.
      • :paper: Paper / Purpur 26.1.2+ server plugin (DreamVoice-paper-2.0.1.jar) utilizing Paperweight and shadow jar packaging.
      • :fabric: Fabric 26.1.2+ server mod (DreamVoice-fabric-2.0.1.jar) built with Fabric Loom 1.17, Fabric API, and Cloud Fabric commands.
  • Platform Abstraction Layer (VoicePlatform):
    • Implemented PaperVoicePlatform and FabricVoicePlatform bridging server scheduling (sync/async/timer), entity tracking, block occlusion raycasts, particle dispatches, and loggers.
    • Native multiplatform coordinates via VoiceLocation, allowing services to operate identically regardless of whether Bukkit or Minecraft ServerLevel is running underneath.
  • Dual Configuration Directories:
    • Automatically loads and saves data in standard platform locations:
      • Paper: plugins/DreamVoice/
      • Fabric: config/dreamvoice/

🔌 Unified DreamVoiceAPI Service Locator

  • Universal API Entrypoint:
    • Unified entry point DreamVoiceAPI.get() accessible from both Paper plugins and Fabric mods without platform-specific boilerplate.
    • Direct accessor methods for all acoustic services:
      • api.speakerService(): 3D spatial speakers, dual-channel audio, entity tracking.
      • api.wallService(): VoiceWall raycast occlusion, material decibel loss, diffraction.
      • api.roomService(): Soundproof Cuboid zones and reverberation presets.
      • api.recordingService(): Zero-CPU Opus capture, timeline slicing, interactive cassettes.
      • api.radioService(): Frequency channels, analog band-pass filters, push-to-talk clicks.
      • api.wiretapService(): Covert listening bugs, mobile entity bugs, live eavesdropping.
      • api.projectionService(): Decoupled voice anchors, CCTV feeds, bilateral audio.
      • api.transmitterService(): Point-to-point directional voice transmitters.
      • api.broadcastService(): Server-wide and localized podium/intercom broadcasts.
      • api.filterService(): File-first DSP filters, hot-compilation, and stack management.
      • api.speechService(): Offline Vosk keyword spotting and transcription stations.
      • api.playerService(): Voice player wrappers (VPlayer) and connection metadata.
      • api.persistenceService(): Asynchronous disk flushes and auto-save coordination.
      • api.voiceService(): Direct Simple Voice Chat bridge and raw packet dispatch.

📡 Fabric Network Packet System & Inter-Mod Protocols (@DreamPacket)

  • Annotation-Driven Networking Pipeline:
    • Introduced @DreamPacket and @DreamServerReceiver with automatic classpath scanning via PacketAnnotationProcessor and ServerPacketAnnotationProcessor.
    • Registered all packet codecs with Fabric's PayloadTypeRegistry under the dreamvoice:* namespace.
  • Preshot Server-Bound & Client-Bound Packet Catalog (40+ Packets):
    • Configuration & Visualizer: ServerBoundRequestConfigSyncPacket, ClientBoundConfigSyncPacket, ServerBoundVisualizerTogglePacket, ClientBoundVisualizerSyncPacket.
    • 3D Spatial Speakers: ServerBoundSpeakerCreatePacket, ServerBoundSpeakerDeletePacket, ServerBoundSpeakerLinkPacket, ServerBoundSpeakerUnlinkPacket, ServerBoundSpeakerPlaySoundPacket, ServerBoundSpeakerStopSoundPacket, ServerBoundSpeakerUpdatePacket, ClientBoundSpeakerSyncPacket.
    • Wiretaps & Surveillance: ServerBoundWiretapCreatePacket, ServerBoundWiretapDeletePacket, ServerBoundWiretapSubscribePacket, ServerBoundWiretapUnsubscribePacket, ClientBoundWiretapSyncPacket.
    • Radios & Walkie-Talkies: ServerBoundRadioCreatePacket, ServerBoundRadioJoinPacket, ServerBoundRadioLeavePacket, ClientBoundRadioSyncPacket.
    • Audio Recordings & Cassettes: ServerBoundRecordingStartPacket, ServerBoundRecordingStopPacket, ServerBoundCassetteCreatePacket, ServerBoundRecordingPlayPacket, ServerBoundRecordingStopPlayPacket, ClientBoundRecordingSyncPacket.
    • DSP Voice Filters: ServerBoundFilterApplyPacket, ServerBoundFilterRemovePacket, ServerBoundFilterClearPacket, ServerBoundFilterTogglePacket, ClientBoundFilterSyncPacket.
    • Acoustic Rooms: ServerBoundRoomCreatePacket, ServerBoundRoomDeletePacket, ServerBoundRoomUpdatePacket, ClientBoundRoomSyncPacket.
    • Transmitters & Projections: ServerBoundTransmitterCreatePacket, ServerBoundTransmitterDeletePacket, ServerBoundTransmitterTogglePacket, ClientBoundTransmitterSyncPacket, ServerBoundProjectionCreatePacket, ServerBoundProjectionDeletePacket, ClientBoundProjectionSyncPacket.
  • Zero-Dependency Inter-Mod Integration:
    • Allows external survival mods (craftable megaphones, spy bugs, walkie-talkies, tape recorders) and client HUD mods to control DreamVoice subsystems via JSON custom payloads without hard compile-time dependencies.

⚡ Dual-Platform Event Bus (Bukkit & Fabric)

  • Unified Voice Events:
    • All event classes extend VoiceEvent and feature self-dispatching via .callEvent().
  • Platform Event Dispatching:
    • Paper: Dispatched natively through Bukkit's PluginManager for @EventHandler listeners.
    • Fabric: Dispatched through DreamVoiceEvents.VOICE_EVENT.register(...) callback hook.
  • Event Coverage:
    • Cancellable hooks across all lifecycle actions: SpeakerLinkPlayerEvent, SpeakerPlaySoundEvent, RadioChannelJoinEvent, CassetteCreateEvent, CassettePlayEvent, VoiceRecordingStartEvent, VoiceFilterApplyEvent, VoiceWallOcclusionEvent, VoiceKeywordSpokenEvent, WiretapSubscribeEvent, etc.

👁️ Real-Time 3D Acoustic Visualizer Mode (/voice visualizer)

  • Interactive Acoustic Raycasting:
    • Added /voice visualizer [toggle|on|off] (permission: dreamvoice.visualizer).
    • Renders 3D particle rays illustrating line-of-sight paths, wall collision impacts, aperture diffraction bypasses around doors/openings, and speaker audible coverage spheres.
  • Performance-Conscious Hand-Held Requirement:
    • Particle streams are rendered only when the inspecting player has the visualizer tool (default: COMPASS) equipped in their main hand, preventing client lag and visual clutter during normal gameplay.
  • Synchronized Visualizer State:
    • State is automatically synced to Fabric clients via ServerBoundVisualizerTogglePacket and ClientBoundVisualizerSyncPacket.

🎙️ VoiceWiretap x VoiceProjection Integration

  • Cross-Module Audio Propagation:
    • Covert wiretap microphones (VoiceWiretap) now dynamically support and intercept voices emitted through active voice projections (VoiceProjection).
  • Dual-Origin Spatial Audio:
    • Physical Emission (isEmitVoiceAtPlayer): Microphones in proximity to the player's physical body capture the direct voice as normal.
    • Anchor Emission (isEmitVoiceAtAnchor): Microphones in proximity to the projection's anchor location (projection.getAnchorLocation()) intercept the projected voice in real time.
    • Acoustic Occlusion & Wall Physics: Line-of-sight raycasting (VoiceRayCast) and material attenuation (VoiceWall) are accurately simulated between the anchor coordinates and the wiretap.
    • Filter Inheritance: Voice projections configured with custom filters (e.g., megaphone, radio, disguise) pass their processed audio downstream to wiretap listeners.

🔌 Public Hearing & Attenuation API (VoiceService & VoiceWallService)

  • Unified Audibility Check (canHear):
    • Introduced voiceService.canHear(speaker, listener) (with Player and UUID overloads).
    • Evaluates whether a listener can hear a speaker across all communication channels:
      1. Direct point-to-point audio transmitters (VoiceTransmitterService).
      2. Shared radio frequency channels (VoiceRadioService).
      3. Proximity spatial voice chat (canHearProximity).
  • Full-Condition Proximity Audibility (canHearProximity):
    • Introduced voiceService.canHearProximity(speaker, listener) (with Player and UUID overloads).
    • Validates active Simple Voice Chat connections for both players.
    • Enforces life states (ALIVE, DEAD, SPECTATE).
    • Evaluates voice projection constraints (emitVoiceAtPlayer, emitVoiceAtAnchor, hearPlayerEnvironment).
    • Respects configured distance limits (Codex.getEffectiveDistance()).
    • Computes total dB attenuation across VoiceWall materials and isolated VoiceRoom cuboids; returns false if sound is blocked ($\ge 99.0\text{ dB}$).
  • Direct Decibel Attenuation Metrics:
    • Added voiceService.getEffectiveAttenuationDb(speaker, listener) to measure total acoustic dB loss between two players.
    • Added voiceWallService.getAttenuationDb(speaker, listener) for querying raw wall and room isolation losses.

📢 Physical Broadcast System (VoiceBroadcastService)

  • Podium & Intercom Broadcast Points:
    • Introduced VoiceBroadcastService and /voice broadcast command suite.
    • Players speaking within a configured capture radius around a location or entity automatically have their voice routed to connected speakers.
  • Flexible Audio Routing:
    • All Speakers Routing (allSpeakers = true): Broadcasts to every registered speaker across the server.
    • Selective Target Speakers: Link specific speakers to a broadcast point (/voice broadcast link <name> <speaker>).
  • On/Off Toggle & Filter Chaining:
    • Broadcast points can be toggled on/off on demand (/voice broadcast toggle <name>).
    • Optional custom audio filters can be chained to the broadcast (e.g. intercom distortion, PA megaphone filter).
  • Modular Persistence:
    • Stored under modules/broadcast/ with automatic saving on server shutdown.

🛠️ Interactive Configuration Mode & Tool (/voice config)

  • Interactive Configuration Tool (/voice tool):
    • Added /voice config and /voice tool commands (using ECHO_SHARD as the physical tool to prevent conflicts with WorldEdit wands).
    • Config tool supports interactive targeting: entities, blocks, or air/gaze fallback.
  • Full InvUI Management GUIs Across All Audio Subsystems:
    • Dashboard (VoiceConfigMainGUI): Visual dashboard covering all audio subsystems with target coordinates/entity indicators.
    • Speakers Manager (SpeakerListGUI, SpeakerEditGUI): Browse speakers, adjust distance/range with +/- buttons, toggle mode (GLOBAL / RESTRICTED), teleport, or create new speakers at current target.
    • Broadcast Manager (BroadcastListGUI, BroadcastEditGUI, BroadcastLinkSpeakersGUI): Browse broadcast points, toggle active state (ON/OFF), adjust radius, toggle all-speakers routing, visually link/unlink individual speakers, cycle filters, or create new points.
    • Wiretaps Manager (WiretapListGUI, WiretapEditGUI): Inspect covert bugs, toggle live eavesdropping, teleport, or deploy new bugs.
    • Acoustic Rooms Inspector (RoomListGUI): View room dimensions, reverberation presets, and acoustic isolation percentages.
    • Radio Channels Manager (RadioListGUI): Browse frequencies, view active listener counts, and tune in/disconnect directly.
    • Transmitters Manager (TransmitterListGUI): Toggle transmitter mode, view linked receiver players, unlink or configure receivers.
    • Projections Inspector (ProjectionListGUI): Inspect active player projections, emission modes (anchor/player), and teleport to anchor coordinates.
    • Acoustic & Wall Engine (AcousticInspectGUI): Live toggle for VoiceWall, cycle occlusion modes (Realistic/Strict/Off), toggle air damping, particle raycast debug, and inspect acoustic properties of targeted blocks/materials.

🌐 Complete Localization & Translation System (LangService)

  • Adventure Component.translatable Integration:
    • All command messages, items (Cassette, Config Tool), and InvUI configuration menus now use Component.translatable(...) backed by MiniMessage translation stores.
    • Eliminated all hardcoded TextDecoration (<!italic>, <b>) and NamedTextColor calls across UI classes; all styling is defined directly within language files.
  • Bilingual English (Default) & French Support:
    • Populated lang-dreamvoice.json with comprehensive translation keys, gradients, formatting tags, and arguments.
    • Configured default plugin language to English (EN) with full client-side French (FR) fallback.

📦 Build System & Dependency Centralization

  • Centralized gradle.properties:
    • Consolidated all plugin, toolchain, and dependency versions into gradle.properties:
      • minecraft_version = 26.1.2
      • paper_api_version = 26.1.2.build.+
      • fabric_api_version = 0.155.0+26.1.2
      • loader_version = 0.19.3
      • loom_version = 1.17-SNAPSHOT
      • shadow_version = 9.4.1
      • voicechat_api_version = 2.6.20
      • vosk_version = 0.3.45
      • cloud_fabric_version = 2.0.0-beta.16
      • java_version = 25
    • Streamlined settings.gradle and all subproject build files (api, common, paper, fabric) to reference properties exclusively.
  • CI/CD Workflow Modernization:
    • Updated GitHub Actions workflows (publish.yml, javadoc.yml, discord-announce.yml) for dual-platform publishing to GitHub Packages and Modrinth.

🐛 Bug Fixes & Stability

  • Projection Audio Crackling & Transcoding Artifacts:
    • Eliminated audio crackling and high-frequency buzzing occurring when speaking while in voice projection:
      • Removed discontinuous chunk-level 1-pole lowpass smoothing filter that injected 50 Hz boundary discontinuities into audio packets.
      • Prevented multi-decoding of incoming microphone Opus packets on shared decoders across listeners.
      • Implemented encoder.resetState() on speech pauses (> 400ms) to prevent Opus predictor state corruption upon resuming speech.
      • Bypassed PCM decoding and lossy Opus transcoding completely when no wall occlusion or voice filters are present, routing raw Opus packets directly to 3D locational audio channels.
  • Speech Recognizer Crash on Reload:
    • Resolved kaldi::KaldiFatalError (Can't add speaker model to already running recognizer) triggered during /voice speech reload by safely closing and cycling active Vosk recognizer instances before applying updated keyword grammars.
  • CI / Discord Webhook Release Workflow:
    • Fixed Python variable scope (brand_color) in .github/workflows/discord-announce.yml.
    • Added role mention <@&1546913649308995738> to automated Discord release broadcasts.

🧹 Code Quality & Conventions

  • Removed redundant control-flow braces on single statements (if, else, for) across fabric, paper, common, and api.
  • Cleaned up inline fully-qualified class names in favor of clean header imports.
  • Standardized final var declaration across all local variable scopes.

Файлы

DreamVoice-fabric-2.0.1.jar(29.65 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

2.0.1+fabric

Загрузчики

Fabric

Версии игры

26.1.2

Загрузок

85

Дата публикации

30.09.2026

Загрузил

ID версии

Главная