Coder Social home page Coder Social logo

rainyxeon / byteblaze Goto Github PK

View Code? Open in Web Editor NEW
57.0 7.0 19.0 3.32 MB

πŸŒ€ A versatile and powerful music bot for Discord that brings rhythm and melody to your server πŸŒ€

License: GNU General Public License v3.0

TypeScript 98.79% Dockerfile 0.05% Batchfile 0.01% Shell 0.01% JavaScript 1.13%
discord-bot discord-bots discord-js discordbot discordjs-bot discordjs-v14 javascript nodejs lavalink discord-music-bot music-bot-discord bot-discord discord-js-v14 discord-music lavalink-musicbot typescript discord-slash-commands discord-ts discordjsbot discord

byteblaze's Introduction

English | PortuguΓͺs (Brasil) | TiαΊΏng Việt | ΰΈ ΰΈ²ΰΈ©ΰΈ²ΰΉ„ΰΈ—ΰΈ’


ByteBlaze

ByteBlaze

A versatile and powerful music bot for Discord that brings rhythm and melody to your server!

Invite Dreamvast β™« Β· Report Issues & Give Suggestions Β· Support Server

πŸ’Ž Features

  • TypeScript Language To Avoid Errors In Production
  • Advanced Music System With Buttons
  • Song Request Channel
  • 24/7 Mode
  • Multi Language
  • Slash Commands
  • Custom Filters
  • Playlist System
  • Premium System (Guild / User)
  • Play Song Using File
  • Cooldown System
  • Shard System
  • Auto Reconnect
  • Auto Pause/Resume
  • Auto Complete Search
  • Auto Fix Lavalink From lavalink.darrennathanael.com
  • Support lavalink v4, v3 and nodelink v2

🎢 Supported Sources

Music Source Without Lavalink Plugin With Lavalink Plugin
YouTube βœ… βœ…
SoundCloud βœ… βœ…
(LS) Spotify ⚠️ βœ…
HTTP βœ… βœ…
(LS) Deezer ⚠️ βœ…
Twitch βœ… βœ…
Bandcamp βœ… βœ…
Nicovideo ⚠️ ⚠️
(LS) Apple Music ⚠️ βœ…
(LS) Yandex Music ❌ βœ…
(LS) Flowery TTS ❌ βœ…
(DB) Mixcloud ❌ βœ…
(DB) OC ReMix ❌ βœ…
(DB) Clyp.it ❌ βœ…
(DB) Reddit ❌ βœ…
(DB) GetYarn ❌ βœ…
(DB) Text to Speech ❌ βœ…
(DB) TikTok (BETA) ❌ βœ…
(DB) P**nhub (Not recommended) ❌ βœ…
(DB) Soundgasm ❌ βœ…
  • βœ… Full support with the default Lavalink configuration
  • ⚠️ Supports but resolves from YouTube or SoundCloud only
  • ❌ Unsupported
  • (LS) Source from LavaSrc plugin
  • (DB) Source from DuncteBot plugin

πŸ“‚ Supported Databases

  • MySQL
  • MongoDB
  • JSON
  • PostgresSQL

πŸ”‰ Supported Lavalink/Nodelink version

Type Support versions Driver Name
Lavalink v4.0.0 - v4.x.x lavalink/v4/koinu
Lavalink v3.0.0 - v3.7.x lavalink/v3/koto
Nodelink v2.0.0 - v2.x.x nodelink/v2/nari

πŸ–ΌοΈ Showcase

help_command song_req playlist_info pm_gen

πŸ“‹ Requirements

πŸ› οΈ Installation

  1. Clone this repository using git clone https://github.com/RainyXeon/ByteBlaze.git
  2. run cd ByteBlaze to go to the ByteBlaze folder.
  3. Config files:
    • Note: All type of config must fill TOKEN, OWNER_ID and NODES
    • If you want to use default config and have minimal config, change the name of example.app.yml to app.yml
    • If you want to use all config, change the name of example.full.app.yml to app.yml
  4. run npm i to install the required packages.
  5. run npm run build:full to build the bot.
  6. run npm start to start the bot.
  7. Enjoy Listening To Music With ByteBlaze!

Repl.it

  1. Click Me and fork the repl.
  2. fill app.yml with TOKEN and NODES
  3. Start the bot using the Run button.
  4. Enjoy Listening To Music With ByteBlaze!

βš™οΈ Guide

For advanced installation and config guide, please check out the Wiki tab or Click Here!

πŸ“œ Versioning Policy

ByteBlaze follows Semantic Versioning

The version number is composed of the following parts:

MAJOR breaking changes
MINOR new backwards compatible features
PATCH backwards compatible bug fixes
BUILD additional build metadata
PRERELEASE pre-release version

