Added more functionality for admins

This commit is contained in:
Isaac Parenteau
2019-12-30 20:22:20 -06:00
parent 75c3892e61
commit fd3c942164
8 changed files with 268 additions and 10 deletions

View File

@@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.events.ExceptionEvent;
import net.dv8tion.jda.api.events.guild.GuildJoinEvent;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
@@ -51,7 +52,7 @@ import net.locusworks.discord.eighttrack.audio.Mp3UploadHandler;
import net.locusworks.discord.eighttrack.database.entities.DiscordGuild;
import net.locusworks.discord.eighttrack.services.ConfigurationService;
import net.locusworks.discord.eighttrack.services.GuildMusicService;
import net.locusworks.discord.eighttrack.services.GuildSongRepoService;
import net.locusworks.discord.eighttrack.services.RepositoryService;
import net.locusworks.logger.ApplicationLogger;
import net.locusworks.logger.ApplicationLoggerFactory;
@@ -69,7 +70,7 @@ public class DiscordEventHandler extends ListenerAdapter {
private Mp3UploadHandler uploadHandler;
@Autowired
private GuildSongRepoService guildSongRepoService;
private RepositoryService guildSongRepoService;
@Autowired
private ReactionHandler reactionHandler;
@@ -107,7 +108,10 @@ public class DiscordEventHandler extends ListenerAdapter {
try {
long guildId = event.getGuild().getIdLong();
DiscordGuild discordGuild = guildSongRepoService.getGuildRepo().findByGuildId(guildId);
if (discordGuild != null) return;
if (discordGuild != null) {
guildSongRepoService.logEntry(guildId, "Eight Track joined guild %s", discordGuild.getGuildName());
return;
}
logger.debug("Joining Server: " + event.getGuild().getName());
@@ -117,8 +121,12 @@ public class DiscordEventHandler extends ListenerAdapter {
discordGuild.setDateJoined(new Date());
guildSongRepoService.getGuildRepo().save(discordGuild);
guildSongRepoService.logEntry(guildId, "Eight Track joined guild %s", discordGuild.getGuildName());
} catch (Exception ex) {
logger.error("Unable to persist server information to database: " + ex.getMessage(), ex);
guildSongRepoService.logEntry(event.getGuild().getIdLong(), ex, "Unable to persist guild server info to database: %s", ex.getMessage());
}
}
@@ -128,9 +136,16 @@ public class DiscordEventHandler extends ListenerAdapter {
try {
onGuildMessageReceivedHelper(event);
} catch (Throwable t) {
guildSongRepoService.logEntry(event.getGuild().getIdLong(), t, "An error occured: %s", t.getMessage());
logger.error(t);
}
}
@Override
public void onException(ExceptionEvent event) {
logger.error("A general exception occured: " + event.getCause().getMessage());
logger.error(event.getCause());
}
private void onGuildMessageReceivedHelper(GuildMessageReceivedEvent event) throws Exception {

View File

@@ -71,7 +71,7 @@ import net.locusworks.discord.eighttrack.database.entities.GuildPlaylistSong;
import net.locusworks.discord.eighttrack.database.entities.GuildSong;
import net.locusworks.discord.eighttrack.database.entities.Song;
import net.locusworks.discord.eighttrack.listeners.ReactionListener;
import net.locusworks.discord.eighttrack.services.GuildSongRepoService;
import net.locusworks.discord.eighttrack.services.RepositoryService;
import net.locusworks.discord.eighttrack.utils.Reactions;
import net.locusworks.logger.ApplicationLogger;
import net.locusworks.logger.ApplicationLoggerFactory;
@@ -87,7 +87,7 @@ public class GuildMusicHandler {
private Consumer<Long> callback;
private Mp3UploadHandler uploadHandler;
private GuildSongRepoService guildSongRepoService;
private RepositoryService guildSongRepoService;
private ReactionHandler reactionHandler;
private long guildId;
@@ -95,7 +95,7 @@ public class GuildMusicHandler {
private TrackManager trackManager;
public GuildMusicHandler(Path musicDir, long guildId, Mp3UploadHandler uploadHandler, ReactionHandler reactionHandler, GuildSongRepoService guildSongRepoService) throws IOException {
public GuildMusicHandler(Path musicDir, long guildId, Mp3UploadHandler uploadHandler, ReactionHandler reactionHandler, RepositoryService guildSongRepoService) throws IOException {
this.logger = ApplicationLoggerFactory.getLogger(GuildMusicHandler.class);
this.playing = new AtomicBoolean(false);
this.musicDir = musicDir;
@@ -515,6 +515,10 @@ public class GuildMusicHandler {
builder.addField("ID", gs.getUuid(), true);
MessageEmbed embed = builder.build();
try {
guildSongRepoService.logEntry(event.getGuild().getIdLong(), "%s uploaded", result);
} catch (Exception ex) {}
return embed;
}
@@ -581,8 +585,7 @@ public class GuildMusicHandler {
}
sb.append("```");
event.getChannel().sendMessage("**" + "Current songs in playlists " + playlist + " for " + event.getMember().getAsMention() + "**").queue((succcess)->
event.getChannel().sendMessage(sb.toString()).queue()
);
event.getChannel().sendMessage(sb.toString()).queue());
}