diff --git a/pom.xml b/pom.xml
index 7e29b394a..c2c8bb35c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,11 @@
ErdbeerbaerLP Repository
https://repo.erdbeerbaerlp.de/repository/maven-public/
+
+ TopiWTF-releases
+ Topis Maven Repo
+ https://maven.topi.wtf/releases
+
@@ -124,6 +129,20 @@
1.3
test
+
+
+
+
+
+ com.github.topi314.lavasrc
+ lavasrc
+ 4.1.1
+
+
+ com.github.topi314.lavasrc
+ protocol-jvm
+ 4.1.1
+
diff --git a/src/main/java/com/jagrosh/jmusicbot/BotConfig.java b/src/main/java/com/jagrosh/jmusicbot/BotConfig.java
index f6a8757ac..7e71fdf06 100644
--- a/src/main/java/com/jagrosh/jmusicbot/BotConfig.java
+++ b/src/main/java/com/jagrosh/jmusicbot/BotConfig.java
@@ -51,7 +51,9 @@ public class BotConfig
private Config aliases, transforms;
private boolean valid = false;
-
+ private String sfClientSecret;
+ private String sfClientID;
+
public BotConfig(Prompt prompt)
{
this.prompt = prompt;
@@ -82,6 +84,8 @@ public void load()
errorEmoji = config.getString("error");
loadingEmoji = config.getString("loading");
searchingEmoji = config.getString("searching");
+ sfClientID = config.getString("spotifyclientid");
+ sfClientSecret = config.getString("spotifyclientsecret");
game = OtherUtil.parseGame(config.getString("game"));
status = OtherUtil.parseStatus(config.getString("status"));
stayInChannel = config.getBoolean("stayinchannel");
@@ -227,6 +231,14 @@ public String getPrefix()
{
return prefix;
}
+ public String getSpotifyClientID()
+ {
+ return sfClientID;
+ }
+ public String getSpotifyClientSecret()
+ {
+ return sfClientSecret;
+ }
public String getAltPrefix()
{
@@ -242,7 +254,7 @@ public double getSkipRatio()
{
return skipratio;
}
-
+
public long getOwnerId()
{
return owner;
@@ -292,7 +304,7 @@ public String getHelp()
{
return helpWord;
}
-
+
public boolean getStay()
{
return stayInChannel;
diff --git a/src/main/java/com/jagrosh/jmusicbot/audio/PlayerManager.java b/src/main/java/com/jagrosh/jmusicbot/audio/PlayerManager.java
index 56999a92b..637340985 100644
--- a/src/main/java/com/jagrosh/jmusicbot/audio/PlayerManager.java
+++ b/src/main/java/com/jagrosh/jmusicbot/audio/PlayerManager.java
@@ -16,6 +16,7 @@
package com.jagrosh.jmusicbot.audio;
import com.dunctebot.sourcemanagers.DuncteBotSources;
+import com.github.topi314.lavasrc.spotify.SpotifySourceManager;
import com.jagrosh.jmusicbot.Bot;
import com.sedmelluq.discord.lavaplayer.container.MediaContainerRegistry;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
@@ -39,12 +40,12 @@
public class PlayerManager extends DefaultAudioPlayerManager
{
private final Bot bot;
-
+
public PlayerManager(Bot bot)
{
this.bot = bot;
}
-
+
public void init()
{
TransformativeAudioSourceManager.createTransforms(bot.getConfig().getTransforms()).forEach(t -> registerSourceManager(t));
@@ -62,21 +63,24 @@ public void init()
registerSourceManager(new NicoAudioSourceManager());
registerSourceManager(new HttpAudioSourceManager(MediaContainerRegistry.DEFAULT_REGISTRY));
+ if (!bot.getConfig().getSpotifyClientID().isEmpty() && !bot.getConfig().getSpotifyClientSecret().isEmpty()) {
+ registerSourceManager(new SpotifySourceManager(null,bot.getConfig().getSpotifyClientID(),bot.getConfig().getSpotifyClientSecret(), "DE", this));
+ }
AudioSourceManagers.registerLocalSource(this);
DuncteBotSources.registerAll(this, "en-US");
}
-
+
public Bot getBot()
{
return bot;
}
-
+
public boolean hasHandler(Guild guild)
{
return guild.getAudioManager().getSendingHandler()!=null;
}
-
+
public AudioHandler setUpHandler(Guild guild)
{
AudioHandler handler;
diff --git a/src/main/resources/reference.conf b/src/main/resources/reference.conf
index a4fda1e02..aad4109b6 100644
--- a/src/main/resources/reference.conf
+++ b/src/main/resources/reference.conf
@@ -226,5 +226,8 @@ transforms = {}
eval=false
evalengine="Nashorn"
+// If you intend to use Spotify, you can create an app on https://developer.spotify.com/dashboard and add your client id and secret here.
+spotifyclientid = "";
+spotifyclientsecret = "";
/// END OF JMUSICBOT CONFIG ///