Star ✨ on GitHub
Heads up: Only use with nodejs
version v18.x.x
or higher.
Queue Management
: Queue is integrated with a local database, to retrieve data if necessary.Audio Filters
: Apply various audio filters.Auto Resume
: Automatically resumes playing after a disconnect.Logging
: Logging options with log file support.Node Management
: Management of different Lavalink nodes.Filters Management
: Various audio filters like Equalizer, Karaoke, Timescale, Tremolo, Vibrato, Rotation, Distortion, Channel Mix, and LowPass.Player Management
: Manage player configurations and states.Plugin Management
: Lavalink plugin support.Structure
: Allows you to extend classes by complementing with your own functionalities.
From v4.6.18
to v4.44.04
, Moonlink.js has evolved. We've added features, improvements, and refactors to supercharge your music bot development.
Full-fledged lyrics management with plugins (LavaLyrics, JavaLyrics) and methods to fetch, display, and sync lyrics in real-time.
Explore new sound dimensions with DSP filters like HighPass, Normalization, and Echo, powered by the LavaDSPX plugin.
Take your bot's search to the next level. Find albums, artists, playlists, and tracks with precision using the LavaSearchPlugin.
Automatically skip sponsored segments in YouTube videos, ensuring an uninterrupted listening experience for your users.
Give your bot a voice! Use the `Player.speak` method with various providers to convert text to audio for innovative interactions.
Allow users to navigate through previously played songs with the new `Player.back()` method, accessing the player's history.
New methods for flawless queue management, including duplicate removal, sorting, moving, and much more.
The `NodeManager` now performs periodic health checks and automatically migrates players from unstable nodes, ensuring stability.
Gain full control over allowed music sources by blocking those you don't want with the `blacklistedSources` option.
A flexible and extensible plugin architecture with `PluginManager` and `AbstractPlugin` for you to customize Moonlink as you wish.
A new WebSocket client implementation for greater control and reliability in communication with Lavalink.
Full support for chapters in long tracks, with the `player.skipChapter()` method for easy and intuitive navigation.
Enhanced native integration, authentication, and error handling for a more robust experience with Spotify and Deezer.
New functions like `makeRequest` with retry logic and `isSourceBlacklisted` for better control and debugging of your bot.
A complete rewrite of the database to use Write-Ahead Logging (WAL), resulting in greater data persistence and performance.
Direct Manager methods have been deprecated in favor of `manager.players`, promoting a cleaner and more organized API.
The `generateShortUUID` function has been renamed to `generateUUID` for greater clarity and consistency across the codebase.
More robust handling of the player state, with improved reconnection attempts and skipping of blacklisted tracks.
Introduction of the `NodeState` enum for clearer, more explicit, and reliable node status tracking.
Moonlink.js harnesses the power of the extensive Lavalink plugin ecosystem to offer advanced, cutting-edge features. These plugins allow for immense customization and extension of your music bot's capabilities. Many of the standout features in Moonlink.js are made possible by these powerful additions.
You can explore the full list of plugins and their features in the official Lavalink documentation.
Adds **Lavalink-side** support for Spotify, Apple Music, and Deezer, allowing your bot to play music from the most popular streaming services via your Lavalink server.
Provides advanced search to find albums, artists, playlists, and tracks with precision, enhancing the user experience.
Unleash creative audio effects with a suite of additional filters like HighPass and Normalization, offering unique listening tools.
Automatically skips sponsored segments in YouTube videos, providing a seamless and uninterrupted listening experience.
Moonlink.js supports various lyrics plugins like LavaLyrics, Lyrics.kt, and others, allowing you to fetch and display synchronized lyrics in real-time.
Give your bot a voice! Through plugins like Google Cloud TTS, DuncteBot's free TTS, and Flowery TTS (via LavaSrc), your bot can convert text to audio.
Check out a simple and functional bot example in our repository: testBot
Get in touch with us! The best way to get help is by joining our support server on Discord.
If you found a bug and want to report it, please create an "Issue" on our GitHub. We will look into it as soon as possible to fix the problem.
Want to contribute by fixing the problem or adding a new feature? Send a "Pull Request"! Your name will be forever registered in the project's code.
A showcase for our amazing community
Want to add your bot to the list? Join our Discord or open a Pull Request at docs/content/index.md
.
Join us and contribute to the v4 version of moonlink.js!
We thank everyone who joins the server and reports bugs, thus helping to make the project increasingly stable and amazing for the developer community.
i feel out of place
amidst the beehive…
they look at me
with disapproval in their eyes —
as if they could see
the secrets of my heart.
they say i am a rebel
for not serving —
with devotion —
the queen bee.
but if i serve,
what good will it do,
if it is not what my soul
has chosen to love?
i wish i could fly,
free among the garden flowers,
without worrying about returning —
to the place i no longer know how to inhabit.
but i believe that one day,
i will break this prison,
and i will finally be able to fly
wherever i want —
with my own wings and
my own direction.
— Geo
With Love, 💕
The Ecliptia Team 😊