From 0fe63e59569f161628574159a8f8d318abbe3e0e Mon Sep 17 00:00:00 2001
From: Brandon <bwaggone@umich.edu>
Date: Sat, 21 Apr 2018 15:38:57 -0400
Subject: Fix bug

---
 .../java/soundchan/BotListener/BotListener.java    |  6 +++--
 .../soundchan/BotListener/BotListenerHelpers.java  | 26 ++++++++++++++++++++++
 src/main/java/soundchan/TrackScheduler.java        | 16 +++++++------
 3 files changed, 39 insertions(+), 9 deletions(-)

(limited to 'src')

diff --git a/src/main/java/soundchan/BotListener/BotListener.java b/src/main/java/soundchan/BotListener/BotListener.java
index fe148ce..b09fffc 100644
--- a/src/main/java/soundchan/BotListener/BotListener.java
+++ b/src/main/java/soundchan/BotListener/BotListener.java
@@ -31,6 +31,7 @@ public class BotListener extends ListenerAdapter{
     private static LocalAudioManager localManager;
     private final AudioPlayerManager playerManager;
     private final Map<Long, GuildMusicManager> musicManagers;
+    private BotListenerHelpers helper = new BotListenerHelpers();
 
     public BotListener(Properties properties) {
         this.musicManagers = new HashMap<>();
@@ -78,7 +79,6 @@ public class BotListener extends ListenerAdapter{
     @Override
     public void onMessageReceived(MessageReceivedEvent event) {
         String[] command = event.getMessage().getContentRaw().split(" ", 2);
-        BotListenerHelpers helper = new BotListenerHelpers();
 
         Guild guild = event.getGuild();
         MessageChannel channel = helper.GetReplyChannel(event);
@@ -202,8 +202,10 @@ public class BotListener extends ListenerAdapter{
                     //track.setPosition(long position)
 
                 }
-                if(!preempt)
+                if(!preempt) {
+                    helper.urlToTimeStamp(trackUrl);
                     channel.sendMessage("Adding to queue " + track.getInfo().title).queue();
+                }
 
                 play(monitoredGuild, musicManager, track, preempt);
             }
diff --git a/src/main/java/soundchan/BotListener/BotListenerHelpers.java b/src/main/java/soundchan/BotListener/BotListenerHelpers.java
index 6689255..98ad31a 100644
--- a/src/main/java/soundchan/BotListener/BotListenerHelpers.java
+++ b/src/main/java/soundchan/BotListener/BotListenerHelpers.java
@@ -4,6 +4,7 @@ import net.dv8tion.jda.core.entities.Guild;
 import net.dv8tion.jda.core.entities.MessageChannel;
 import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
 
+
 public class BotListenerHelpers {
 
     /**
@@ -16,5 +17,30 @@ public class BotListenerHelpers {
         return (guild == null) ? event.getPrivateChannel() : event.getTextChannel();
     }
 
+    public long urlToTimeStamp(String url){
+
+        int[] timeConversions = {1, 60, 3600};
+        int position = url.indexOf("?t=");
+        int seekTime = 0;
+
+        if(position != -1){
+            String linkTimestamp = url.substring(position + 3);
+            String[] times = linkTimestamp.split("[hms]");
+            for(int i = 0; i < times.length / 2; i++)
+            {
+                String temp = times[i];
+                times[i] = times[times.length - i - 1];
+                times[times.length - i - 1] = temp;
+            }
+
+            for (int i = 0; i < times.length; i++) {
+                seekTime = seekTime + timeConversions[i]*Integer.parseInt(times[i]);
+            }
+            System.out.println(seekTime);
+
+        }
+        return seekTime;
+    }
+
 
 }
diff --git a/src/main/java/soundchan/TrackScheduler.java b/src/main/java/soundchan/TrackScheduler.java
index cc68335..cf7b1f8 100644
--- a/src/main/java/soundchan/TrackScheduler.java
+++ b/src/main/java/soundchan/TrackScheduler.java
@@ -46,14 +46,16 @@ public class TrackScheduler extends AudioEventAdapter {
 
   public void playNow(AudioTrack track) {
     AudioTrack currenlyPlaying = player.getPlayingTrack();
-    AudioTrack cloned = currenlyPlaying.makeClone();
-    cloned.setPosition(currenlyPlaying.getPosition());
-
-    // Don't re-enqueue if its just a soundclip
-    if(!(currenlyPlaying.getInfo().uri.contains(".mp3") || currenlyPlaying.getInfo().uri.contains(".wav")))
-      // Re-enqueue the track
-      queue.addFirst(cloned);
+    // If something is currently playing, pause it and put it back in the queue
+    if(currenlyPlaying != null) {
+      AudioTrack cloned = currenlyPlaying.makeClone();
+      cloned.setPosition(currenlyPlaying.getPosition());
 
+      // Don't re-enqueue if its just a soundclip
+      if (!(currenlyPlaying.getInfo().uri.contains(".mp3") || currenlyPlaying.getInfo().uri.contains(".wav")))
+        // Re-enqueue the track
+        queue.addFirst(cloned);
+    }
     player.startTrack(track, false);
 
   }
-- 
cgit v1.2.3