Skip to content

Commit

Permalink
Merge pull request #15 from danmason/add-clear-command
Browse files Browse the repository at this point in the history
Add `clear` command to the bot.
  • Loading branch information
danmason authored Sep 28, 2021
2 parents 52d1df2 + 880cdb0 commit 6a5f9c1
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 4 deletions.
5 changes: 5 additions & 0 deletions java-src/cljukebox/AudioTrackScheduler.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ public boolean setLoop(boolean shouldLoop) {
return loop;
}

public boolean clear() {
queue.clear();
return skip();
}

@Override
public void onTrackEnd(final AudioPlayer player, final AudioTrack track, final AudioTrackEndReason endReason) {
if(loop && endReason == AudioTrackEndReason.FINISHED) {
Expand Down
6 changes: 4 additions & 2 deletions src/cljukebox/handlers.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,17 @@
[queue :as queue]
[leave :as leave]
[skip :as skip]
[loop :as loop]]))
[loop :as loop]
[clear :as clear]]))

(def base-handlers
{"prefix" prefix/handler-data
"play" play/handler-data
"queue" queue/handler-data
"leave" leave/handler-data
"skip" skip/handler-data
"loop" loop/handler-data})
"loop" loop/handler-data
"clear" clear/handler-data})

(defn help-handler [{:keys [message-channel guild-id content] :as data}]
(let [prefix (util/get-prefix guild-id)
Expand Down
13 changes: 13 additions & 0 deletions src/cljukebox/handlers/clear.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
(ns cljukebox.handlers.clear
(:require [cljukebox.player :as player]
[cljukebox.util :as util]))

(defn clear-bot [{:keys [message-channel guild-id] :as data}]
(let [{:keys [scheduler] :as guild-manager} (player/get-guild-audio-manager guild-id)]
(.clear scheduler)
(util/send-message message-channel ":wastebasket: **Bot queue cleared!**")))

(def handler-data
{:doc "Will skip the currently playing track and remove all songs from the queue."
:usage-str "clear"
:handler-fn clear-bot})
3 changes: 1 addition & 2 deletions src/cljukebox/handlers/loop.clj
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
(ns cljukebox.handlers.loop
(:require [clojure.string :as string]
[cljukebox.player :as player]
(:require [cljukebox.player :as player]
[cljukebox.util :as util]))

(def !loop (atom false))
Expand Down

0 comments on commit 6a5f9c1

Please sign in to comment.