Skip to content

Commit

Permalink
Lavaplayerを独自の物からlavalink-devsが開発しているものに変更
Browse files Browse the repository at this point in the history
  • Loading branch information
kosugikun committed Jul 13, 2024
1 parent ab7f0aa commit 43b9e94
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 18 deletions.
18 changes: 14 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
<packaging>jar</packaging>

<repositories>
<repository>
<id>arbjergDev-releases</id>
<name>Lavalink Repository</name>
<url>https://maven.lavalink.dev/releases</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
Expand Down Expand Up @@ -42,12 +47,17 @@
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>5.0.0-beta.24</version>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.github.Cosgy-Dev</groupId>
<artifactId>lavaplayer-cosgy</artifactId>
<version>cosgy-v2-345292aaf0-1</version>
<groupId>dev.arbjerg</groupId>
<artifactId>lavaplayer</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>dev.lavalink.youtube</groupId>
<artifactId>v2</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.github.Cosgy-Dev</groupId>
Expand Down
16 changes: 8 additions & 8 deletions src/main/java/com/jagrosh/jmusicbot/audio/PlayerManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@
import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager;
import com.sedmelluq.discord.lavaplayer.source.AudioSourceManagers;
import com.sedmelluq.discord.lavaplayer.source.nico.NicoAudioSourceManager;
import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager;
import dev.lavalink.youtube.YoutubeAudioSourceManager;
import dev.lavalink.youtube.clients.AndroidTestsuite;
import dev.lavalink.youtube.clients.Music;
import dev.lavalink.youtube.clients.Web;
import dev.lavalink.youtube.clients.skeleton.Client;
import net.dv8tion.jda.api.entities.Guild;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -46,24 +50,20 @@ public void init() {
);
}

registerSourceManager(new YoutubeAudioSourceManager(
true,
bot.getConfig().getYouTubeEmailAddress(),
bot.getConfig().getYouTubePassword()
));
registerSourceManager(new YoutubeAudioSourceManager(/*allowSearch:*/ true, new Client[] { new Music(), new Web(), new AndroidTestsuite() }));

TransformativeAudioSourceManager.createTransforms(bot.getConfig().getTransforms()).forEach(this::registerSourceManager);
AudioSourceManagers.registerRemoteSources(this);
AudioSourceManagers.registerLocalSource(this);
source(YoutubeAudioSourceManager.class).setPlaylistPageCount(10);

if (getConfiguration().getOpusEncodingQuality() != 10) {
logger.debug("OpusEncodingQuality は、" + getConfiguration().getOpusEncodingQuality() + "(< 10)" + ", 品質を10に設定します。");
logger.debug("OpusEncodingQuality は、{}(< 10), 品質を10に設定します。", getConfiguration().getOpusEncodingQuality());
getConfiguration().setOpusEncodingQuality(10);
}

