DLAP is a Discord bot that lets you play local audio tracks in your server. With DLAP, you can access your music files, and share your tunes with your friends and community. DLAP offers seamless integration with Discord, so you can enjoy your music without missing a beat.
Translate | Video Tutorial | Support Server
If you want to add a feature or there's anything wrong, read the CONTRIBUTING document, then feel free to make a fork and put a pull request.
As you know, I may not keep up the project at times, or I could possibly introduce more bugs in this project. As well as making the code more messy. I will need to form a team in order to implement new features and make this project better.
If you want to become a maintainer, you must at least know this source code, JavaScript and NodeJS. Also you must join my discord server (Support Server) to communicate with me.
- Latest version of NodeJS (v16.11.0+)
- Linux (or WSL for Windows users)
- Yarn Package Manager
Before we begin, ensure that Docker is installed on your system. If not, you can download and install Docker from the official website.
You can fetch the Docker image for the DLAP bot from either DockerHub or GitHub Packages. Here are the commands for both:
To fetch the image from DockerHub, use the following command:
docker pull alee14498/dlap:latest
Alternatively, you can fetch the image from GitHub Packages using this command:
docker pull ghcr.io/alee14/dlap:stable
After running one of these commands, Docker will download the image to your system. You can then proceed to run the bot using this image.
If you want to build the image then using CMD or a terminal change directory to DLAP root folder and type the following:
docker build -t dlap .
- the -t flag specifies a tag that will be assigned to the image. With it, we can easily run the image that the tag was assigned to.
- the dot at the end is basically the path to search for Dockerfile. The dot means current directory (./)
- Run the container
Follow the guide below and when ready type the following
docker run -d -v <path to config>:/usr/src/bot/config.json -v <path to music>:/usr/src/bot/music --name dlap <image name>
- -d flag tells Docker to run the container in detached mode, meaning it will run the container in the background of your terminal and not give us any output from it. If we don't provide it, the run will be giving us the output until the application exits. Discord bots aren't supposed to exit after certain time, so we do need this flag
- -v flag in Docker is used for volume mounting. It creates a bind mount, which allows you to specify a host path (on your local machine) and a container path (inside the Docker container). When the Docker container is run, the specified host path is mounted into the container at the specified container path.
- --name assigns a name to the container. By default, container is identified by id that is not human-readable. To conveniently refer to container when needed, we can assign it a name
- <image name> means the name of the image, if you are building it, then you should use
dlap:latest
, otherwise use eitheralee14498/dlap:latest
orghcr.io/alee14/dlap:stable
.
View logs (optional)
docker logs -f dlap
- -f flag tells the docker to keep reading logs as they appear in container and is called "follow mode". To exit press CTRL + C.
Docker guide partially taken from PythonDiscord
Make a new file called config.json
inside the root of your project.
{
"token": "token_here",
"txtFile": true/false,
"shuffle": true/false,
"repeat": true/false,
"statusChannel": "channel_id",
"voiceChannel": "voice_channel_id",
"clientID": "client_id",
"ownerID": "your_user_id",
"djRole": "role_id",
"locale": "en",
"presenceActivity": "activity_here",
"activityType": [0 (Playing)/1 (Streaming)/2 (Listening)/3 (Watching)/4 (Custom)/5 (Competing)],
}
Credit: VicktorMS
First you need to create a discord application (Discord for Developers) to get all the tokens you need. This application will in fact be your bot.
IDs available on discord for developers:
"clientID"
: Select your app > Settings > General Information > "Application ID""token"
: Select your app > Settings > Bot > "Reset Token" Button
IDs available on your discord server: First you need activate Developer Mode on Discord in order to get the IDS
"statusChannel"
: Create a channel in your server > Right Click on top > "Copy channel ID""voiceChannel"
: Create a channel in your server > Right Click on top > "Copy channel ID""djRole"
: Create a role in your server > Right Click on top > "Copy role ID""ownerID"
: Right Click on top of yourself on a discord server > "Copy User ID" (Your User ID is not "YouName#3217")
Bool settings (set to true or false)
"txtFile"
: true/false (Generates a text file)"shuffle"
: true/false (Shuffle songs)"repeat"
: true/false (Repeat all musics)
Bot Activity
"presenceActivity"
: Write any message here, it will be displayed in Bot's activity."activityType"
: Put any number between 0 and 5. That will be the Bot Activity type.
Activity Types
0
: Playing1
: Streaming2
: Listening3
: Watching4
: Custom5
: Competing
Create the music
folder on root of your project.
Add your own audio files to the music
folder.
Deploy the commands by doing node deploy-command.js
.
Launch the bot using node bot.js
in terminal.
Public Only
-----------
ping - Pong!
status - Checks what audio file is playing currently.
about - Information about the bot.
list - Lists the available audio tracks.
list (page) - Input a number to change the page of the list.
next vote - Goes to next music by vote.
previous vote - Goes to previous music by vote.
Special Permissions Only
--------------
join - Joins voice chat.
play - Resumes music.
play (int) - Input a number for the selection for the audio file.
pause - Pauses music.
next force - Goes to next music by force.
previous force - Goes to previous music by force.
reshuffle - Reshuffles the playlist.
leave - Leaves voice chat.
shutdown - Powers off the bot.
When forking the project, you can make your own version of DLAP or help contribute to the project (See the "Contributing" section).
You need to edit /commands/about.js
to uncomment the { name: 'Forked by', value: '[your name] (username)' }
section.
Be sure to replace that with your name.
When contributing, be sure to add yourself to the contributors list in /commands/about.js
.
If you want to translate DLAP with another language, create a Parlance account (Victor Tran Account), and ask Victor Tran (server owner) on the Victor Tran Discord for permission to translate DLAP.
- Easier to use interface
ChatGPT: Some code in this codebase used ChatGPT