Tags
Creators
Details
Licensed GPL-3.0-only
Published 6 days ago
Updated 2 days ago
All versions
π Comprehensive JavaDoc Documentation (
1.0.8
Release
DreamVoice 1.0.8last month 1
Uploaded by
Compatibility
Minecraft: Java Edition
26.1.2
Platforms
Paper
Purpur
Spigot
Required content
Unavailable version
Changes
Changelog 1.0.8
π Comprehensive JavaDoc Documentation (api)
- Exhaustive English JavaDoc: 100% of all public interfaces, classes, records, events, models, and builders in the
dreamvoice-apimodule are now thoroughly documented in English. - Detailed API Coverage:
- Core & Lifecycle:
VoiceService,VoicePersistenceService,CodexService. - Player & State Management:
PlayerService,VPlayer,PlayerManager,PlayerState, and associated lifecycle events (PlayerJoinVoiceEvent,PlayerLeaveVoiceEvent,PlayerStateChangeEvent). - Audio Routing & Spatial Features:
VoiceSpeakerService,Speaker,SpeakerMode,VoiceProjectionService,VoiceProjection,VoiceWiretapService,VoiceWiretap,VoiceRadioService,RadioChannel,VoiceTransmitterService,ReceiverConfig. - DSP & Physics:
VoiceFilterService,VoiceFilter,VoiceWallService,VoiceWallMode,MicrophonePacketEvent,EntitySoundPacketEvent,VoiceSoundBuilder,ByteArrayUtils.
- Core & Lifecycle:
β‘ DSP Audio Filter & Real-Time Performance Optimizations
- Precalculated Phase Constants: Precomputed static phase increments (
LFO_INC,PHASE_INCREMENT,TWO_PI) across all DSP filters (UnderwaterVoiceFilter,RobotVoiceFilter,AlienVoiceFilter,DisguiseVoiceFilter,GhostVoiceFilter), eliminating redundant mathematical calculations at 48,000 samples/second. - Static Constant Extraction: Centralized magic numbers, frame dimensions (
FRAME_SIZE_SAMPLES = 960), silence thresholds, audio buffer sizes, cleanup intervals, and volume category identifiers asprivate static finalconstants. - English Filter Display Names: Standardized all filter names in English (
Deep Voice (Monster),Helium (High Pitch),Alien / Sci-Fi,Gas Mask / Helmet,Telephone,Disguise / Anonymizer). - Acoustic Raycast Refinement: Cleaned up direct line-of-sight checks in
VoiceRayCast(hitsTargetAtAnyHeight) by eliminating redundant material lookups and dead control flow.
ποΈ Code Architecture & Cyclomatic Complexity Reduction
- Monolithic Handler Decomposition: Refactored large packet routing methods (
onMicrophone,processEntitySoundPacket,playRecordingTo,startRecording) into dedicated, single-responsibility private helper routines across all core services (VoiceWallServiceImpl,VoiceSpeakerServiceImpl,VoiceProjectionServiceImpl,VoiceWiretapServiceImpl,VoiceRadioServiceImpl,VoiceTransmitterServiceImpl,VoiceRecordingServiceImpl,VoiceServiceImpl). - Standardized Section Banners: Applied uniform structure comments (
STATIC FIELDS,INSTANCE FIELDS,CONSTRUCTOR METHODS,PUBLIC SERVICE METHODS,PRIVATE HELPER METHODS,EVENT LISTENERS) across all services. - Modern Java Code Standards: Consistent usage of
final var, guard clauses with early returns, and simplified single-line control statements. - Full English Localization: Converted remaining Action Bar debug messages, logger warnings, and console outputs to English.
π CI/CD & Automated Deployment Pipelines
- Automated JavaDoc Deployment (
javadoc.yml): GitHub Actions workflow automatically generating and deploying complete API documentation to GitHub Pages on every release tag. - Streamlined GitHub Releases (
publish.yml): Automatic release workflow publishingDreamVoice.jar(plugin binary) anddreamvoice-api-${VERSION}.jarwith changelogs and Modrinth synchronization. - Code Quality Inspection (
qodana_code_quality.yml): Integrated JetBrains Qodana static code analysis for automated quality checks and vulnerability scanning.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:WRYhkDTs:aBwp66dV"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:WRYhkDTs:aBwp66dV"
}