Version numbers can come in different combinations, depending on the release type:

`MAJOR.MINOR.PATCH` - Stable release
`MAJOR.MINOR.PATCH+BUILD` - Stable release with additional build metadata
`MAJOR.MINOR.PATCH-PRERELEASE` - Pre-release
`MAJOR.MINOR.PATCH-PRERELEASE+BUILD` - Pre-release additional build metadata

πŸ“ƒ Translate Team (Languages)

⁉ Become to translate team?

πŸ’« Special Thanks

And Everyone who Starred and Contributed to My Project πŸ’–

πŸ’« Credits:

  • @RainyXeon Discord: rainyxeon As an owner and a creator of this project

byteblaze's People

Contributors

itzzoldy avatar psycodeliccircus avatar rainyxeon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

byteblaze's Issues

Unable to use /play from other channels?

Describe the bug
Lets say I am on a text only channel and when I type /play the bot should join my voice channel that I am in and start playing but it is not doing that. Keep saying ⚠️ | I do not have Speak permission to execute this command! When they have all the permission. This works only on the voice channels text channel.

To Reproduce
Go to any text channel with / support enabled and join a voice channel, Try playing and it should give that error.

Expected behavior
Join VC and start playing the song

Bot info (use /info status command and paste here, below is example):

Codename | vocaloid_kaito
Bot Version | 5.0.8
Node.js | v21.7.1
Discord.js | 14.13.0
Autofix Version | 5.0.1
Guild Count | 1
User Count | 2730

Bot randomly stops music and leaves vc

If you play a lengthy playlistβ€”though the required duration isn't clearβ€”I experimented with several playlists of varying lengths. Each time, the bot randomly exited the voice channel and displayed this error message:

Please note, the bot leave occurs randomly, without any specific song count or time trigger.
https://i.imgur.com/kKbhqvI.png

`/voteskip` command

number of votes required to skip the song depending on users in the channel. If 5 users in VC, then a minimum of 3 votes required to skip the song.

Use Discord's Timestamp instead of normal time text

Enhancement Request: Use Discord's Unix Timestamp

Description:
I suggest using Discord's Unix Timestamp instead of normal text to display the time of an action (e.g., Premium redeem log). Currently, it only shows the server's timezone where the bot is running. For example, I live in Thailand, but my bot is hosted on a US server.

Example:
Using a Discord Unix Timestamp like <t:1717351140:F> will display as:

  • "Monday, June 3, 2024 12:59 AM" for the Asia/Bangkok (GMT+7) timezone
  • "Sunday, June 2, 2024 05:59 PM" for the GMT+0 timezone

Instead of:
image

We can try:
image

Add setup channel

A small fix for #133 would be, /setup-channel #text-channel.
With this, users can only run the / or prefix commands in that channel.

Play command via prefix

Describe the bug
The prefix version of play only recognizes the first arg before space i.

To Reproduce
Steps to reproduce the behavior:

  1. Run prefix version play command
  2. Use multiword song
  3. ie. !p rise up thefatrat

Expected behavior
My defaultSearchEngine is set to YT Music, so an audio of Rise Up - TheFatRat is expected, but a track only titled Rise gets queued instead

Screenshots and logs (logs file if avalible)
If applicable, add screenshots to help explain your problem.

Screenrecorder-2024-02-10-11-29-32-231-ezgif com-video-to-gif-converter

Bot info (use /info command and paste here, below is example):

Codename        | vocaloid_kaito
Bot Version     | 5.0.0
Node.js         | v21.6.1
Discord.js      | 14.13.0
Autofix Version | 5.0.0
Guild Count     | 13
User Count      | 3002

Insert a song into the current queue

Hello,

I would like a feature where I can "Insert" a song into the current queue.
Where I can add a song as the NEXT SONG to play in the queue, without disrupting or clearing the current queue.

Example:
Normal queue: Song 1, Song 2, Song 3, Song 4
... after using the insert command to add a song: Song 5, Song 1, Song 2, Song 3, Song 4

Thanks In Advanced

Language issue

Describe the bug
In some interactions/reply msg the but says I don't have dreamvast@admin instead of saying you don't have.
This is also applicable to guild based permissions like manage server ..etc

Use webhooks for logging

The bot only requires the members content intent, but what if people who don't want to use prefix based commands and don't want to apply for intents on discord? It would be nice if webhooks could be used to log errors, guild join/leave, premium redeem ..etc via discord webhook.

Eval Command + YouTube Support but YouTube can't give Ban

Please can you make a Eval Command, which can eval any Javascript code without full bot code or any client like it can evaluate codes like message.channel.send("Hi") .

And Like YouTube is giving ban to bots supporting YouTube, so can you do like if any one paste URL or search anything ,so the bot should search on YouTube and than take the track and searches it on other platforms and then play with that and if the result not found the song then the bot should play from YouTube then the chances of ban will get low.

