/lavamusic

lavalink music bot base in erela.js and discord.js v14

Primary LanguageJavaScriptApache License 2.0Apache-2.0


Our Music Bot

High Quality Music Bot with a DJ System, Music Channel Setup, 24/7 in VC, Stage Channels, Slash Commands Support and more for FREE!




Version Contributors Forks Stargazers Issues MIT License

Run on Repl.it Remix on Glitch


Pbot-plus

lavamusic

Lavamusic is a powerful music Bot

Invite Moe ยท Report Bug ยท Request Feature

๐Ÿ“ Tutorial

A Tutorial has been uploaded on YouTube, Watch it by clicking here

๐ŸŽญ Features

  • โœ… Setup System
  • โœ… Music
  • โœ… 24/7
  • โœ… Dj
  • โœ… Custom Playlist (global)
  • โœ… SlashCommand
  • โœ… Custom prefix
  • โœ… Filters
  • โœ… Easy to use
  • โœ… And much more!

๐Ÿ–ผ๏ธ Screenshots


๐Ÿ“Ž Requirements

Note: Java v11 or newer is required to run the Lavalink.jar. Java v13 is recommended. If you are using sdkman then its a manager, not Java, you have to install sdkman and use sdkman to install Java

Warning: Java v14 has issues with Lavalink.

๐ŸŒ Main

  • Discord bot's token You should know why you need this or you won't go to this repo Get or create bot here
  • Mongodb URI for custom prefix MongoDB
  • Your ID for eval command. It's dangerous if eval accessible to everyone
  • Spotify client ID for spotify support Click here to get
  • Spotify client Secret for spotify support Click here to get

๐ŸŽถ Available music sources

  • โœ… YouTube
  • โœ… Bandcamp
  • โœ… SoundCloud
  • โœ… Twitch
  • โœ… Vimeo
  • โœ… http (you can use radio for it)
  • โœ… Spotify
  • โœ… Deezer

๐Ÿš€ Installation using docker-compose

This section assumes you have docker and docker-compose installed and is running correctly.

Download the Docker-Compose file in a seperate folder like lavamusic.

Edit the Docker-Compose file and make sure to edit the following variables:

TOKEN: "put your bot token"
PREFIX: "your bot prefix"
OWNER_ID: "your discord id"

For more information how to fill all the varialabes go to this page. You do not need to edit anything like the PORT, ADDRESS, PASSWORD, HOST, SECURE and USERNAME. Unless you know what your doing.

After saving your changes you can open a terminal and go to the same location as the docker-compose file. Then type the following:

docker-compose up -d

The above command will start all your services and your bot should be up and running!

To update, you only have to type the following:

docker-compose up --force-recreate --build -d
image prune -f

You can automate this by using Watchtower. The following should be sufficient:

docker run --detach \
    --name watchtower \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --restart on-failure \
    containrrr/watchtower --cleanup

Do note that the bot will restart itself to update to the latest!

๐Ÿš€ Installation from source

git clone https://github.com/brblacky/lavamusic.git

After cloning, run

npm install
  • Start the bot with node src/sharder.js

to snag all of the dependencies. Of course, you need node installed. I also strongly recommend nodemon as it makes testing much easier.

Intents

When you are running the Code you must have gotten this Error. To fix this head over to your Bot's Discord Application and go to the Bot Settings and find this:

Then turn on both of those Settings and click "Save Changes". Then you are done and it should be fixed!

โš™๏ธ Configurations

  • edit in src/config.js and you can do in .env
    token: process.env.TOKEN || "",  // your bot token
    clientID: process.env.CLIENT_ID || "", // your bot client id
    prefix: process.env.PREFIX || "!", // bot prefix
    ownerID: process.env.OWNER_ID || "", //your discord id
    SpotifyID: process.env.SPOTIFY_ID || "",
    SpotifySecret: process.env.SPOTIFY_SECRET || "",
    mongourl: process.env.MONGO_URL || "", // MongoDb URL
    embedColor: process.env.EMBED_COLOR || 0x303236, // embed colour
    logs: process.env.LOGS || "channel_id", // channel id for guild create and delete logs
    errorLogsChannel: process.env.ERROR_LOGS_CHANNEL || "channel_id", //error logs channel id
    SearchPlatform: process.env.SEARCH_PLATFORM || "youtube music", // Sets the Search Platform. Possibilities: youtube || youtube music || soundcloud

๐ŸŒ‹ Lavalink

      "host": "localhost",
      "port": 2333,
      "password": "coders",
      "retryDelay": 3000,
      "secure": false
  • Create an application.yml file in your working directory and copy the example into the created file and edit it with your configuration.
  • Run the jar file by running java -jar Lavalink.jar in a Terminal window.

โš™๏ธ SHARDS

  • edit in sharder.js
  respawn: true,
  autoSpawn: true,
  token: token,
  totalShards: 1,
  shardList: "auto",

๐ŸŒ€ About

Readme Card

Lavamusic is a lavalink music bot base in erela.js If you liked this repository, feel free to leave a star โญ to help promote !

๐Ÿ’Œ Support Server

DiscordBanner
Support Server - lavamusic's Support Server Invite

Donate

By donating, you will help me to maintain this Project!

๐Ÿค Contributing

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/your-username/lavamusic.git
  3. Create your feature branch: git checkout -b my-new-feature
  4. Stage changes git add .
  5. Commit your changes: cz OR npm run commit do not use git commit
  6. Push to the branch: git push origin my-new-feature
  7. Submit a pull request

๐Ÿ” License

Distributed under the Apache-2.0 license License. See LICENSE for more information.