if (getConfiguration().getResamplingQuality() != AudioConfiguration.ResamplingQuality.HIGH) {
logger.debug("ResamplingQuality は " + getConfiguration().getResamplingQuality().name() + "(HIGHではない), 品質をHIGHに設定します。");
logger.debug("ResamplingQuality は {}(HIGHではない), 品質をHIGHに設定します。", getConfiguration().getResamplingQuality().name());
getConfiguration().setResamplingQuality(AudioConfiguration.ResamplingQuality.HIGH);
}
}
Expand Down
25 changes: 25 additions & 0 deletions src/main/java/com/jagrosh/jmusicbot/queue/FairQueue.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ public class FairQueue<T extends Queueable> {
private final List<T> list = new ArrayList<>();
private final Set<Long> set = new HashSet<>();

/**
*
* @deprecated
*/
public int add(T item) {
int lastIndex;
for (lastIndex = list.size() - 1; lastIndex > -1; lastIndex--)
Expand All @@ -44,6 +48,27 @@ public int add(T item) {
return lastIndex;
}

public int add(T item, boolean forceToEnd) {
if (forceToEnd) {
list.add(item);
return list.size() - 1;
}

int lastIndex;
for (lastIndex = list.size() - 1; lastIndex > -1; lastIndex--)
if (list.get(lastIndex).getIdentifier() == item.getIdentifier())
break;
lastIndex++;
set.clear();
for (; lastIndex < list.size(); lastIndex++) {
if (set.contains(list.get(lastIndex).getIdentifier()))
break;
set.add(list.get(lastIndex).getIdentifier());
}
list.add(lastIndex, item);
return lastIndex;
}

public void addAt(int index, T item) {
if (index >= list.size())
list.add(item);
Expand Down
16 changes: 14 additions & 2 deletions src/main/java/com/jagrosh/jmusicbot/settings/Settings.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ public class Settings implements GuildSettingsProvider {
private boolean bitrateWarningReaded;
private double skipRatio;
private boolean vcStatus;
private boolean ForceToEndQue;


public Settings(SettingsManager manager, String textId, String voiceId, String roleId, int volume, String defaultPlaylist, RepeatMode repeatMode, String prefix, boolean bitrateWarningReaded, int announce, double skipRatio, boolean vcStatus) {
public Settings(SettingsManager manager, String textId, String voiceId, String roleId, int volume, String defaultPlaylist, RepeatMode repeatMode, String prefix, boolean bitrateWarningReaded, int announce, double skipRatio, boolean vcStatus, boolean forceToEndQue) {
this.manager = manager;
try {
this.textId = Long.parseLong(textId);
Expand All @@ -68,9 +69,10 @@ public Settings(SettingsManager manager, String textId, String voiceId, String r
this.announce = announce;
this.skipRatio = skipRatio;
this.vcStatus = vcStatus;
this.ForceToEndQue = forceToEndQue;
}

public Settings(SettingsManager manager, long textId, long voiceId, long roleId, int volume, String defaultPlaylist, RepeatMode repeatMode, String prefix, boolean bitrateWarningReaded, int announce, double skipRatio, boolean vcStatus) {
public Settings(SettingsManager manager, long textId, long voiceId, long roleId, int volume, String defaultPlaylist, RepeatMode repeatMode, String prefix, boolean bitrateWarningReaded, int announce, double skipRatio, boolean vcStatus, boolean forceToEndQue) {
this.manager = manager;
this.textId = textId;
this.voiceId = voiceId;
Expand All @@ -83,6 +85,7 @@ public Settings(SettingsManager manager, long textId, long voiceId, long roleId,
this.announce = announce;
this.skipRatio = skipRatio;
this.vcStatus = vcStatus;
this.ForceToEndQue = forceToEndQue;
}

// Getters
Expand Down Expand Up @@ -189,4 +192,13 @@ public void setDJRole(Role role) {
this.roleId = role == null ? 0 : role.getIdLong();
this.manager.writeSettings();
}

public void setForceToEndQue(boolean forceToEndQue) {
this.ForceToEndQue = forceToEndQue;
this.manager.writeSettings();
}

public boolean isForceToEndQue() {
return ForceToEndQue;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ public SettingsManager() {
o.has("bitrate_warnings_readied") && o.getBoolean("bitrate_warnings_readied"),
o.has("announce") ? o.getInt("announce") : 0,
o.has("skip_ratio") ? o.getDouble("skip_ratio") : SKIP_RATIO,
o.has("vc_status") && o.getBoolean("vc_status")));
o.has("vc_status") && o.getBoolean("vc_status"),
o.has("force_to_end_que") && o.getBoolean("force_to_end_que")));
});
} catch (NoSuchFileException e) {
// ignore, it just means no settings have been saved yet
Expand Down Expand Up @@ -99,7 +100,7 @@ public Settings getSettings(long guildId) {
}

private Settings createDefaultSettings() {
return new Settings(this, 0, 0, 0, 10, null, RepeatMode.OFF, null, false, 0, SKIP_RATIO, true);
return new Settings(this, 0, 0, 0, 10, null, RepeatMode.OFF, null, false, 0, SKIP_RATIO, true, false);
}

protected void writeSettings() {
Expand Down Expand Up @@ -127,6 +128,8 @@ protected void writeSettings() {
o.put("skip_ratio", s.getSkipRatio());
if (!s.getVCStatus())
o.put("vc_status", s.getVCStatus());
if(s.isForceToEndQue())
o.put("force_to_end_que", s.isForceToEndQue());

obj.put(Long.toString(key), o);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ protected void execute(CommandEvent event) {
String args = event.getArgs();

if (args.isEmpty()) {
log.info("変更前の再生モード:" + settings.getRepeatMode());
log.info("変更前の再生モード:{}", settings.getRepeatMode());
value = (settings.getRepeatMode() == RepeatMode.OFF ? RepeatMode.ALL : (settings.getRepeatMode() == RepeatMode.ALL ? RepeatMode.SINGLE : (settings.getRepeatMode() == RepeatMode.SINGLE ? RepeatMode.OFF : settings.getRepeatMode())));
} else if (args.equalsIgnoreCase("true") || args.equalsIgnoreCase("all") || args.equalsIgnoreCase("on")) {
value = RepeatMode.ALL;
Expand All @@ -73,7 +73,7 @@ protected void execute(CommandEvent event) {
}

settings.setRepeatMode(value);
log.info(event.getGuild().getName() + "でリピートコマンドを実行し、設定を" + value + "に設定しました。");
log.info("{}でリピートコマンドを実行し、設定を{}に設定しました。", event.getGuild().getName(), value);
event.replySuccess("リピートを `" + (value == RepeatMode.ALL ? "有効(全曲リピート)" : (value == RepeatMode.SINGLE ? "有効(1曲リピート)" : "無効")) + "` にしました。");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ public PlayCmd(Bot bot) {
@Override
public void doCommand(CommandEvent event) {

// TODO:設定からqueの一番下に強制追加するかを取得する


if (event.getArgs().isEmpty() && event.getMessage().getAttachments().isEmpty()) {
Expand Down

0 comments on commit 43b9e94

Please sign in to comment.