Fixed issue with displaying song list
This commit is contained in:
1 parent
6ec37452f9
commit
52c8253aa0
4 files changed
+79
-20
No files matched your search
-3
@@ -69,9 +69,6 @@ public class EightTrackBeanConfiguration {
|
|||||||
static {
|
static {
|
||||||
hibernateProperties = new Properties();
|
hibernateProperties = new Properties();
|
||||||
hibernateProperties.setProperty("hibernate.connection.zeroDateTimeBehavior", "convertToNull");
|
hibernateProperties.setProperty("hibernate.connection.zeroDateTimeBehavior", "convertToNull");
|
||||||
hibernateProperties.setProperty("hibernate.dbcp.maxActive", "50");
|
|
||||||
hibernateProperties.setProperty("hibernate.dbcp.maxIdle", "10");
|
|
||||||
hibernateProperties.setProperty("hibernate.dbcp.maxWait", "5000");
|
|
||||||
hibernateProperties.setProperty("hibernate.jdbc.batch_size property", "50");
|
hibernateProperties.setProperty("hibernate.jdbc.batch_size property", "50");
|
||||||
hibernateProperties.setProperty("hibernate.connection.charSet", "utf8");
|
hibernateProperties.setProperty("hibernate.connection.charSet", "utf8");
|
||||||
hibernateProperties.setProperty("hibernate.connection.characterEncoding", "utf8");
|
hibernateProperties.setProperty("hibernate.connection.characterEncoding", "utf8");
|
||||||
|
|||||||
+1
-1
@@ -56,6 +56,6 @@ public interface GuildPlaylistRepository extends CrudRepository<GuildPlaylist, L
|
|||||||
List<GuildPlaylist> findByGuildAndUserIdFetchSongs(Long guild, Long userId);
|
List<GuildPlaylist> findByGuildAndUserIdFetchSongs(Long guild, Long userId);
|
||||||
|
|
||||||
@Query("SELECT DISTINCT gpl FROM GuildPlaylist gpl LEFT JOIN FETCH gpl.guildPlaylistSongList WHERE gpl.guild.guildId = ?1 AND gpl.userId = ?2 AND gpl.playlist = ?3")
|
@Query("SELECT DISTINCT gpl FROM GuildPlaylist gpl LEFT JOIN FETCH gpl.guildPlaylistSongList WHERE gpl.guild.guildId = ?1 AND gpl.userId = ?2 AND gpl.playlist = ?3")
|
||||||
GuildPlaylist findGuildUserPlaylistFetchSongs(Long guild, Long userId, String playlist);
|
GuildPlaylist findByGuildUserPlaylistFetchSongs(Long guild, Long userId, String playlist);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -157,7 +157,6 @@ public class DiscordEventHandler extends ListenerAdapter {
|
|||||||
GuildMusicHandler gmh = GuildMusicService.getMap().get(event.getGuild().getIdLong());
|
GuildMusicHandler gmh = GuildMusicService.getMap().get(event.getGuild().getIdLong());
|
||||||
gmh.accept((id) -> GuildMusicService.getMap().remove(id));
|
gmh.accept((id) -> GuildMusicService.getMap().remove(id));
|
||||||
|
|
||||||
|
|
||||||
List<String> commands = new ArrayList<String>(Arrays.asList(event.getMessage().getContentRaw().trim().toLowerCase().split(" ")));
|
List<String> commands = new ArrayList<String>(Arrays.asList(event.getMessage().getContentRaw().trim().toLowerCase().split(" ")));
|
||||||
|
|
||||||
String command = commands.remove(0);
|
String command = commands.remove(0);
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ import java.nio.file.Path;
|
|||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -42,7 +44,6 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
||||||
@@ -50,8 +51,8 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
|
|||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
import net.dv8tion.jda.api.Permission;
|
import net.dv8tion.jda.api.Permission;
|
||||||
import net.dv8tion.jda.api.entities.ChannelType;
|
import net.dv8tion.jda.api.entities.ChannelType;
|
||||||
import net.dv8tion.jda.api.entities.Guild;
|
|
||||||
import net.dv8tion.jda.api.entities.GuildChannel;
|
import net.dv8tion.jda.api.entities.GuildChannel;
|
||||||
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
import net.dv8tion.jda.api.entities.Message.Attachment;
|
import net.dv8tion.jda.api.entities.Message.Attachment;
|
||||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||||
@@ -342,15 +343,23 @@ public class GuildMusicHandler {
|
|||||||
if (gs.getSong().getArtist().length() > longestArtist) longestArtist = gs.getSong().getArtist().length();
|
if (gs.getSong().getArtist().length() > longestArtist) longestArtist = gs.getSong().getArtist().length();
|
||||||
}
|
}
|
||||||
|
|
||||||
String fmt = "%6s | %-" + longestSong +"s | %-" + longestArtist +"s | %s%n";
|
event.getChannel().sendMessage(String.format("**Currently available songs for %s**\n\n", event.getGuild().getName())).complete();
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
StringBuilder sb = new StringBuilder();
|
String fmt = "%6s | %-" + longestSong +"s | %-" + longestArtist +"s | %s%n";
|
||||||
sb.append("**" + "Currently available songs for " + event.getGuild().getName() + "**\n\n```");
|
StringBuilder sb = new StringBuilder("```");
|
||||||
sb.append(String.format(fmt, "Track", "Title", "Artist", "id"));
|
sb.append(String.format(fmt, "Track", "Title", "Artist", "id"));
|
||||||
sb.append(StringUtils.repeat("-", 27 + longestSong + longestArtist)).append("\n");
|
sb.append(StringUtils.repeat("-", 27 + longestSong + longestArtist)).append("\n");
|
||||||
|
|
||||||
for(GuildSong gs : gsList) {
|
for(GuildSong gs : gsList) {
|
||||||
sb.append(String.format(fmt, ++count, gs.getSong().getTitle(), gs.getSong().getArtist(), gs.getUuid()));
|
String msg = String.format(fmt, ++count, gs.getSong().getTitle(), gs.getSong().getArtist(), gs.getUuid());
|
||||||
|
if (sb.length() + msg.length() > 2000) {
|
||||||
|
sb.append("```");
|
||||||
|
event.getChannel().sendMessage(sb.toString()).complete();
|
||||||
|
sb = new StringBuilder("```");
|
||||||
|
} else {
|
||||||
|
sb.append(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sb.append("```");
|
sb.append("```");
|
||||||
event.getChannel().sendMessage(sb.toString()).queue();
|
event.getChannel().sendMessage(sb.toString()).queue();
|
||||||
@@ -365,9 +374,10 @@ public class GuildMusicHandler {
|
|||||||
case "list":
|
case "list":
|
||||||
listAllPlaylists(event);
|
listAllPlaylists(event);
|
||||||
return;
|
return;
|
||||||
|
case "delete":
|
||||||
|
deleteUserPlayList(event, commands);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(GuildMessageReceivedEvent event, List<String> commands) {
|
public void delete(GuildMessageReceivedEvent event, List<String> commands) {
|
||||||
@@ -554,7 +564,7 @@ public class GuildMusicHandler {
|
|||||||
|
|
||||||
String playlist = commands.remove(0);
|
String playlist = commands.remove(0);
|
||||||
|
|
||||||
GuildPlaylist gpl = guildSongRepoService.getGuildPlaylistRepo().findGuildUserPlaylistFetchSongs(event.getGuild().getIdLong(), event.getMember().getIdLong(), playlist);
|
GuildPlaylist gpl = guildSongRepoService.getGuildPlaylistRepo().findByGuildUserPlaylistFetchSongs(event.getGuild().getIdLong(), event.getMember().getIdLong(), playlist);
|
||||||
if (gpl == null) {
|
if (gpl == null) {
|
||||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " you have no defined playlists on this server by the name of " + playlist).queue();
|
event.getChannel().sendMessage(event.getMember().getAsMention() + " you have no defined playlists on this server by the name of " + playlist).queue();
|
||||||
return;
|
return;
|
||||||
@@ -631,19 +641,27 @@ public class GuildMusicHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int longestPlaylist = 10;
|
int longestPlaylist = 10;
|
||||||
|
int longestUserName = 10;
|
||||||
|
Map<Long, String> userMap = new HashMap<>();
|
||||||
for(GuildPlaylist gpl : userPlaylist) {
|
for(GuildPlaylist gpl : userPlaylist) {
|
||||||
if (gpl.getPlaylist().length() > longestPlaylist) longestPlaylist = gpl.getPlaylist().length();
|
if (gpl.getPlaylist().length() > longestPlaylist) longestPlaylist = gpl.getPlaylist().length();
|
||||||
|
|
||||||
|
Member m = event.getGuild().getMemberById(gpl.getUserId());
|
||||||
|
if (m == null) continue;
|
||||||
|
|
||||||
|
if (m.getUser().getAsTag().length() > longestUserName) longestUserName = m.getUser().getAsTag().length();
|
||||||
|
userMap.put(gpl.getUserId(), m.getUser().getAsTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
String fmt = "%6s | %-" + longestPlaylist +"s | %s%n";
|
String fmt = "%6s | %-" + longestPlaylist +"s | %-" + longestUserName + "s | %s%n";
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder("```");
|
StringBuilder sb = new StringBuilder("```");
|
||||||
sb.append(String.format(fmt, "", "Playlist", "Song Count"));
|
sb.append(String.format(fmt, "", "Playlist", "User", "Song Count"));
|
||||||
sb.append(StringUtils.repeat("-", 24 + longestPlaylist)).append("\n");
|
sb.append(StringUtils.repeat("-", 24 + longestPlaylist + longestUserName)).append("\n");
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for(GuildPlaylist gpl : userPlaylist) {
|
for(GuildPlaylist gpl : userPlaylist) {
|
||||||
sb.append(String.format(fmt, ++count, gpl.getPlaylist(), gpl.getGuildPlaylistSongList().size()));
|
sb.append(String.format(fmt, ++count, gpl.getPlaylist(), userMap.get(gpl.getUserId()), gpl.getGuildPlaylistSongList().size()));
|
||||||
}
|
}
|
||||||
sb.append("```");
|
sb.append("```");
|
||||||
event.getChannel().sendMessage("**Playlists for " + event.getGuild().getName() + "**").queue((succcess)->
|
event.getChannel().sendMessage("**Playlists for " + event.getGuild().getName() + "**").queue((succcess)->
|
||||||
@@ -651,7 +669,44 @@ public class GuildMusicHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void deleteUserPlayList(GuildMessageReceivedEvent event, List<String> commands) {
|
private void deleteUserPlayList(GuildMessageReceivedEvent event, List<String> commands) {
|
||||||
Guild guild = event.getGuild();
|
if (!checkCommands(event, commands, 2, "Must provide playlist and user's tag (in that order)")) return;
|
||||||
|
|
||||||
|
String playlist = commands.remove(0);
|
||||||
|
String userTag = commands.remove(0);
|
||||||
|
|
||||||
|
Member m = event.getGuild().getMemberByTag(userTag);
|
||||||
|
if (m == null) {
|
||||||
|
sendMessage(event, String.format("Unable to find user with tag %s", userTag));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GuildPlaylist gpl = guildSongRepoService.getGuildPlaylistRepo().findByGuildAndUserIdAndPlaylist(event.getGuild().getIdLong(), m.getIdLong(), playlist);
|
||||||
|
if (gpl == null) {
|
||||||
|
sendMessage(event, String.format("Unable to find play list %s for user %s", playlist, userTag));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
long userId = event.getMember().getIdLong();
|
||||||
|
|
||||||
|
MessageEmbed embed = new EmbedBuilder()
|
||||||
|
.setColor(Color.RED)
|
||||||
|
.setTitle("Delete Playlist " + playlist)
|
||||||
|
.setDescription("Are you sure you want to delete the playlist " + playlist)
|
||||||
|
.setTimestamp(OffsetDateTime.now())
|
||||||
|
.setFooter(event.getGuild().getSelfMember().getEffectiveName(), event.getGuild().getSelfMember().getUser().getAvatarUrl())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
event.getChannel().sendMessage(embed).queue((msg) -> {
|
||||||
|
|
||||||
|
ReactionListener<String> handler = new ReactionListener<>(userId, msg.getId());
|
||||||
|
handler.setExpiresIn(TimeUnit.MINUTES, 1);
|
||||||
|
handler.registerReaction(Reactions.CHECK_MARK_BUTTON, (ret) -> deletePlayListConfirm(gpl, event.getMember().getAsMention(), msg));
|
||||||
|
handler.registerReaction(Reactions.CROSS_MARK_BUTTON, (ret) -> deleteMessage(msg));
|
||||||
|
|
||||||
|
reactionHandler.addReactionListener(guildId, msg, handler);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -878,13 +933,21 @@ public class GuildMusicHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkCommands(GuildMessageReceivedEvent event, List<String> commands, String msg) {
|
private boolean checkCommands(GuildMessageReceivedEvent event, List<String> commands, String msg) {
|
||||||
if (commands == null || commands.isEmpty()) {
|
return checkCommands(event, commands, 0, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkCommands(GuildMessageReceivedEvent event, List<String> commands, int minParams, String msg) {
|
||||||
|
if (commands == null || commands.isEmpty() || commands.size() < minParams) {
|
||||||
event.getChannel().sendMessage(msg).queue();
|
event.getChannel().sendMessage(msg).queue();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendMessage(GuildMessageReceivedEvent event, String msg) {
|
||||||
|
event.getChannel().sendMessage(msg).queue();
|
||||||
|
}
|
||||||
|
|
||||||
private void deleteMessage(Message msg) {
|
private void deleteMessage(Message msg) {
|
||||||
try {
|
try {
|
||||||
msg.delete().complete();
|
msg.delete().complete();
|
||||||
|
|||||||
Reference in new issue
Block a user