Update to latest alpha and make clone of track when playing next
This commit is contained in:
1 parent
90455b90c3
commit
d3683cc638
26 files changed
+79
-69
No files matched your search
@@ -5,6 +5,7 @@ import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.JDABuilder;
|
||||
import net.dv8tion.jda.api.entities.Activity;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import net.dv8tion.jda.api.exceptions.InvalidTokenException;
|
||||
import net.dv8tion.jda.api.requests.GatewayIntent;
|
||||
import netneutrality.core.CommandManager;
|
||||
import netneutrality.core.LogHandler;
|
||||
@@ -24,8 +25,6 @@ import org.apache.logging.log4j.core.config.Configurator;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
|
||||
public class NetNeutrality {
|
||||
|
||||
private static JDA jda;
|
||||
@@ -68,7 +67,7 @@ public class NetNeutrality {
|
||||
.setActivity(Activity.watching("me load..."))
|
||||
.build();
|
||||
jda.awaitReady();
|
||||
} catch (LoginException | IllegalArgumentException | InterruptedException e) {
|
||||
} catch (InvalidTokenException | IllegalArgumentException | InterruptedException e) {
|
||||
Sentry.captureException(e);
|
||||
|
||||
LogHandler.log(e);
|
||||
|
||||
@@ -2,7 +2,7 @@ package netneutrality.command;
|
||||
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import netneutrality.core.context.MessageCommandContext;
|
||||
|
||||
|
||||
@@ -6,7 +6,11 @@ package netneutrality.command;
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
import net.dv8tion.jda.api.entities.channel.ChannelType;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import netneutrality.core.GuildManager;
|
||||
import netneutrality.db.GSettings;
|
||||
import netneutrality.utils.UserFunction;
|
||||
|
||||
@@ -8,7 +8,7 @@ package netneutrality.command;
|
||||
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData;
|
||||
import netneutrality.core.context.MessageCommandContext;
|
||||
|
||||
@@ -6,7 +6,7 @@ package netneutrality.command.admin;
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
||||
@@ -7,7 +7,7 @@ package netneutrality.command.bot;
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.unions.GuildChannelUnion;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
|
||||
@@ -7,7 +7,7 @@ package netneutrality.command.music;
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.VoiceChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData;
|
||||
import netneutrality.command.AbstractMusicCommand;
|
||||
import netneutrality.core.context.MessageCommandContext;
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
package netneutrality.core;/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
* https://xtremcommunity.com/
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
|
||||
package netneutrality.core;
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
@@ -13,7 +6,7 @@ package netneutrality.core;/*
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import netneutrality.music.MusicManager;
|
||||
import netneutrality.music.TrackScheduler;
|
||||
import org.json.JSONArray;
|
||||
|
||||
@@ -9,7 +9,7 @@ package netneutrality.core;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import netneutrality.NetNeutrality;
|
||||
import netneutrality.db.DBController;
|
||||
import netneutrality.db.GSettings;
|
||||
@@ -84,14 +84,6 @@ public class GuildManager {
|
||||
return managers;
|
||||
}
|
||||
|
||||
public boolean isLoggingEnabled() {
|
||||
return guildEntity.getLogging();
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return guildEntity.getDebug();
|
||||
}
|
||||
|
||||
public Guild getGuild() {
|
||||
return guild;
|
||||
}
|
||||
@@ -108,6 +100,15 @@ public class GuildManager {
|
||||
return settingsCache;
|
||||
}
|
||||
|
||||
// Methods
|
||||
public boolean isLoggingEnabled() {
|
||||
return guildEntity.getLogging();
|
||||
}
|
||||
|
||||
public boolean isDebugEnabled() {
|
||||
return guildEntity.getDebug();
|
||||
}
|
||||
|
||||
public String getSetting(GSettings setting) {
|
||||
String value = settingsCache.get(setting.getName());
|
||||
|
||||
@@ -196,7 +197,7 @@ public class GuildManager {
|
||||
|
||||
public void checkAndLogMessage(Message message, Member member, TextChannel channel) {
|
||||
if (isLoggingEnabled()) {
|
||||
ThreadManager.getExecutor("log-messages").submit(() -> DBController.get(DBMessage.class).log(this, channel, member, message));
|
||||
ThreadManager.getExecutor().submit(() -> DBController.get(DBMessage.class).log(this, channel, member, message));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ package netneutrality.core;
|
||||
|
||||
import io.sentry.Sentry;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import netneutrality.core.context.CommandContext;
|
||||
import netneutrality.exceptions.CommandException;
|
||||
import netneutrality.exceptions.CommandExecutionException;
|
||||
|
||||
@@ -6,7 +6,11 @@ package netneutrality.core.context;/*
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.events.Event;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
|
||||
import netneutrality.command.AbstractCommand;
|
||||
|
||||
@@ -10,6 +10,7 @@ import io.sentry.Breadcrumb;
|
||||
import io.sentry.Sentry;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
|
||||
import netneutrality.command.AbstractCommand;
|
||||
@@ -26,7 +27,7 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class MessageCommandContext implements CommandContext {
|
||||
|
||||
private static final ExecutorService commandExecutor = ThreadManager.getExecutor("command-execution", ThreadManager.ExecutorType.FIXED);
|
||||
private static final ExecutorService commandExecutor = ThreadManager.getExecutor();
|
||||
|
||||
private AbstractCommand command;
|
||||
private final MessageReceivedEvent event;
|
||||
|
||||
@@ -7,7 +7,11 @@ package netneutrality.core.context;/*
|
||||
|
||||
import io.sentry.Sentry;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.User;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||
|
||||
@@ -9,7 +9,7 @@ package netneutrality.db.controllers;
|
||||
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import netneutrality.core.GuildManager;
|
||||
import netneutrality.db.AbstractController;
|
||||
import netneutrality.db.entities.OLogMessage;
|
||||
|
||||
@@ -7,7 +7,7 @@ package netneutrality.hooks.message;
|
||||
* https://discord.gg/CdFcyQ
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.events.message.MessageUpdateEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import netneutrality.core.GuildManager;
|
||||
|
||||
@@ -11,7 +11,7 @@ import io.sentry.Sentry;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import netneutrality.command.AbstractCommand;
|
||||
|
||||
@@ -15,12 +15,11 @@ import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager
|
||||
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.VoiceChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
|
||||
import netneutrality.core.GuildManager;
|
||||
import netneutrality.core.LogHandler;
|
||||
import netneutrality.core.context.CommandContext;
|
||||
import netneutrality.core.context.SlashCommandContext;
|
||||
import netneutrality.db.GSettings;
|
||||
import netneutrality.exceptions.CommandExecutionException;
|
||||
import netneutrality.music.loadable.LoadableSong;
|
||||
@@ -155,12 +154,6 @@ public class MusicManager {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean restoreQueue(List<String> track) {
|
||||
//TODO: todo
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public synchronized void play(String url, CommandContext context, boolean needToBeConnected, boolean silent) {
|
||||
logger.debug("Guild {}: request to play {} by user {}", guild.getId(), url, context.getGuildUser().getId());
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package netneutrality.music;/*
|
||||
package netneutrality.music;
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
* https://xtremcommunity.com/
|
||||
@@ -203,12 +204,7 @@ public class QueueManager {
|
||||
TrackInfo next = queue.peek();
|
||||
|
||||
if (next != null) {
|
||||
if (last != null && last.getTrack().equals(next.getTrack())) {
|
||||
logger.debug("Guild {}: duplicate track in queue found, skipping to next. last={}, next={}", guild.getId(), last.getTrack().getIdentifier(), next.getTrack().getIdentifier());
|
||||
startNextTrack();
|
||||
} else {
|
||||
player.startTrack(next.getTrack(), false);
|
||||
}
|
||||
player.startTrack(next.getTrack().makeClone(), false);
|
||||
} else {
|
||||
player.stopTrack();
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import netneutrality.thread.ThreadManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TrackLoader implements Runnable {
|
||||
@@ -65,8 +66,11 @@ public class TrackLoader implements Runnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
List<LoadableSong> copy = new ArrayList<>(songs);
|
||||
|
||||
for (LoadableSong song : songs) {
|
||||
if (loadingDisabled) {
|
||||
copy.remove(song);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -93,7 +97,7 @@ public class TrackLoader implements Runnable {
|
||||
|
||||
audioPlayerManager.loadItemOrdered(this, identifier, loadingHandler);
|
||||
} else {
|
||||
totalNumberOfTracks++;
|
||||
copy.remove(song);
|
||||
|
||||
if (songs.size() == 1) {
|
||||
context.replyToMessage("No source found to play the given url");
|
||||
@@ -103,13 +107,13 @@ public class TrackLoader implements Runnable {
|
||||
|
||||
try {
|
||||
synchronized (sync) {
|
||||
while (!(songs.size() == totalNumberOfTracks)) {
|
||||
while (!(copy.size() == totalNumberOfTracks)) {
|
||||
logger.debug("waiting for load; size={}, total={}, loaded={}", songs.size(), totalNumberOfTracks, numberOfTracksLoaded);
|
||||
sync.wait();
|
||||
}
|
||||
|
||||
//TODO: logic
|
||||
if (songs.size() > 1 && source != null && !loadingDisabled) {
|
||||
if (copy.size() > 1 && source != null && !loadingDisabled) {
|
||||
context.replyToMessage("Loaded %d of %d tracks from online source", numberOfTracksLoaded, totalNumberOfTracks);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
||||
import com.sedmelluq.discord.lavaplayer.track.AudioTrackEndReason;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import netneutrality.core.LogHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -7,7 +7,7 @@ package netneutrality.thread;/*
|
||||
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.VoiceChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
|
||||
import netneutrality.NetNeutrality;
|
||||
import netneutrality.music.MusicManager;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -10,9 +10,9 @@ import io.sentry.ISpan;
|
||||
import io.sentry.ITransaction;
|
||||
import io.sentry.Sentry;
|
||||
import io.sentry.SpanStatus;
|
||||
import net.dv8tion.jda.api.entities.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageHistory;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||
import netneutrality.core.context.CommandContext;
|
||||
import netneutrality.thread.ThreadManager;
|
||||
@@ -50,7 +50,7 @@ public class ChannelMessagePurger {
|
||||
}
|
||||
|
||||
public void purgeMessages(CommandContext context, int toPurge) {
|
||||
ThreadManager.getExecutor("bulk-delete", ThreadManager.ExecutorType.FIXED).submit(() -> {
|
||||
ThreadManager.getExecutor().submit(() -> {
|
||||
if (lock.tryLock()) {
|
||||
try {
|
||||
int total = countAllChannelMessages(channel);
|
||||
@@ -69,7 +69,7 @@ public class ChannelMessagePurger {
|
||||
}
|
||||
|
||||
public void purgeChannel(CommandContext context) {
|
||||
ThreadManager.getExecutor("bulk-delete", ThreadManager.ExecutorType.FIXED).submit(() -> {
|
||||
ThreadManager.getExecutor().submit(() -> {
|
||||
if (lock.tryLock()) {
|
||||
try {
|
||||
int total = countAllChannelMessages(channel);
|
||||
|
||||
@@ -11,7 +11,11 @@ import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
|
||||
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
||||
import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.ChannelType;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import netneutrality.command.AbstractCommand;
|
||||
import netneutrality.command.CommandType;
|
||||
import netneutrality.core.CommandManager;
|
||||
@@ -94,6 +98,20 @@ public class MessageFunction {
|
||||
return message.build();
|
||||
}
|
||||
|
||||
public static MessageEmbed buildSearchResultsMessage(List<AudioTrack> tracks) {
|
||||
EmbedBuilder message = new EmbedBuilder();
|
||||
|
||||
message.setTitle("Select the track to add to the queue");
|
||||
message.setColor(Color.BLUE);
|
||||
|
||||
int i = 0;
|
||||
for (AudioTrack track : tracks) {
|
||||
message.addField(++i + ": ", String.format("**`%s`**", track.getInfo().title), false);
|
||||
}
|
||||
|
||||
return message.build();
|
||||
}
|
||||
|
||||
public static MessageEmbed buildAddingPlaylistMessage(AudioPlaylist playlist, String identifier, SourceFinder.AudioSourceType type) {
|
||||
EmbedBuilder message = new EmbedBuilder();
|
||||
String url = identifier;
|
||||
|
||||
@@ -7,7 +7,7 @@ package netneutrality.utils;
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.VoiceChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
|
||||
import netneutrality.core.context.CommandContext;
|
||||
import netneutrality.exceptions.CommandExecutionException;
|
||||
import netneutrality.music.MusicManager;
|
||||
|
||||
@@ -7,13 +7,6 @@ import net.dv8tion.jda.api.entities.Role;
|
||||
public class UserFunction {
|
||||
|
||||
public static boolean isAdmin(Member user) {
|
||||
|
||||
// This check will only be present during the development of the bot
|
||||
String creatorId = Settings.getInstance().getCreatorId();
|
||||
if (creatorId != null && user.getId().equals(creatorId)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean isAdmin = false;
|
||||
for(Role role : user.getRoles()) {
|
||||
if (role.getPermissions().contains(Permission.MANAGE_SERVER) || role.getPermissions().contains(Permission.ADMINISTRATOR))
|
||||
|
||||
Reference in new issue
Block a user