aquelemiguel / parrot

🦜 A hassle-free, highly performant, self-hosted Discord music bot with YouTube and Spotify support. Powered by yt-dlp.
MIT License
136 stars 44 forks source link

Allow users without DJ role to skip songs they've requested. #224

Open LiftedStarfish opened 1 year ago

LiftedStarfish commented 1 year ago

🧐 Rationale

Often, users request songs using a query string, and the video that the bot selects is not the one that they intended, and it would be nice the bot kept track of which user requested the songs in the queue, so that if the same user that requested a song requests to remove or skip that song, the DJ role requirement is ignored.

📝 Description

The bot keeps track of which user requested each song. When the skip or remove command is used, check to the user ID and their roles. If the user ID is the same as that of the user who requested the song OR the user has the DJ role, remove/skip the song.

➕ Additional Information & References

No response

aquelemiguel commented 1 year ago

Hi and welcome, @LiftedStarfish!

I like your suggestion. As you said, Parrot does not track which user queued a track. Adding that would not only be good for your use case but also for info purposes in the /np and /queue commands. Opinions on this, @joao-conde and @afonsojramos?

joao-conde commented 1 year ago

Seems useful and a good feature

StaticRocket commented 1 year ago

Lads, the DJ role has been removed in favor of discord permissions, which are applied base on users and roles to individual /commands , so either the user will never be allowed to invoke the /skip command because Discord forbids it, or they can and they would have permission to skip anyway. We don't have any wiggle room with this unless we add another command in addition to the extra tracking which will bypass discord permissions again leading us back to #196

LiftedStarfish commented 1 year ago

Um, I appreciate your faith in me, and I'd love to implement this, but um... I haven't the first clue any how I would actually do that. Was just suggesting a feature. The most sophisticated program I've ever written to date is a very simple integer radix converter. I only forked it for the purposes of studying it, but I don't really know what I'm looking at.

So, unless somebody's willing to take me on as an apprentice, this really should be assigned to somebody else. Sorry.