From 53417bd700a5e17c1704a8cf6f9b63892f77e101 Mon Sep 17 00:00:00 2001 From: SebClem Date: Sat, 1 Apr 2023 18:49:43 +0200 Subject: [PATCH] All easyfix done --- .../Broken/Api/Security/SecurityConfig.java | 55 ++++---- .../Broken/Audio/GuildAudioBotService.java | 118 ++++++++-------- src/main/java/net/Broken/BotListener.java | 38 ++--- .../net/Broken/Commands/ChannelsReview.java | 132 ------------------ .../java/net/Broken/Commands/Ordre66.java | 39 ------ .../java/net/Broken/Commands/ReportUsers.java | 69 --------- .../java/net/Broken/SlashCommands/Music.java | 16 +-- .../net/Broken/Tools/AutoVoiceChannel.java | 25 ++-- .../Broken/Tools/UserManager/UserUtils.java | 26 ---- 9 files changed, 123 insertions(+), 395 deletions(-) delete mode 100644 src/main/java/net/Broken/Commands/ChannelsReview.java delete mode 100644 src/main/java/net/Broken/Commands/Ordre66.java delete mode 100644 src/main/java/net/Broken/Commands/ReportUsers.java delete mode 100644 src/main/java/net/Broken/Tools/UserManager/UserUtils.java diff --git a/src/main/java/net/Broken/Api/Security/SecurityConfig.java b/src/main/java/net/Broken/Api/Security/SecurityConfig.java index b2c0448..5710b0c 100644 --- a/src/main/java/net/Broken/Api/Security/SecurityConfig.java +++ b/src/main/java/net/Broken/Api/Security/SecurityConfig.java @@ -1,51 +1,46 @@ package net.Broken.Api.Security; +import static org.springframework.security.config.Customizer.withDefaults; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + import net.Broken.Api.Security.Components.UnauthorizedHandler; import net.Broken.Api.Security.Filters.JwtFilter; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; @EnableWebSecurity @Configuration -public class SecurityConfig extends WebSecurityConfigurerAdapter { +public class SecurityConfig { private final UnauthorizedHandler unauthorizedHandler; public SecurityConfig(UnauthorizedHandler unauthorizedHandler) { this.unauthorizedHandler = unauthorizedHandler; } - @Override - protected void configure(HttpSecurity http) throws Exception { - http.cors().and().csrf().disable() - .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() - .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() - .authorizeRequests() - .antMatchers("/api/v2/auth/**").permitAll() - .antMatchers("/api/v2/guild/inviteLink").permitAll() - .antMatchers("/swagger-ui/**").permitAll() - .antMatchers("/swagger-ui.html").permitAll() - .antMatchers("/v3/api-docs/**").permitAll() - .antMatchers("/actuator/**").permitAll() - .anyRequest().authenticated(); + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http.cors(withDefaults()).csrf(csrf-> csrf.disable()) + .exceptionHandling(handling -> handling.authenticationEntryPoint(unauthorizedHandler)) + .sessionManagement(management -> management.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .authorizeHttpRequests(requests -> requests + .antMatchers("/api/v2/auth/**").permitAll() + .antMatchers("/api/v2/guild/inviteLink").permitAll() + .antMatchers("/swagger-ui/**").permitAll() + .antMatchers("/swagger-ui.html").permitAll() + .antMatchers("/v3/api-docs/**").permitAll() + .antMatchers("/actuator/**").permitAll() + .anyRequest().authenticated()); http.addFilterBefore(jwtFilter(), UsernamePasswordAuthenticationFilter.class); - + return http.build(); } @Bean public JwtFilter jwtFilter(){ return new JwtFilter(); } - - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } } diff --git a/src/main/java/net/Broken/Audio/GuildAudioBotService.java b/src/main/java/net/Broken/Audio/GuildAudioBotService.java index b9cbbd4..fc0f9d2 100644 --- a/src/main/java/net/Broken/Audio/GuildAudioBotService.java +++ b/src/main/java/net/Broken/Audio/GuildAudioBotService.java @@ -24,17 +24,19 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; import net.Broken.Tools.EmbedMessageUtils; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.MessageBuilder; -import net.dv8tion.jda.api.entities.Emoji; 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.User; -import net.dv8tion.jda.api.entities.VoiceChannel; -import net.dv8tion.jda.api.events.interaction.GenericInteractionCreateEvent; -import net.dv8tion.jda.api.events.interaction.SlashCommandEvent; +import net.dv8tion.jda.api.entities.channel.middleman.AudioChannel; +import net.dv8tion.jda.api.entities.channel.unions.AudioChannelUnion; +import net.dv8tion.jda.api.entities.emoji.Emoji; +import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; +import net.dv8tion.jda.api.interactions.InteractionHook; import net.dv8tion.jda.api.interactions.components.ActionRow; -import net.dv8tion.jda.api.interactions.components.Button; +import net.dv8tion.jda.api.interactions.components.buttons.Button; +import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder; +import net.dv8tion.jda.api.utils.messages.MessageCreateData; public class GuildAudioBotService { @@ -47,7 +49,7 @@ public class GuildAudioBotService { /** * Extrem limit for playlist */ - private final int listExtremLimit = 300; + private static final int LIST_EXTREM_LIMIT = 300; private final Guild guild; private final Logger logger = LogManager.getLogger(); @@ -66,9 +68,7 @@ public class GuildAudioBotService { } public static GuildAudioBotService getInstance(Guild guild) { - if (!INSTANCES.containsKey(guild)) { - INSTANCES.put(guild, new GuildAudioBotService(guild)); - } + INSTANCES.computeIfAbsent(guild, k -> new GuildAudioBotService(guild)); return INSTANCES.get(guild); } @@ -80,13 +80,13 @@ public class GuildAudioBotService { * @param playlistLimit Limit of playlist * @param onHead True for adding audio track on top of playlist */ - public void loadAndPlay(SlashCommandEvent event, VoiceChannel voiceChannel, final String trackUrl, int playlistLimit, boolean onHead) { + public void loadAndPlay(SlashCommandInteractionEvent event, AudioChannel voiceChannel, final String trackUrl, int playlistLimit, boolean onHead) { audioPlayerManager.loadItemOrdered(guildAudioManager, trackUrl, new AudioLoadResultHandler() { @Override public void trackLoaded(AudioTrack track) { - logger.info("[" + guild + "] Single Track detected!"); + logger.info("[{}] Single Track detected!", guild.getName()); UserAudioTrack uat = new UserAudioTrack(event.getUser(), track); - Message message = new MessageBuilder() + MessageCreateData message = new MessageCreateBuilder() .setEmbeds(EmbedMessageUtils.getMusicAdded(track.getInfo(), event.getMember(), -1)) .build(); clearLastButton(); @@ -96,10 +96,10 @@ public class GuildAudioBotService { @Override public void playlistLoaded(AudioPlaylist playlist) { - logger.info("[" + guild + "] Playlist detected! Limit: " + playlistLimit); + logger.info("[{}] Playlist detected! Limit: {}", guild, playlistLimit); AudioTrack firstTrack = playlist.getSelectedTrack(); int size = Math.min(playlist.getTracks().size(), playlistLimit); - Message message = new MessageBuilder() + MessageCreateData message = new MessageCreateBuilder() .setEmbeds(EmbedMessageUtils.getMusicAdded(firstTrack.getInfo(), event.getMember(), size)) .build(); clearLastButton(); @@ -109,16 +109,16 @@ public class GuildAudioBotService { @Override public void noMatches() { - logger.warn("[" + guild + "] Cant find media!"); - Message message = new MessageBuilder().setEmbeds(EmbedMessageUtils.getMusicError("Video not found !")).build(); + logger.warn("[{}] Cant find media!", guild); + MessageCreateData message = new MessageCreateBuilder().setEmbeds(EmbedMessageUtils.getMusicError("Video not found !")).build(); event.getHook().setEphemeral(true).sendMessage(message).queue(); } @Override public void loadFailed(FriendlyException exception) { - logger.error("[" + guild + "] Can't load media!"); + logger.error("[{}] Can't load media!", guild); logger.error(exception.getMessage()); - Message message = new MessageBuilder().setEmbeds(EmbedMessageUtils.getMusicError("Playback error !")).build(); + MessageCreateData message = new MessageCreateBuilder().setEmbeds(EmbedMessageUtils.getMusicError("Playback error !")).build(); event.getHook().setEphemeral(true).sendMessage(message).queue(); } }); @@ -126,12 +126,12 @@ public class GuildAudioBotService { public boolean loadAndPlaySync(String trackUrl, String userId) throws ExecutionException, InterruptedException { Member member = guild.getMemberById(userId); - VoiceChannel playedChanel = guild.getAudioManager().getConnectedChannel(); + AudioChannelUnion playedChanel = guild.getAudioManager().getConnectedChannel(); final String uuid = UUID.randomUUID().toString(); Future future = audioPlayerManager.loadItemOrdered(guildAudioManager, trackUrl, new AudioLoadResultHandler() { @Override public void trackLoaded(AudioTrack track) { - logger.info("[" + guild + "] Auto add " + track.getInfo().title + " to playlist."); + logger.info("[{}] Auto add {} to playlist.", guild, track.getInfo().title); UserAudioTrack userAudioTrack = new UserAudioTrack(member.getUser(), track); play(guild, playedChanel, guildAudioManager, userAudioTrack, true); addStatus.put(uuid, true); @@ -140,7 +140,7 @@ public class GuildAudioBotService { @Override public void playlistLoaded(AudioPlaylist playlist) { AudioTrack track = playlist.getTracks().get(0); - logger.info("[" + guild + "] Auto add " + track.getInfo().title + " to playlist."); + logger.info("[{}] Auto add {} to playlist.", guild, track.getInfo().title); UserAudioTrack userAudioTrack = new UserAudioTrack(member.getUser(), track); play(guild, playedChanel, guildAudioManager, userAudioTrack, true); addStatus.put(uuid, true); @@ -148,13 +148,13 @@ public class GuildAudioBotService { @Override public void noMatches() { - logger.warn("[" + guild + "] Track not found: " + trackUrl); + logger.warn("[{}] Track not found: {}", guild, trackUrl); addStatus.put(uuid, false); } @Override public void loadFailed(FriendlyException exception) { - logger.error("[" + guild + "] Cant load media!"); + logger.error("[{}] Cant load media!", guild); logger.error(exception.getMessage()); addStatus.put(uuid, false); } @@ -174,7 +174,7 @@ public class GuildAudioBotService { */ public void playListLoader(AudioPlaylist playlist, int playlistLimit, User user, boolean onHead) { - VoiceChannel playedChanel = guild.getAudioManager().getConnectedChannel(); + AudioChannelUnion playedChanel = guild.getAudioManager().getConnectedChannel(); List tracks = playlist.getTracks(); if (onHead) Collections.reverse(tracks); @@ -183,7 +183,7 @@ public class GuildAudioBotService { for (AudioTrack track : playlist.getTracks()) { UserAudioTrack uat = new UserAudioTrack(user, track); play(guild, playedChanel, guildAudioManager, uat, onHead); - if ((playlistLimit != -1 && i >= playlistLimit) || i > listExtremLimit) + if ((playlistLimit != -1 && i >= playlistLimit) || i > LIST_EXTREM_LIMIT) break; i++; } @@ -199,7 +199,7 @@ public class GuildAudioBotService { * @param track Track to add to playlist * @param onHead True for adding audio track on top of playlist */ - public void play(Guild guild, VoiceChannel channel, GuildAudioManager musicManager, UserAudioTrack track, boolean onHead) { + public void play(Guild guild, AudioChannel channel, GuildAudioManager musicManager, UserAudioTrack track, boolean onHead) { if (!guild.getAudioManager().isConnected()) guild.getAudioManager().openAudioConnection(channel); if (!onHead) @@ -208,39 +208,39 @@ public class GuildAudioBotService { musicManager.scheduler.addNext(track); } - public void add(SlashCommandEvent event, String url, int playListLimit, boolean onHead) { + public void add(SlashCommandInteractionEvent event, String url, int playListLimit, boolean onHead) { if (guild.getAudioManager().isConnected()) { loadAndPlay(event, guild.getAudioManager().getConnectedChannel(), url, playListLimit, onHead); } else { - Message message = new MessageBuilder().setEmbeds(EmbedMessageUtils.getMusicError("Not connected to vocal chanel !")).build(); + MessageCreateData message = new MessageCreateBuilder().setEmbeds(EmbedMessageUtils.getMusicError("Not connected to vocal chanel !")).build(); event.getHook().setEphemeral(true).sendMessage(message).queue(); } } - public void connect(VoiceChannel voiceChannel) { + public void connect(AudioChannel voiceChannel) { guild.getAudioManager().openAudioConnection(voiceChannel); } - public void pause(GenericInteractionCreateEvent event) { + public void pause(InteractionHook hook) { pause(); - Message message = new MessageBuilder().setEmbeds( + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":pause_button: Playback paused") .setColor(Color.green) )).build(); clearLastButton(); - lastMessageWithButton = event.getHook().sendMessage(message).addActionRow(getActionButton()).complete(); + lastMessageWithButton = hook.sendMessage(message).addActionRow(getActionButton()).complete(); } public void pause() { guildAudioManager.scheduler.pause(); } - public void resume(GenericInteractionCreateEvent event) { - Message message; + public void resume(InteractionHook hook) { + MessageCreateData message; if (guildAudioManager.player.getPlayingTrack() == null) { - message = new MessageBuilder().setEmbeds( + message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":warning: Nothing to play, playlist is empty !") @@ -248,7 +248,7 @@ public class GuildAudioBotService { )).build(); } else { resume(); - message = new MessageBuilder().setEmbeds( + message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":arrow_forward: Playback resumed") @@ -256,39 +256,39 @@ public class GuildAudioBotService { )).build(); } clearLastButton(); - lastMessageWithButton = event.getHook().sendMessage(message).addActionRow(getActionButton()).complete(); + lastMessageWithButton = hook.sendMessage(message).addActionRow(getActionButton()).complete(); } public void resume() { guildAudioManager.scheduler.resume(); } - public void skipTrack(GenericInteractionCreateEvent event) { + public void skipTrack(InteractionHook hook) { skipTrack(); - Message message = new MessageBuilder().setEmbeds( + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":track_next: Next Track") .setColor(Color.green) )).build(); clearLastButton(); - lastMessageWithButton = event.getHook().sendMessage(message).addActionRow(getActionButton()).complete(); + lastMessageWithButton = hook.sendMessage(message).addActionRow(getActionButton()).complete(); } public void skipTrack() { guildAudioManager.scheduler.nextTrack(); } - public void stop(GenericInteractionCreateEvent event) { + public void stop(InteractionHook hook) { stop(); - Message message = new MessageBuilder().setEmbeds( + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":stop_button: Playback stopped") .setColor(Color.green) )).build(); clearLastButton(); - lastMessageWithButton = event.getHook().sendMessage(message).addActionRow(getActionButton()).complete(); + lastMessageWithButton = hook.sendMessage(message).addActionRow(getActionButton()).complete(); } @@ -298,16 +298,16 @@ public class GuildAudioBotService { clearLastButton(); } - public void disconnect(GenericInteractionCreateEvent event) { + public void disconnect(InteractionHook hook) { disconnect(); - Message message = new MessageBuilder().setEmbeds( + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":eject: Disconnected") .setColor(Color.green) )).build(); clearLastButton(); - event.getHook().sendMessage(message).queue(); + hook.sendMessage(message).queue(); } public void disconnect() { @@ -316,24 +316,24 @@ public class GuildAudioBotService { guild.getAudioManager().closeAudioConnection(); clearLastButton(); } - public void info(GenericInteractionCreateEvent event) { + public void info(InteractionHook hook) { AudioTrackInfo info = guildAudioManager.scheduler.getInfo(); UserAudioTrack userAudioTrack = guildAudioManager.scheduler.getCurrentPlayingTrack(); - Message message = new MessageBuilder().setEmbeds(EmbedMessageUtils.getMusicInfo(info, userAudioTrack)).build(); + MessageCreateData message = new MessageCreateBuilder().setEmbeds(EmbedMessageUtils.getMusicInfo(info, userAudioTrack)).build(); clearLastButton(); - lastMessageWithButton = event.getHook().sendMessage(message).addActionRow(getActionButton()).complete(); + lastMessageWithButton = hook.sendMessage(message).addActionRow(getActionButton()).complete(); } - public void flush(GenericInteractionCreateEvent event) { + public void flush(InteractionHook hook) { guildAudioManager.scheduler.flush(); - Message message = new MessageBuilder().setEmbeds( + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":wastebasket: Playlist flushed") .setColor(Color.green) )).build(); clearLastButton(); - lastMessageWithButton = event.getHook().sendMessage(message).addActionRow(getActionButton()).complete(); + lastMessageWithButton = hook.sendMessage(message).addActionRow(getActionButton()).complete(); } /** @@ -341,18 +341,18 @@ public class GuildAudioBotService { * * @param event */ - public void list(GenericInteractionCreateEvent event) { + public void list(InteractionHook hook) { List list = guildAudioManager.scheduler.getList(); - if (list.size() == 0) { - Message message = new MessageBuilder().setEmbeds( + if (list.isEmpty()) { + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":scroll: Playlist") .setColor(Color.green) .setDescription("Oh no ! The playlist is empty !") )).build(); - event.getHook().sendMessage(message).queue(); + hook.sendMessage(message).queue(); } else { StringBuilder resp = new StringBuilder(); int i = 0; @@ -370,14 +370,14 @@ public class GuildAudioBotService { } i++; } - Message message = new MessageBuilder().setEmbeds( + MessageCreateData message = new MessageCreateBuilder().setEmbeds( EmbedMessageUtils.buildStandar( new EmbedBuilder() .setTitle(":scroll: Playlist") .setColor(Color.green) .setDescription(resp.toString()) )).build(); - event.getHook().sendMessage(message).queue(); + hook.sendMessage(message).queue(); } } diff --git a/src/main/java/net/Broken/BotListener.java b/src/main/java/net/Broken/BotListener.java index a358336..9b156f8 100644 --- a/src/main/java/net/Broken/BotListener.java +++ b/src/main/java/net/Broken/BotListener.java @@ -1,5 +1,13 @@ package net.Broken; +import java.awt.Color; +import java.util.HashMap; +import java.util.Optional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.context.ApplicationContext; + import net.Broken.Audio.GuildAudioBotService; import net.Broken.DB.Entity.GuildPreferenceEntity; import net.Broken.DB.Repository.GuildPreferenceRepository; @@ -7,12 +15,13 @@ import net.Broken.Tools.AutoVoiceChannel; import net.Broken.Tools.EmbedMessageUtils; import net.Broken.Tools.UserManager.Stats.UserStatsUtils; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.*; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildJoinEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleRemoveEvent; -import net.dv8tion.jda.api.events.guild.voice.GenericGuildVoiceEvent; import net.dv8tion.jda.api.events.guild.voice.GuildVoiceUpdateEvent; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; @@ -22,15 +31,6 @@ import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder; import net.dv8tion.jda.api.utils.messages.MessageCreateData; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; -import org.springframework.context.ApplicationContext; - -import java.awt.*; -import java.util.HashMap; -import java.util.Optional; - /** * Bot Listener */ @@ -57,9 +57,9 @@ public class BotListener extends ListenerAdapter { if (guildPref.isDefaultRole()) { logger.info("[{}] : {} join the guild, adding default role !", event.getGuild().getName(), event.getUser().getName()); - Role default_role = event.getGuild().getRoleById(guildPref.getDefaultRoleId()); - if (default_role != null) { - event.getGuild().addRoleToMember(event.getMember(), default_role).queue(); + Role defaultRole = event.getGuild().getRoleById(guildPref.getDefaultRoleId()); + if (defaultRole != null) { + event.getGuild().addRoleToMember(event.getMember(), defaultRole).queue(); } else { logger.fatal("[{}] : Default role is null !", event.getGuild().getName()); } @@ -144,11 +144,11 @@ public class BotListener extends ListenerAdapter { event.deferReply().queue(); GuildAudioBotService guildAudioBotService = GuildAudioBotService.getInstance(event.getGuild()); switch (event.getComponentId()) { - case "pause" -> guildAudioBotService.pause(event); - case "play" -> guildAudioBotService.resume(event); - case "next" -> guildAudioBotService.skipTrack(event); - case "stop" -> guildAudioBotService.stop(event); - case "disconnect" -> guildAudioBotService.disconnect(event); + case "pause" -> guildAudioBotService.pause(event.getHook()); + case "play" -> guildAudioBotService.resume(event.getHook()); + case "next" -> guildAudioBotService.skipTrack(event.getHook()); + case "stop" -> guildAudioBotService.stop(event.getHook()); + case "disconnect" -> guildAudioBotService.disconnect(event.getHook()); } } diff --git a/src/main/java/net/Broken/Commands/ChannelsReview.java b/src/main/java/net/Broken/Commands/ChannelsReview.java deleted file mode 100644 index 46b1db6..0000000 --- a/src/main/java/net/Broken/Commands/ChannelsReview.java +++ /dev/null @@ -1,132 +0,0 @@ -package net.Broken.Commands; - -import net.Broken.Commande; -import net.Broken.Tools.EmbedMessageUtils; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.TextChannel; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.HashMap; -import java.util.Locale; - -public class ChannelsReview implements Commande { - final Logger logger = LogManager.getLogger(); - - @Override - public void action(String[] args, MessageReceivedEvent event) { - DateFormat format = new SimpleDateFormat("dd.MM.yyyy"); - event.getTextChannel().sendMessage("Number of channels found in total : " + event.getGuild().getTextChannels().size()).queue(); - if (args.length >= 1) { - try { - SendBackBefore(format.parse(args[0]), event, format); - } catch (ParseException e) { - logger.warn("Can't parse date : " + e.getMessage()); - } - } else { - SendBack(event); - } - } - - - private void SendBackBefore(Date beforeDate, MessageReceivedEvent event, DateFormat format) { - HashMap result = new HashMap<>(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy").withLocale(Locale.ENGLISH); - int charCtl = 0; - for (TextChannel textChannel : event.getGuild().getTextChannels()) { - if (textChannel.hasLatestMessage()) { - String lastMessageId = textChannel.getLatestMessageId(); - try { - Message lastMessage = textChannel.retrieveMessageById(lastMessageId).complete(); - if (beforeDate.compareTo(format.parse(lastMessage.getTimeCreated().format(formatter))) > 0) { - logger.debug("Last message in channel " + textChannel + " is " + lastMessageId); - String date = lastMessage.getTimeCreated().format(formatter); - charCtl += textChannel.getName().length() + date.length(); - result.put(textChannel.getName(), date); - } - } catch (RuntimeException | ParseException e) { - logger.warn("Can't find message with id: " + lastMessageId); - result.put(textChannel.getName(), "ERROR"); - charCtl += textChannel.getName().length() + 5; - } - - } else { - result.put(textChannel.getName(), "No message or access denied."); - charCtl += textChannel.getName().length() + 30; - } - if (charCtl > 3000) { - event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).complete(); - result = new HashMap<>(); - charCtl = 0; - } - } - if (charCtl != 0) - event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); - } - - private void SendBack(MessageReceivedEvent event) { - HashMap result = new HashMap<>(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy").withLocale(Locale.ENGLISH); - int charCtl = 0; - for (TextChannel textChannel : event.getGuild().getTextChannels()) { - if (textChannel.hasLatestMessage()) { - String lastMessageId = textChannel.getLatestMessageId(); - logger.debug("Last message in channel " + textChannel + " is " + lastMessageId); - - try { - Message lastMessage = textChannel.retrieveMessageById(lastMessageId).complete(); - String date = lastMessage.getTimeCreated().format(formatter); - charCtl += textChannel.getName().length() + date.length(); - result.put(textChannel.getName(), date); - } catch (RuntimeException e) { - logger.warn("Can't find message with id: " + lastMessageId); - result.put(textChannel.getName(), "ERROR"); - charCtl += textChannel.getName().length() + 5; - } - - } else { - result.put(textChannel.getName(), "No message or access denied."); - charCtl += textChannel.getName().length() + 30; - } - if (charCtl > 3000) { - event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); - event.getTextChannel().sendTyping().queue(); - result = new HashMap<>(); - charCtl = 0; - } - } - if (charCtl != 0) - event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); - } - - @Override - public boolean isPrivateUsable() { - return false; - } - - @Override - public boolean isAdminCmd() { - return true; - } - - /** - * Determines if the command is usable only by bot level admin user - * - * @return boolean - */ - @Override - public boolean isBotAdminCmd() { - return false; - } - - @Override - public boolean isNSFW() { - return false; - } -} diff --git a/src/main/java/net/Broken/Commands/Ordre66.java b/src/main/java/net/Broken/Commands/Ordre66.java deleted file mode 100644 index 25cdd73..0000000 --- a/src/main/java/net/Broken/Commands/Ordre66.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.Broken.Commands; - -import net.Broken.Commande; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; - -public class Ordre66 implements Commande { - - @Override - public void action(String[] args, MessageReceivedEvent event) { - Message rest = event.getTextChannel().sendMessage("Très bien maître " + event.getAuthor().getAsMention() + ". J'arrive ! ").complete(); - Message reste = event.getTextChannel().sendMessage("https://media2.giphy.com/media/UfzTayIyH7g5hk2BA2/giphy.gif\n").complete(); - } - - @Override - public boolean isPrivateUsable() { - return true; - } - - @Override - public boolean isAdminCmd() { - return true; - } - - /** - * Determines if the command is usable only by bot level admin user - * - * @return boolean - */ - @Override - public boolean isBotAdminCmd() { - return false; - } - - @Override - public boolean isNSFW() { - return false; - } -} diff --git a/src/main/java/net/Broken/Commands/ReportUsers.java b/src/main/java/net/Broken/Commands/ReportUsers.java deleted file mode 100644 index ccb9f09..0000000 --- a/src/main/java/net/Broken/Commands/ReportUsers.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.Broken.Commands; - -import net.Broken.Commande; -import net.Broken.Tools.EmbedMessageUtils; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; -import net.dv8tion.jda.api.requests.RestAction; - -import java.util.Objects; - - -public class ReportUsers implements Commande { - - @Override - public void action(String[] args, MessageReceivedEvent event) { - - event.getGuild().loadMembers().onSuccess(members -> { - if (event.getMessage().getMentionedRoles().size() == 1 && args.length == 1) { - RestAction restAction = null; - for (Member member : members) { - if (member.getRoles().size() == 1) { //check if the member has a role - if (member.getRoles().contains(event.getMessage().getMentionedRoles().get(0))) { //check if the mentioned role is the same as the member's role - restAction = Objects.requireNonNullElseGet(restAction, () -> event.getTextChannel().sendMessage("List des membres : ")) - .and(event.getTextChannel().sendMessage(member.getEffectiveName())); - } - } - } - if (restAction != null) - restAction.queue(); - } else if (args.length == 0) { - - for (Member member : members) { - if (member.getRoles().size() == 0) { - event.getTextChannel().sendMessage(member.getEffectiveName()).complete(); - } - } - } else { - event.getTextChannel().sendMessage(EmbedMessageUtils.getReportUsersError()).complete(); - } - }); - } - - @Override - public boolean isPrivateUsable() { - return false; - } - - @Override - public boolean isAdminCmd() { - return true; - } - - /** - * Determines if the command is usable only by bot level admin user - * - * @return boolean - */ - @Override - public boolean isBotAdminCmd() { - return false; - } - - @Override - public boolean isNSFW() { - return false; - } - - -} diff --git a/src/main/java/net/Broken/SlashCommands/Music.java b/src/main/java/net/Broken/SlashCommands/Music.java index 2bed92e..d28c714 100644 --- a/src/main/java/net/Broken/SlashCommands/Music.java +++ b/src/main/java/net/Broken/SlashCommands/Music.java @@ -11,8 +11,6 @@ import org.apache.logging.log4j.Logger; import net.Broken.SlashCommand; import net.Broken.Audio.GuildAudioBotService; import net.Broken.Tools.EmbedMessageUtils; -import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; import net.dv8tion.jda.api.entities.channel.unions.AudioChannelUnion; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.interactions.commands.OptionMapping; @@ -65,26 +63,26 @@ public class Music implements SlashCommand { } break; case "pause": - audio.pause(event); + audio.pause(event.getHook()); break; case "resume": - audio.resume(event); + audio.resume(event.getHook()); break; case "next": - audio.skipTrack(event); + audio.skipTrack(event.getHook()); break; case "stop": case "disconnect": - audio.stop(event); + audio.stop(event.getHook()); break; case "info": - audio.info(event); + audio.info(event.getHook()); break; case "flush": - audio.flush(event); + audio.flush(event.getHook()); break; case "list": - audio.list(event); + audio.list(event.getHook()); break; } } diff --git a/src/main/java/net/Broken/Tools/AutoVoiceChannel.java b/src/main/java/net/Broken/Tools/AutoVoiceChannel.java index 895b3ff..1b1f28a 100644 --- a/src/main/java/net/Broken/Tools/AutoVoiceChannel.java +++ b/src/main/java/net/Broken/Tools/AutoVoiceChannel.java @@ -1,20 +1,21 @@ package net.Broken.Tools; -import net.Broken.DB.Entity.GuildPreferenceEntity; -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; -import net.dv8tion.jda.api.requests.RestAction; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import static net.Broken.MainBot.jda; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import static net.Broken.MainBot.jda; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.Broken.DB.Entity.GuildPreferenceEntity; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.channel.middleman.AudioChannel; +import net.dv8tion.jda.api.requests.RestAction; public class AutoVoiceChannel { private static final HashMap INSTANCE_MAP = new HashMap<>(); @@ -34,14 +35,14 @@ public class AutoVoiceChannel { return INSTANCE_MAP.get(guild.getId()); } - public void join(VoiceChannel voiceChannel) { + public void join(AudioChannel voiceChannel) { Guild guild = jda.getGuildById(guildID); if (guild == null) return; GuildPreferenceEntity pref = SettingsUtils.getInstance().getPreference(guild); if (pref.isAutoVoice() && voiceChannel.getId().equals(pref.getAutoVoiceChannelID())) { logger.info("Creating new voice channel for Guild : {}", guild.getName()); - VoiceChannel newChannel = voiceChannel.createCopy().complete(); + AudioChannel newChannel = (AudioChannel) voiceChannel.createCopy().complete(); int next = getNextNumber(); String title = pref.getAutoVoiceChannelTitle(); if (title.isEmpty()) { @@ -56,7 +57,7 @@ public class AutoVoiceChannel { } - public void leave(VoiceChannel voiceChannel) { + public void leave(AudioChannel voiceChannel) { if (voiceChannel.getMembers().isEmpty()) { String id = voiceChannel.getId(); for (Map.Entry entry : createdChannels.entrySet()) { @@ -79,7 +80,7 @@ public class AutoVoiceChannel { return 999; } - private void moveMembers(List members, VoiceChannel destination) { + private void moveMembers(List members, AudioChannel destination) { logger.debug("Moving Members to new voice channel..."); RestAction restAction = null; for (Member member : members) { diff --git a/src/main/java/net/Broken/Tools/UserManager/UserUtils.java b/src/main/java/net/Broken/Tools/UserManager/UserUtils.java deleted file mode 100644 index 5be5c3f..0000000 --- a/src/main/java/net/Broken/Tools/UserManager/UserUtils.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.Broken.Tools.UserManager; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class UserUtils { - - private static final UserUtils INSTANCE = new UserUtils(); - private final Logger logger = LogManager.getLogger(); - - /** - * Private default constructor - */ - private UserUtils() { - } - - /** - * Singleton - * - * @return Unique UserUtils instance - */ - public static UserUtils getInstance() { - return INSTANCE; - } - -}