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 ///