`/radio` command

Command play id plays radio ID of 0 - 10 from any API. APIs to be specified in radio.json or app.yml (I've a few radio links if you need).

Bot PREFIX

Describe the bug
Each bot should have its own prefix via app.yml

Expected behavior
If you're running more than one bot, by default each bot has the same prefix, but owners should be able to globally change the prefix for each bot.

Rebuilding will stop the 24/7

Describe the bug
If you rebuild the bot, example using bash start.sh then the bot will leave the 24/7 vc after few minutes.

To Reproduce
Steps to reproduce the behavior:

  1. Enable 24/7
  2. Rebuild the bot.

Expected behavior
Shouldn't leave the vc since it s supposed to stasy 24/7

MAX Length for a song

Is your feature request related to a problem? Please describe.
Songs Length no limit

Describe the solution you'd like
For example, if there is a command to set max length
So after setting up the length to 8 min
Thats must skip the playing song automatically if its more than 8 minutes long.

Songs end/skip

Describe the bug
When ever I play a song no matter if youtube or spotify it skips after around 30 seconds. It does get the duration right and if the song is in a playlist only the first song gets skipped and the rest plays normaly

To Reproduce
Steps to reproduce the behavior:

  1. Play song
  2. idk skips for me

Expected behavior
Doesnt skip/ stop song

Screenshots and logs (logs file if avalible)
ByteBlaze-out.log
Lavalink-out.log

Host info: (use /info status command and paste here, below is example)

  • OS: Ubuntu 22.04.4 LTS
  • CPU: AMD EPYC 7543 32-Core Processor
  • Uptime: 3d 20h 8s
  • RAM: 32.00 GB
  • Memory Usage: 70.6mb/31398.14 (MB)
  • Node.js: v18.19.0

Bot info (use /info status command and paste here, below is example):

  • Codename: vocaloid_kaito
  • Bot version: 5.2.2+1715871660348
  • Autofix version: 5.1.0
  • Discord.js: 14.15.2
  • Guild Count: 3
  • User count: 32

Bot owner/admin dashboard

I think it will be nice to have a dashboard for the bot owner and admins

  1. This is where we can see in how many servers the bot is
  2. all the premium members/guilds (this should be in 5.2.3)
  3. we can create here a premium key
  4. and remove unused premium keys
  5. Create announcements
  6. see the bot status command info

Spotify Integration (login, fetch private playlist and import to db)

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Getting Error and bot not responding

So what happens is the bot works perfectly for sometime then i get this prompt and the bot stops working
Possible AsyncEventEmitter memory leak detected. 11 closed listeners added to WebSocketShard. Use emitter.setMaxListeners() to increase the limit.

Allow to enable/disable logs

It would be helpful if we can enable/disable specific logs from the console.
Example: trackstar, stop, player destroy ..etc because if we play a playlist, then the console kinda gets spammed.

Premium list

No this is not related to a problem.

It would be realy nice to have an channel with all premium users and with an auto update so you can see who is ending soon

user premium change

i think it would be beter that if an bot owner/admin is creating a premium code that instead he sends it in that channel that the bot is sending it to the users his private messages

Also if #106 is going true that if we create a premium key he will send it in the users his private messages

24/7 BUG in more than one bot on same instance.

Describe the bug
If I'm having more than one bot on the same instance. Example: 3
I run 24/7 for each bot in difference vc and I restart the bot, all the bots will join the vc in which bot 0 is aka the main bot.

To Reproduce
Steps to reproduce the behavior:

  1. Enable 24/7 for each bot in a differenct VC.
  2. Make sure each bot is in a seperate VC.
  3. Restart hte bot.

Expected behavior
Bot should join back their respective VCs.

Multi bot issue related

Describe the bug
This issue will list all issue related to multi bot feature

Currently please use 1 bot only!!!!!

My questions

Hi there rain

I have some questions to ask which is about database folder

  1. Does the database has fecth? If this has i will use it to make economy command
  2. If yes thank you for helping

Player message sent in different channel

Describe the bug
If you enable 24/7 in #general channel and play the music in #general channel then its obvious that the player message should be sent in general but if you 24/7 in #general and play the command in #commands it will send the message in general and in commands.

To Reproduce
Steps to reproduce the behavior:

  1. Enable 24/7 in any text channel.
  2. Play the music in that same text channel.
  3. Stop the music.
  4. Play the music in a different text channel.

Expected behavior
It shouldn't send in two different channels.

Screenshots and logs (logs file if avalible)
ss from my #commands channel https://i.imgur.com/Lurnvxs.png
ss from my #general channel https://i.imgur.com/okyIyi9.png

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.