Git Product home page Git Product logo

music-bot's Introduction

  • ๐Ÿ‘‹ Hi, Iโ€™m @ddellspe
  • ๐Ÿ“ซ How to reach me

music-bot's People

Contributors

ddellspe avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

eikesan

music-bot's Issues

Add testing (and testing framework)

In order to better support the open source nature of the project, add in unit testing for the existing command and raw pieces of the bot.

Add Search support on Play

If the play returns no match, search prior to attempting to add, this would mean we should probably externalize the Handler.

Upgrade to discord4j-core 3.2.0

Discord4J just release discord4j-core 3.2.0, they do breaking changes with minor version updates, so this is a breaking change for a good chunk of the code we're using. This mostly appears in the createEmbed method for our use.

Add retries for adding track

It seems after some amount of idle time, the api to play the youtube songs fails? It has the following log trace:

music-bot    | 2023-08-29T00:52:11.964187670Z [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of KajGqKJ3ePg
music-bot    | 2023-08-29T00:52:11.964402022Z com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
music-bot    | 2023-08-29T00:52:11.964610733Z   at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
music-bot    | 2023-08-29T00:52:11.964657560Z   at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:116)
music-bot    | 2023-08-29T00:52:11.964668842Z   at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
music-bot    | 2023-08-29T00:52:11.964831169Z   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
music-bot    | 2023-08-29T00:52:11.964855585Z   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
music-bot    | 2023-08-29T00:52:11.964863166Z   at java.base/java.lang.Thread.run(Unknown Source)
music-bot    | 2023-08-29T00:52:11.964905619Z   Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
music-bot    | 2023-08-29T00:52:11.964923301Z   lavaplayer.version: 1.3.78
music-bot    | 2023-08-29T00:52:11.964929730Z   os.arch: amd64
music-bot    | 2023-08-29T00:52:11.964935718Z   os.name: Linux
music-bot    | 2023-08-29T00:52:11.964940933Z   os.version: 5.15.0-79-generic
music-bot    | 2023-08-29T00:52:11.964946228Z   java.vendor: Eclipse Adoptium
music-bot    | 2023-08-29T00:52:11.964951760Z   java.version: 17.0.8
music-bot    | 2023-08-29T00:52:11.964956963Z   java.runtime.version: 17.0.8+7
music-bot    | 2023-08-29T00:52:11.964962483Z   java.vm.version: 17.0.8+7
music-bot    | 2023-08-29T00:52:11.965163954Z Caused by: java.lang.RuntimeException: Not success status code: 403
music-bot    | 2023-08-29T00:52:11.965202829Z   at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.validateStatusCode(PersistentHttpStream.java:87)
music-bot    | 2023-08-29T00:52:11.965244058Z   at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:116)
music-bot    | 2023-08-29T00:52:11.965280216Z   at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
music-bot    | 2023-08-29T00:52:11.965318799Z   at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:150)
music-bot    | 2023-08-29T00:52:11.965348434Z   at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:166)
music-bot    | 2023-08-29T00:52:11.965375817Z   at java.base/java.io.DataInputStream.readByte(Unknown Source)
music-bot    | 2023-08-29T00:52:11.965413966Z   at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readEbmlInteger(MatroskaEbmlReader.java:39)
music-bot    | 2023-08-29T00:52:11.965450228Z   at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.readNextElement(MatroskaFileReader.java:45)
music-bot    | 2023-08-29T00:52:11.965532027Z   at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.readFile(MatroskaStreamingFile.java:78)
music-bot    | 2023-08-29T00:52:11.965546429Z   at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:51)
music-bot    | 2023-08-29T00:52:11.965619832Z   at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34)
music-bot    | 2023-08-29T00:52:11.965633048Z   at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
music-bot    | 2023-08-29T00:52:11.965655240Z   at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
music-bot    | 2023-08-29T00:52:11.965686717Z   at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
music-bot    | 2023-08-29T00:52:11.965725241Z   at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
music-bot    | 2023-08-29T00:52:11.965763981Z   ... 4 more

This SHOULD be able to be caught and potentially retried pending the status code?

Add skip command

Add the ability for anyone who is in the voice channel to skip the song

Make getMessageAfterPrefix more safe

There are some issues with respect to the current Prefix/split setup, for instances when the command is for instance !play and the person puts !playing (this will currently kill the server), we want to be more fault-tolerant to this.

Originally posted by @ddellspe in #6 (comment)

Move start command to play command

We'll want to make start optional, and then add a footer to the start message that you can simply start it with the !play command in the future.

Add play command

Add the ability for anyone who is in the voice channel with the bot to add a new song to the playlist via a play option

Add interrupt command

Add the ability to inject a song currently (force play) but also re-queue the currently playing song (if one is present)

Add list command

Add a command the provides the next number of tracks in the playlist, as well as the total number of tracks in the playlist

Implement a force play command

There's no way to force the song at the top of the queue for playing, that should be added to better support the desire to interrupt a track and play the next one immediately with the next one being the one in the command.

Add help command

Add a command to get help with using the bot, this can either direct to the github readme, or have some sort of hook for each command in how it "helps"

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.