diff --git a/src/main/java/net/Broken/Commande.java b/src/main/java/net/Broken/Commande.java index 1846c49..c2332da 100644 --- a/src/main/java/net/Broken/Commande.java +++ b/src/main/java/net/Broken/Commande.java @@ -9,31 +9,36 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; public interface Commande { /** * Main action of command - * @param args Command args. + * + * @param args Command args. * @param event Command MessageReceivedEvent */ void action(String[] args, MessageReceivedEvent event); /** * Determines if the command is usable whit private message + * * @return boolean */ boolean isPrivateUsable(); /** * Determines if the command is usable only by admin user + * * @return boolean */ boolean isAdminCmd(); /** * Determines if the command is usable only by bot level admin user + * * @return boolean */ boolean isBotAdminCmd(); /** * Determines if the command is only usable on NSFW channels + * * @return boolean */ boolean isNSFW(); diff --git a/src/main/java/net/Broken/Commands/Cat.java b/src/main/java/net/Broken/Commands/Cat.java index fca08d7..f8d3d71 100644 --- a/src/main/java/net/Broken/Commands/Cat.java +++ b/src/main/java/net/Broken/Commands/Cat.java @@ -20,8 +20,7 @@ public class Cat implements Commande { @Override public void action(String[] args, MessageReceivedEvent event) { - if(!event.isFromType(ChannelType.PRIVATE)) - { + if (!event.isFromType(ChannelType.PRIVATE)) { try { URL urlC = new URL("http://aws.random.cat/meow"); URLConnection yc = urlC.openConnection(); @@ -40,8 +39,7 @@ public class Cat implements Commande { } catch (IOException e) { e.printStackTrace(); } - } - else + } else event.getPrivateChannel().sendMessage("\n:warning: **__This command cannot be used there !__** :warning:").queue(); } diff --git a/src/main/java/net/Broken/Commands/ChannelsReview.java b/src/main/java/net/Broken/Commands/ChannelsReview.java index 9547442..b298c6a 100644 --- a/src/main/java/net/Broken/Commands/ChannelsReview.java +++ b/src/main/java/net/Broken/Commands/ChannelsReview.java @@ -3,7 +3,6 @@ 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.MessageHistory; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; @@ -24,20 +23,19 @@ public class ChannelsReview implements Commande { 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){ + if (args.length >= 1) { try { - SendBackBefore(format.parse(args[0]), event, format ); + SendBackBefore(format.parse(args[0]), event, format); } catch (ParseException e) { logger.warn("Can't parse date : " + e.getMessage()); } - } - else{ + } else { SendBack(event); } } - private void SendBackBefore(Date beforeDate,MessageReceivedEvent event,DateFormat format ){ + 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; @@ -46,7 +44,7 @@ public class ChannelsReview implements Commande { String lastMessageId = textChannel.getLatestMessageId(); try { Message lastMessage = textChannel.retrieveMessageById(lastMessageId).complete(); - if(beforeDate.compareTo(format.parse(lastMessage.getTimeCreated().format(formatter)))>0){ + if (beforeDate.compareTo(format.parse(lastMessage.getTimeCreated().format(formatter))) > 0) { logger.debug("Last message in channel " + textChannel.toString() + " is " + lastMessageId); String date = lastMessage.getTimeCreated().format(formatter); charCtl += textChannel.getName().length() + date.length(); @@ -72,7 +70,7 @@ public class ChannelsReview implements Commande { event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); } - private void SendBack(MessageReceivedEvent event){ + private void SendBack(MessageReceivedEvent event) { HashMap result = new HashMap<>(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy").withLocale(Locale.ENGLISH); int charCtl = 0; diff --git a/src/main/java/net/Broken/Commands/Code.java b/src/main/java/net/Broken/Commands/Code.java index 928b2db..ea798d1 100644 --- a/src/main/java/net/Broken/Commands/Code.java +++ b/src/main/java/net/Broken/Commands/Code.java @@ -3,32 +3,22 @@ package net.Broken.Commands; import groovy.lang.Binding; import groovy.lang.GroovyShell; import net.Broken.Commande; -import net.Broken.DB.Entity.UserEntity; -import net.Broken.DB.Repository.GuildPreferenceRepository; import net.Broken.DB.Repository.UserRepository; import net.Broken.SpringContext; -import net.Broken.Tools.EmbedMessageUtils; -import net.Broken.Tools.MessageTimeOut; -import net.Broken.Tools.PrivateMessage; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.ChannelType; -import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.context.ApplicationContext; import java.awt.*; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.List; public class Code implements Commande { private UserRepository userRepository; private Logger logger = LogManager.getLogger(); - public Code (){ + public Code() { ApplicationContext context = SpringContext.getAppContext(); userRepository = (UserRepository) context.getBean("userRepository"); } @@ -39,7 +29,7 @@ public class Code implements Commande { StringBuilder stringBuilder = new StringBuilder(); - for(String arg : args){ + for (String arg : args) { stringBuilder.append(arg); stringBuilder.append(" "); } @@ -48,27 +38,26 @@ public class Code implements Commande { binding.setVariable("event", event); GroovyShell shell = new GroovyShell(binding); EmbedBuilder builder; - try{ + try { Object value = shell.evaluate(stringBuilder.toString()); StringBuilder stringResult = new StringBuilder(); - if(value.getClass().isArray()){ + if (value.getClass().isArray()) { Object[] array = (Object[]) value; - for(Object obj : array){ - if(stringResult.length() < 1800){ + for (Object obj : array) { + if (stringResult.length() < 1800) { stringResult.append(obj.toString()).append("\n\n"); - } - else{ + } else { stringResult.append("\n..."); break; } } - }else{ + } else { stringResult.append(value.toString()); } builder = new EmbedBuilder().setColor(Color.orange).setTitle(":hammer_pick: Compilation Successful :hammer_pick:").setDescription("```java\n" + stringResult.toString() + "```"); - }catch (Exception ex){ + } catch (Exception ex) { builder = new EmbedBuilder().setColor(Color.red).setTitle(":x: Compilation Failed :x:").setDescription("```java\n" + ex.toString() + "```"); } diff --git a/src/main/java/net/Broken/Commands/DayTrigger.java b/src/main/java/net/Broken/Commands/DayTrigger.java index c62fb41..2991c57 100644 --- a/src/main/java/net/Broken/Commands/DayTrigger.java +++ b/src/main/java/net/Broken/Commands/DayTrigger.java @@ -10,12 +10,12 @@ import org.apache.logging.log4j.Logger; /** * Admin command to manually trigger daily action(s) */ -public class DayTrigger implements Commande{ +public class DayTrigger implements Commande { Logger logger = LogManager.getLogger(); @Override public void action(String[] args, MessageReceivedEvent event) { - if(!event.isFromType(ChannelType.PRIVATE)) + if (!event.isFromType(ChannelType.PRIVATE)) event.getMessage().delete().queue(); DayListener.getInstance().trigger(); diff --git a/src/main/java/net/Broken/Commands/Flush.java b/src/main/java/net/Broken/Commands/Flush.java index 5f6aa76..8efe6f1 100644 --- a/src/main/java/net/Broken/Commands/Flush.java +++ b/src/main/java/net/Broken/Commands/Flush.java @@ -3,49 +3,40 @@ package net.Broken.Commands; import net.Broken.Commande; import net.Broken.Tools.EmbedMessageUtils; import net.dv8tion.jda.api.Permission; -import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.MessageChannel; -import net.dv8tion.jda.api.entities.MessageHistory; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.util.List; - /** * Command to flush X last message on channel. */ -public class Flush implements Commande{ +public class Flush implements Commande { Logger logger = LogManager.getLogger(); @Override public void action(String[] args, MessageReceivedEvent event) { - if(args.length<1){ + if (args.length < 1) { event.getTextChannel().sendMessage(EmbedMessageUtils.getFlushError("Missing argument!")).queue(); - } - else - { - if(event.getMember().hasPermission(Permission.ADMINISTRATOR)){ + } else { + if (event.getMember().hasPermission(Permission.ADMINISTRATOR)) { try { int limit = Integer.parseInt(args[0]) + 1; MessageChannel chanel = event.getChannel(); chanel.getIterableHistory().takeAsync(limit).thenAccept(chanel::purgeMessages); - - }catch (NumberFormatException e){ + + } catch (NumberFormatException e) { event.getTextChannel().sendMessage(EmbedMessageUtils.getFlushError("Argument unknown!")).queue(); } - } - else - { + } else { event.getTextChannel().sendMessage(EmbedMessageUtils.getFlushError("You are not a supreme being, you cannot do that !")).queue(); } - } } diff --git a/src/main/java/net/Broken/Commands/Help.java b/src/main/java/net/Broken/Commands/Help.java index 5b5803d..ae2f03d 100644 --- a/src/main/java/net/Broken/Commands/Help.java +++ b/src/main/java/net/Broken/Commands/Help.java @@ -31,18 +31,15 @@ public class Help implements Commande { @Override public void action(String[] args, MessageReceivedEvent event) { - if(args.length>=1) - { + if (args.length >= 1) { String argsString = args[0]; //System.out.println(argsString); - if (MainBot.commandes.containsKey(argsString)) - { + if (MainBot.commandes.containsKey(argsString)) { Commande cmdObj = MainBot.commandes.get(argsString); - if(!cmdObj.isAdminCmd() || isAdmin(event)) - { - logger.debug("Help for "+argsString+" by "+event.getAuthor().getName()); + if (!cmdObj.isAdminCmd() || isAdmin(event)) { + logger.debug("Help for " + argsString + " by " + event.getAuthor().getName()); MessageEmbed messageEmbed; try { messageEmbed = EmbedMessageUtils.getHelp(argsString); @@ -54,62 +51,55 @@ public class Help implements Commande { logger.catching(e1); } } - if(!event.isFromType(ChannelType.PRIVATE)) { + if (!event.isFromType(ChannelType.PRIVATE)) { event.getTextChannel().sendMessage(messageEmbed).queue(); - } else{ - PrivateMessage.send(event.getAuthor(), messageEmbed,logger); + } else { + PrivateMessage.send(event.getAuthor(), messageEmbed, logger); } - } - else - { + } else { logger.info("Help wanted for admin command, Denied!"); - if(!event.isFromType(ChannelType.PRIVATE)) { + if (!event.isFromType(ChannelType.PRIVATE)) { Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getUnautorized()).complete(); - List messages = new ArrayList(){{ + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); - } else{ + } else { PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getUnautorized(), logger); } } - - } - else - { - if(!event.isFromType(ChannelType.PRIVATE)) { + } else { + if (!event.isFromType(ChannelType.PRIVATE)) { Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getUnknowCommand()).complete(); - List messages = new ArrayList(){{ + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); - } else{ - PrivateMessage.send(event.getAuthor(),EmbedMessageUtils.getUnknowCommand(),logger); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); + } else { + PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getUnknowCommand(), logger); } logger.debug("Unknown command!"); } - } - else - { + } else { TableRenderer table = new TableRenderer(); - table.setHeader("Command","PU"); + table.setHeader("Command", "PU"); TableRenderer nsfwTable = new TableRenderer(); nsfwTable.setHeader("NSFW Only\u00A0", "PU"); List noPu = new ArrayList<>(); for (Map.Entry e : MainBot.commandes.entrySet()) { - if(!e.getValue().isAdminCmd() || isAdmin(event)){ - if(e.getValue().isPrivateUsable()) + if (!e.getValue().isAdminCmd() || isAdmin(event)) { + if (e.getValue().isPrivateUsable()) table.addRow(e.getKey(), "XX"); - else if(e.getValue().isNSFW()) - nsfwTable.addRow(e.getKey(),""); + else if (e.getValue().isNSFW()) + nsfwTable.addRow(e.getKey(), ""); else noPu.add(e.getKey()); } @@ -117,27 +107,27 @@ public class Help implements Commande { } - for(String key : noPu) + for (String key : noPu) table.addRow(key, ""); String txt = table.build(); txt += "\n\n"; txt += nsfwTable.build(); - if(!event.isFromType(ChannelType.PRIVATE)){ + if (!event.isFromType(ChannelType.PRIVATE)) { Message rest = event.getTextChannel().sendMessage(new EmbedBuilder().setTitle("Commands sent by private message").setColor(Color.green).build()).complete(); new MessageTimeOut(MainBot.messageTimeOut, rest, event.getMessage()).start(); } String role; - if(isAdmin(event)) + if (isAdmin(event)) role = "Admin"; else role = "No Admin"; try { - PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getHelpList(role, txt),logger); + PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getHelpList(role, txt), logger); } catch (FileNotFoundException e) { logger.catching(e); PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getInternalError(), logger); @@ -176,19 +166,18 @@ public class Help implements Commande { } - public boolean isAdmin(MessageReceivedEvent event){ + public boolean isAdmin(MessageReceivedEvent event) { - if(event.isFromType(ChannelType.PRIVATE)){ + if (event.isFromType(ChannelType.PRIVATE)) { List guilds = event.getAuthor().getMutualGuilds(); - for(Guild iterator : guilds){ - if(iterator.getMember(event.getAuthor()).hasPermission(Permission.ADMINISTRATOR)){ + for (Guild iterator : guilds) { + if (iterator.getMember(event.getAuthor()).hasPermission(Permission.ADMINISTRATOR)) { return true; } } - } - else + } else return event.getMember().hasPermission(Permission.ADMINISTRATOR); return false; } diff --git a/src/main/java/net/Broken/Commands/Invite.java b/src/main/java/net/Broken/Commands/Invite.java index 2358ac7..31a903f 100644 --- a/src/main/java/net/Broken/Commands/Invite.java +++ b/src/main/java/net/Broken/Commands/Invite.java @@ -5,14 +5,13 @@ import net.Broken.Tools.PrivateMessage; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; -public class Invite implements Commande{ +public class Invite implements Commande { @Override public void action(String[] args, MessageReceivedEvent event) { - if(event.getChannelType().isGuild()){ + if (event.getChannelType().isGuild()) { event.getTextChannel().sendMessage("You can invite me whit this link:\nhttps://discordapp.com/oauth2/authorize?client_id=" + event.getJDA().getSelfUser().getId() + "&scope=bot&permissions=8").complete(); - } - else { - PrivateMessage.send(event.getAuthor(),"You can invite me whit this link:\nhttps://discordapp.com/oauth2/authorize?client_id=" + event.getJDA().getSelfUser().getId() + "&scope=bot&permissions=8",LogManager.getLogger()); + } else { + PrivateMessage.send(event.getAuthor(), "You can invite me whit this link:\nhttps://discordapp.com/oauth2/authorize?client_id=" + event.getJDA().getSelfUser().getId() + "&scope=bot&permissions=8", LogManager.getLogger()); } } diff --git a/src/main/java/net/Broken/Commands/ListRoles.java b/src/main/java/net/Broken/Commands/ListRoles.java index 720370c..753262f 100644 --- a/src/main/java/net/Broken/Commands/ListRoles.java +++ b/src/main/java/net/Broken/Commands/ListRoles.java @@ -13,8 +13,8 @@ public class ListRoles implements Commande { public void action(String[] args, MessageReceivedEvent event) { List roles = event.getGuild().getRoles(); EmbedBuilder messageB = new EmbedBuilder(); - for (Role role : roles){ - messageB.addField(role.getName(),"```id: " + role.getId() + "```",false); + for (Role role : roles) { + messageB.addField(role.getName(), "```id: " + role.getId() + "```", false); } messageB.setColor(Color.green); diff --git a/src/main/java/net/Broken/Commands/Move.java b/src/main/java/net/Broken/Commands/Move.java index 35579ab..08d03c9 100644 --- a/src/main/java/net/Broken/Commands/Move.java +++ b/src/main/java/net/Broken/Commands/Move.java @@ -11,7 +11,6 @@ import net.dv8tion.jda.api.managers.GuildManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - import java.util.ArrayList; import java.util.List; @@ -21,29 +20,29 @@ import java.util.List; */ public class Move implements Commande { - Logger logger = LogManager.getLogger(); - private String HELP="`//move <@user> <@Role>`\n:arrow_right:\t*Move a user to a specified role.*"; public List saveRoleUser; public Member user; public Guild serveur; public GuildManager serveurManager; - /** Perform a move (Reset is role and add target(s) role(s) + Logger logger = LogManager.getLogger(); + private String HELP = "`//move <@user> <@Role>`\n:arrow_right:\t*Move a user to a specified role.*"; + + /** + * Perform a move (Reset is role and add target(s) role(s) * - * @param user User to move - * @param cible Complete list of new role + * @param user User to move + * @param cible Complete list of new role * @param reset - * @param serveur Guild + * @param serveur Guild * @param serveurManager GuildManager * @return success */ - public boolean exc(Member user, List cible , boolean reset, Guild serveur, GuildManager serveurManager) throws HierarchyException - { + public boolean exc(Member user, List cible, boolean reset, Guild serveur, GuildManager serveurManager) throws HierarchyException { MainBot.roleFlag = true; boolean erreur = false; List allRoll = serveur.getRoles(); - //On recupere les roles de l'utilisateur List roleUserList = user.getRoles(); @@ -59,71 +58,61 @@ public class Move implements Commande { //on fait ensuite les modif - serveur.modifyMemberRoles(user,cible).complete(); + serveur.modifyMemberRoles(user, cible).complete(); logger.info("Give " + cible + " role to " + user.getEffectiveName()); - this.user=user; - this.serveur=serveur; - this.serveurManager=serveurManager; + this.user = user; + this.serveur = serveur; + this.serveurManager = serveurManager; return erreur; } - /** Command handler + /** + * Command handler * * @param args * @param event */ - public void action(String[] args, MessageReceivedEvent event) - { - if(!event.isFromType(ChannelType.PRIVATE)) - { - if(args.length>=2) - { - serveur=event.getGuild(); + public void action(String[] args, MessageReceivedEvent event) { + if (!event.isFromType(ChannelType.PRIVATE)) { + if (args.length >= 2) { + serveur = event.getGuild(); List userL = event.getMessage().getMentionedUsers(); List roleL = event.getMessage().getMentionedRoles(); - if(userL.size()<1 ||roleL.size()<1) - { + if (userL.size() < 1 || roleL.size() < 1) { logger.warn("Wrong mention."); Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("Error, please check if the user and/or the role are existing.")).complete(); - List messages = new ArrayList(){{ + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); - } - else - { + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); + } else { user = serveur.getMember(userL.get(0)); - serveur=event.getGuild(); - logger.info("Attempting role assignement for "+user.getEffectiveName()+" to "+roleL+" by "+event.getAuthor().getName()); + serveur = event.getGuild(); + logger.info("Attempting role assignement for " + user.getEffectiveName() + " to " + roleL + " by " + event.getAuthor().getName()); logger.info("Permission granted, role assignement authorized"); logger.debug("User found"); try { - boolean erreur=this.exc(user,roleL,true,serveur,serveur.getManager()); - if(erreur) - { + boolean erreur = this.exc(user, roleL, true, serveur, serveur.getManager()); + if (erreur) { Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("Check the targeted role. ")).complete(); - List messages = new ArrayList(){{ + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); - } - else - { + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); + } else { StringBuilder roleStr = new StringBuilder(""); boolean first = true; - for( Role role : roleL) - { + for (Role role : roleL) { if (!first) { roleStr.append(", "); - } - else + } else first = false; roleStr.append("__"); roleStr.append(role.getName()); @@ -131,49 +120,39 @@ public class Move implements Commande { } - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveOk("User "+user.getEffectiveName()+" as been successfully moved to "+roleStr.toString())).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveOk("User " + user.getEffectiveName() + " as been successfully moved to " + roleStr.toString())).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } - }catch (HierarchyException e){ - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("You cannot move "+user.getRoles().get(0).getAsMention())).complete(); - List messages = new ArrayList(){{ + } catch (HierarchyException e) { + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("You cannot move " + user.getRoles().get(0).getAsMention())).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); logger.error("Hierarchy error, please move bot's role on top!"); } - } - } - else - { + } else { logger.warn("Missing argument."); Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("Missing argument.")).complete(); - List messages = new ArrayList(){{ + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } - } - else + } else event.getPrivateChannel().sendMessage(EmbedMessageUtils.getNoPrivate()); - - - - - - } @Override diff --git a/src/main/java/net/Broken/Commands/Ordre66.java b/src/main/java/net/Broken/Commands/Ordre66.java index 6b653a3..25cdd73 100644 --- a/src/main/java/net/Broken/Commands/Ordre66.java +++ b/src/main/java/net/Broken/Commands/Ordre66.java @@ -1,18 +1,14 @@ package net.Broken.Commands; import net.Broken.Commande; -import net.Broken.MainBot; -import net.Broken.Tools.MessageTimeOut; -import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; -import org.apache.logging.log4j.LogManager; 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 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(); } diff --git a/src/main/java/net/Broken/Commands/Over18/Ass.java b/src/main/java/net/Broken/Commands/Over18/Ass.java index a7e4a8f..58cd542 100644 --- a/src/main/java/net/Broken/Commands/Over18/Ass.java +++ b/src/main/java/net/Broken/Commands/Over18/Ass.java @@ -9,10 +9,10 @@ import org.apache.logging.log4j.LogManager; */ @NoDev() -public class Ass extends NumberedCommande { +public class Ass extends NumberedCommande { public Ass() { - super(LogManager.getLogger(), "http://les400culs.com/","-2/","featured-img","img"); + super(LogManager.getLogger(), "http://les400culs.com/", "-2/", "featured-img", "img"); } @Override diff --git a/src/main/java/net/Broken/Commands/Over18/Boobs.java b/src/main/java/net/Broken/Commands/Over18/Boobs.java index 9db17e9..65701de 100644 --- a/src/main/java/net/Broken/Commands/Over18/Boobs.java +++ b/src/main/java/net/Broken/Commands/Over18/Boobs.java @@ -11,8 +11,9 @@ import org.apache.logging.log4j.LogManager; public class Boobs extends NumberedCommande { public Boobs() { - super(LogManager.getLogger(), "http://lesaintdesseins.fr/","-2/","featured-img","img"); + super(LogManager.getLogger(), "http://lesaintdesseins.fr/", "-2/", "featured-img", "img"); } + @Override public String toString() { return "Boobs"; diff --git a/src/main/java/net/Broken/Commands/Over18/Madame.java b/src/main/java/net/Broken/Commands/Over18/Madame.java index b29dbd8..9701c17 100644 --- a/src/main/java/net/Broken/Commands/Over18/Madame.java +++ b/src/main/java/net/Broken/Commands/Over18/Madame.java @@ -15,9 +15,9 @@ import java.io.IOException; */ @NoDev public class Madame extends NumberedCommande { + public String HELP = "Yo really? Just type Madame to see some :cat:"; Logger logger = LogManager.getLogger(); MessageReceivedEvent event; - public String HELP = "Yo really? Just type Madame to see some :cat:"; public Madame() { super(LogManager.getLogger(), "https://www.bonjourmadame.fr/page/", "/"); @@ -73,10 +73,10 @@ public class Madame extends NumberedCommande { return false; } - private String removeParams(String url){ + private String removeParams(String url) { int par = url.indexOf('?'); - if(par != -1){ - url = url.substring(0,par); + if (par != -1) { + url = url.substring(0, par); } return url; } @@ -86,7 +86,7 @@ public class Madame extends NumberedCommande { public String poll() throws IOException { boolean success = false; String imgUrl = null; - while (!success ) { + while (!success) { checkRandom(); int randomResult = randomQueue.poll(); diff --git a/src/main/java/net/Broken/Commands/Over18/SM.java b/src/main/java/net/Broken/Commands/Over18/SM.java index 2cb4137..e00ea03 100644 --- a/src/main/java/net/Broken/Commands/Over18/SM.java +++ b/src/main/java/net/Broken/Commands/Over18/SM.java @@ -17,7 +17,7 @@ public class SM implements Commande { @Override public void action(String[] args, MessageReceivedEvent event) { - Redirection redirect= new Redirection(); + Redirection redirect = new Redirection(); try { String redirectUrl = redirect.get("https://bonjourfetish.tumblr.com/random"); logger.debug(redirectUrl); diff --git a/src/main/java/net/Broken/Commands/Over18/Suicide.java b/src/main/java/net/Broken/Commands/Over18/Suicide.java index f351ddc..6ddc11f 100644 --- a/src/main/java/net/Broken/Commands/Over18/Suicide.java +++ b/src/main/java/net/Broken/Commands/Over18/Suicide.java @@ -1,7 +1,6 @@ package net.Broken.Commands.Over18; import net.Broken.Commande; -import net.Broken.Tools.EmbedMessageUtils; import net.Broken.Tools.FindContentOnWebPage; import net.Broken.Tools.Redirection; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -10,7 +9,7 @@ import org.apache.logging.log4j.Logger; import java.io.IOException; -public class Suicide implements Commande{ +public class Suicide implements Commande { private Logger logger = LogManager.getLogger(); @@ -25,16 +24,16 @@ public class Suicide implements Commande{ Boolean success = false; int tryCount = 0; - while(!success && tryCount < 10 ){ + while (!success && tryCount < 10) { redirectUrl = redirection.get(base + "/random"); String img; - try{ + try { img = FindContentOnWebPage.doYourJob(redirectUrl, "post photo_nav_caption", "img"); event.getTextChannel().sendMessage(img).queue(); success = true; - }catch (StringIndexOutOfBoundsException | IOException e){ + } catch (StringIndexOutOfBoundsException | IOException e) { logger.debug("Photo_nav not found try photoset"); try { @@ -48,15 +47,13 @@ public class Suicide implements Commande{ } - tryCount ++; + tryCount++; } } catch (IOException e) { logger.catching(e); } - - } @Override diff --git a/src/main/java/net/Broken/Commands/Ping.java b/src/main/java/net/Broken/Commands/Ping.java index de32e73..28acb62 100644 --- a/src/main/java/net/Broken/Commands/Ping.java +++ b/src/main/java/net/Broken/Commands/Ping.java @@ -18,10 +18,10 @@ public class Ping implements Commande { public void action(String[] args, MessageReceivedEvent event) { long ping = event.getJDA().getGatewayPing(); // long receivedTime = Timestamp.valueOf(LocalDateTime.ofInstant(event.getMessage().getCreationTime().toInstant(), ZoneId.systemDefault())).getTime(); - if(event.isFromType(ChannelType.PRIVATE)) - event.getPrivateChannel().sendMessage(":arrow_right: Pong! `" + ping+ "ms`").queue(); + if (event.isFromType(ChannelType.PRIVATE)) + event.getPrivateChannel().sendMessage(":arrow_right: Pong! `" + ping + "ms`").queue(); else { - Message rest = event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:arrow_right: Pong! `" + ping + "ms`").complete(); + Message rest = event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:arrow_right: Pong! `" + ping + "ms`").complete(); new MessageTimeOut(MainBot.messageTimeOut, event.getMessage(), rest).start(); } LogManager.getLogger().debug("pong"); diff --git a/src/main/java/net/Broken/Commands/ReportUsers.java b/src/main/java/net/Broken/Commands/ReportUsers.java index 7c16842..af70194 100644 --- a/src/main/java/net/Broken/Commands/ReportUsers.java +++ b/src/main/java/net/Broken/Commands/ReportUsers.java @@ -3,10 +3,8 @@ 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.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.requests.RestAction; -import net.dv8tion.jda.api.requests.restaction.MessageAction; public class ReportUsers implements Commande { @@ -28,7 +26,7 @@ public class ReportUsers implements Commande { } } } - if(restAction!=null) + if (restAction != null) restAction.queue(); } else if (args.length == 0) { diff --git a/src/main/java/net/Broken/Commands/Settings.java b/src/main/java/net/Broken/Commands/Settings.java index ebf6124..be68a09 100644 --- a/src/main/java/net/Broken/Commands/Settings.java +++ b/src/main/java/net/Broken/Commands/Settings.java @@ -1,27 +1,17 @@ package net.Broken.Commands; import net.Broken.Commande; -import net.Broken.DB.Entity.GuildPreferenceEntity; import net.Broken.DB.Repository.GuildPreferenceRepository; import net.Broken.MainBot; import net.Broken.SpringContext; import net.Broken.Tools.EmbedMessageUtils; -import net.Broken.Tools.MessageTimeOut; -import net.Broken.Tools.SettingsUtils; -import net.Broken.audio.AudioM; -import net.Broken.audio.NotConnectedException; -import net.Broken.audio.NullMusicManager; -import net.Broken.audio.Youtube.YoutubeTools; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.context.ApplicationContext; import java.awt.*; -import java.io.IOException; -import java.util.List; public class Settings implements Commande { @@ -40,7 +30,7 @@ public class Settings implements Commande { EmbedBuilder builder = new EmbedBuilder() .setTitle("Settings") - .setDescription("You can do all the configuration on the web page in the \"Bot Settings\" menu.\nhttps://"+MainBot.url).setColor(Color.green); + .setDescription("You can do all the configuration on the web page in the \"Bot Settings\" menu.\nhttps://" + MainBot.url).setColor(Color.green); event.getTextChannel().sendMessage(EmbedMessageUtils.buildStandar(builder)).queue(); diff --git a/src/main/java/net/Broken/Commands/Spam.java b/src/main/java/net/Broken/Commands/Spam.java index b97159b..213c459 100644 --- a/src/main/java/net/Broken/Commands/Spam.java +++ b/src/main/java/net/Broken/Commands/Spam.java @@ -15,7 +15,6 @@ import net.dv8tion.jda.api.exceptions.RateLimitedException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -30,13 +29,11 @@ public class Spam implements Commande { private Logger logger = LogManager.getLogger(); @Override - public void action(String[] args, MessageReceivedEvent event) - { + public void action(String[] args, MessageReceivedEvent event) { /**************************** * Verif argument * ****************************/ - if(args.length>=1) - { + if (args.length >= 1) { String commande = args[0]; /**************************** @@ -45,12 +42,12 @@ public class Spam implements Commande { switch (commande) { case "pardon": - this.pardon(event,args); + this.pardon(event, args); break; case "extermine": try { - this.extermine(event,args); + this.extermine(event, args); } catch (RateLimitedException e) { e.printStackTrace(); } @@ -59,14 +56,13 @@ public class Spam implements Commande { case "reset": try { - this.reset(event,args); + this.reset(event, args); } catch (RateLimitedException e) { e.printStackTrace(); } break; - } } @@ -98,14 +94,13 @@ public class Spam implements Commande { return false; } - public void pardon(MessageReceivedEvent event, String[] args){ + public void pardon(MessageReceivedEvent event, String[] args) { Guild serveur = event.getGuild(); /**************************** * verif argument * ****************************/ - if (args.length >= 1) - { + if (args.length >= 1) { /**************************** * On recupere l'utilisateur et le role cible ****************************/ @@ -115,20 +110,18 @@ public class Spam implements Commande { /**************************** * verif utilisteur trouver * ****************************/ - if(userL.size()<1) - { + if (userL.size() < 1) { logger.error("User unknown."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError(":arrow_right: User not found. ","pardon")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError(":arrow_right: User not found. ", "pardon")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); - } - else { + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); + } else { Member user = userL.get(0); logger.info("Attempt to forgive " + user.getEffectiveName() + " by " + event.getMember().getEffectiveName()); - /**************************** + /**************************** * virif si en spammer * ****************************/ if (MainBot.spamUtils.containsKey(user)) { @@ -136,35 +129,33 @@ public class Spam implements Commande { MainBot.spamUtils.get(user).setOnSpam(false); } else { logger.warn("User is not in spam."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError(":arrow_right: This user is not in spam.","pardon")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError(":arrow_right: This user is not in spam.", "pardon")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } } else { logger.warn("User is not in spam."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError(":arrow_right: This user is not in spam.","pardon")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError(":arrow_right: This user is not in spam.", "pardon")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } } - } - else - { + } else { logger.warn("Missing argument."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Missing argument!","pardon")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Missing argument!", "pardon")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } @@ -174,8 +165,7 @@ public class Spam implements Commande { /**************************** * verif argument * ****************************/ - if (args.length >= 3) - { + if (args.length >= 3) { /**************************** * On recupere l'utilisateur et le role cible ****************************/ @@ -185,70 +175,58 @@ public class Spam implements Commande { /**************************** * verif utilisteur trouver * ****************************/ - if(userL.size()<1) - { + if (userL.size() < 1) { logger.warn("Wrong mention (Spam)."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Wrong mention. ","extermine")).complete(); - } - else{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Wrong mention. ", "extermine")).complete(); + } else { Guild serveur = event.getGuild(); Member user = serveur.getMember(userL.get(0)); - logger.info("Starting protocol 66 on "+user.getEffectiveName()+" by the command of "+event.getAuthor().getName()); + logger.info("Starting protocol 66 on " + user.getEffectiveName() + " by the command of " + event.getAuthor().getName()); - String multiStr =args[2]; + String multiStr = args[2]; /**************************** * virif pas deja en spammer * ****************************/ - if(MainBot.spamUtils.containsKey(user)) - { - if(!MainBot.spamUtils.get(user).isOnSpam()) - { - this.goSpam(user,multiStr,serveur,event); - } - else - { + if (MainBot.spamUtils.containsKey(user)) { + if (!MainBot.spamUtils.get(user).isOnSpam()) { + this.goSpam(user, multiStr, serveur, event); + } else { logger.warn("User already in spam."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("User already in spam.","extermine")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("User already in spam.", "extermine")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } - } - else - { - this.goSpam(user,multiStr,serveur,event); + } else { + this.goSpam(user, multiStr, serveur, event); } } - } - else - { + } else { logger.warn("Missing argument."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Missing argument!","extermine")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Missing argument!", "extermine")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } } public void reset(MessageReceivedEvent event, String[] args) throws RateLimitedException { - if(event!=null) - { - if(args.length>=2) - { + if (event != null) { + if (args.length >= 2) { Guild serveur = event.getGuild(); /**************************** @@ -260,18 +238,16 @@ public class Spam implements Commande { /**************************** * verif utilisteur trouver * ****************************/ - if(userL.size()<1) - { + if (userL.size() < 1) { logger.warn("User not found."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("User not found.","reset")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("User not found.", "reset")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); - } - else { + } else { Member user = userL.get(0); logger.info("Attempt spam reset of " + user.getEffectiveName() + " by " + event.getMember().getEffectiveName()); @@ -282,35 +258,29 @@ public class Spam implements Commande { if (MainBot.spamUtils.containsKey(user)) { logger.info("Multiplictor reset for " + user.getEffectiveName() + " done."); Message rest = event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n *The spam multiplicator of " + user.getEffectiveName() + " is now down to zero.*").complete(); - List messages = new ArrayList(){{ + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); MainBot.spamUtils.remove(user); } } - } - else - { + } else { logger.warn("Missing argument."); - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Missing argument!","reset")).complete(); - List messages = new ArrayList(){{ + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamError("Missing argument!", "reset")).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); } - } - else - { - if (args[0].equals("all")) - { + } else { + if (args[0].equals("all")) { logger.info("Multiplicator reseted automaticly."); - for (Member unUser: MainBot.spamUtils.keySet()) - { + for (Member unUser : MainBot.spamUtils.keySet()) { MainBot.message_compteur.remove(unUser); //TODO resolve garbage collector error ???? } @@ -318,33 +288,23 @@ public class Spam implements Commande { } - } + public void goSpam(Member user, String multiStr, Guild serveur, MessageReceivedEvent event) { + if (Objects.equals(multiStr, "/")) { + new AntiSpam().extermine(user, serveur, serveur.getManager(), true, event); - - public void goSpam(Member user, String multiStr, Guild serveur, MessageReceivedEvent event) - { - if(Objects.equals(multiStr, "/")) - { - new AntiSpam().extermine(user,serveur,serveur.getManager(),true,event); - - } - else - { + } else { int multi = Integer.parseInt(multiStr); - if(MainBot.spamUtils.containsKey(user)) - { + if (MainBot.spamUtils.containsKey(user)) { MainBot.spamUtils.get(user).setMultip(multi); - } - else - { - MainBot.spamUtils.put(user,new UserSpamUtils(user,new ArrayList<>())); + } else { + MainBot.spamUtils.put(user, new UserSpamUtils(user, new ArrayList<>())); MainBot.spamUtils.get(user).setMultip(multi); } - new AntiSpam().extermine(user,serveur,serveur.getManager(),false,event); + new AntiSpam().extermine(user, serveur, serveur.getManager(), false, event); } } diff --git a/src/main/java/net/Broken/Commands/SpamInfo.java b/src/main/java/net/Broken/Commands/SpamInfo.java index 048f270..cd6784b 100644 --- a/src/main/java/net/Broken/Commands/SpamInfo.java +++ b/src/main/java/net/Broken/Commands/SpamInfo.java @@ -10,7 +10,6 @@ import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; 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.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -24,71 +23,61 @@ import java.util.concurrent.TimeUnit; /** * Spam Info Command */ -public class SpamInfo implements Commande{ - private HashMap threadHashMap = new HashMap<>(); - +public class SpamInfo implements Commande { Logger logger = LogManager.getLogger(); + private HashMap threadHashMap = new HashMap<>(); @Override public void action(String[] args, MessageReceivedEvent event) { Member user; - if(event.getMessage().getMentionedUsers().size() == 0){ + if (event.getMessage().getMentionedUsers().size() == 0) { user = event.getMember(); - } - else { + } else { user = event.getMessage().getMentionedMembers().get(0); } Message message = null; - if(!MainBot.spamUtils.containsKey(user)){ - if(!event.isFromType(ChannelType.PRIVATE)) + if (!MainBot.spamUtils.containsKey(user)) { + if (!event.isFromType(ChannelType.PRIVATE)) message = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + ":\n\t- Multiplicator: `1`\n\t- In spam: `No`")).complete(); else - PrivateMessage.send(event.getAuthor(),EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+":\n\t- Multiplicator: `1`\n\t- In spam: `No`"),logger); - } - else{ + PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + ":\n\t- Multiplicator: `1`\n\t- In spam: `No`"), logger); + } else { UserSpamUtils util = MainBot.spamUtils.get(user); - if(!util.isOnSpam()){ - if(!event.isFromType(ChannelType.PRIVATE)) - message = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+"\n\t- Multiplicator: `"+util.getMultip()+"`\n\t- In spam: `No`")).complete(); + if (!util.isOnSpam()) { + if (!event.isFromType(ChannelType.PRIVATE)) + message = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + "\n\t- Multiplicator: `" + util.getMultip() + "`\n\t- In spam: `No`")).complete(); else - PrivateMessage.send(event.getAuthor(),EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+":\n\t- Multiplicator: `"+util.getMultip()+"`\n\t- In spam: `No`"),logger); + PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + ":\n\t- Multiplicator: `" + util.getMultip() + "`\n\t- In spam: `No`"), logger); + } else { + if (!event.isFromType(ChannelType.PRIVATE)) + message = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + ":\n\t- Multiplicator: `" + util.getMultip() + "`\n\t- In spam: `Yes`\n\t- Time remaining: `" + formatSecond(util.getTimeLeft()) + "`")).complete(); + else + message = PrivateMessage.send(event.getAuthor(), EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + "\n\t- Multiplicator: `" + util.getMultip() + "`\n\t- In spam: `Yes`\n\t- Time remaining: `" + formatSecond(util.getTimeLeft()) + "`"), logger); } - else{ - if(!event.isFromType(ChannelType.PRIVATE)) - message = event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+":\n\t- Multiplicator: `"+util.getMultip()+"`\n\t- In spam: `Yes`\n\t- Time remaining: `"+formatSecond(util.getTimeLeft())+"`")).complete(); - else - message = PrivateMessage.send(event.getAuthor(),EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+"\n\t- Multiplicator: `"+util.getMultip()+"`\n\t- In spam: `Yes`\n\t- Time remaining: `"+formatSecond(util.getTimeLeft())+"`"),logger); - } } - if(message != null){ - if(threadHashMap.containsKey(user)){ + if (message != null) { + if (threadHashMap.containsKey(user)) { MessageUpdater startedThread = threadHashMap.get(user); - if(!message.getChannelType().equals(startedThread.message.getChannelType())){ - MessageUpdater newThread = new MessageUpdater(message,event.getMessage(),MainBot.spamUtils.get(user),user); - threadHashMap.put(user,newThread); + if (!message.getChannelType().equals(startedThread.message.getChannelType())) { + MessageUpdater newThread = new MessageUpdater(message, event.getMessage(), MainBot.spamUtils.get(user), user); + threadHashMap.put(user, newThread); newThread.start(); - } - else - { - threadHashMap.get(user).stop = true; - MessageUpdater newThread = new MessageUpdater(message,event.getMessage(),MainBot.spamUtils.get(user),user); + } else { + threadHashMap.get(user).stop = true; + MessageUpdater newThread = new MessageUpdater(message, event.getMessage(), MainBot.spamUtils.get(user), user); threadHashMap.replace(user, newThread); newThread.start(); } - } - else - { - MessageUpdater newThread = new MessageUpdater(message,event.getMessage(),MainBot.spamUtils.get(user),user); + } else { + MessageUpdater newThread = new MessageUpdater(message, event.getMessage(), MainBot.spamUtils.get(user), user); threadHashMap.put(user, newThread); newThread.start(); } } - - } @Override @@ -116,7 +105,7 @@ public class SpamInfo implements Commande{ return false; } - public String formatSecond(int second){ + public String formatSecond(int second) { long days = TimeUnit.SECONDS.toDays(second); second -= TimeUnit.DAYS.toSeconds(days); @@ -129,22 +118,22 @@ public class SpamInfo implements Commande{ long seconds = TimeUnit.SECONDS.toSeconds(second); - logger.debug(""+days+":"+hours+":"+minutes+":"+seconds); + logger.debug("" + days + ":" + hours + ":" + minutes + ":" + seconds); String finalText = ""; - if(days!=0) - finalText += days+" day(s) "; - if(hours!=0) - finalText += hours+"h "; - if(minutes!=0) - finalText += minutes+"min "; - finalText += seconds+"s"; + if (days != 0) + finalText += days + " day(s) "; + if (hours != 0) + finalText += hours + "h "; + if (minutes != 0) + finalText += minutes + "min "; + finalText += seconds + "s"; return finalText; } - private class MessageUpdater extends Thread{ + private class MessageUpdater extends Thread { public Message message; public Message command; public UserSpamUtils util; @@ -152,7 +141,7 @@ public class SpamInfo implements Commande{ private int oldValue; private Member user; - public MessageUpdater(Message message,Message command, UserSpamUtils util, Member user) { + public MessageUpdater(Message message, Message command, UserSpamUtils util, Member user) { this.message = message; this.util = util; this.user = user; @@ -162,14 +151,14 @@ public class SpamInfo implements Commande{ @Override public void run() { - logger.debug("Start "+user.getEffectiveName()+" theard!"); - if(util != null){ + logger.debug("Start " + user.getEffectiveName() + " theard!"); + if (util != null) { oldValue = util.getTimeLeft(); - while (util.getTimeLeft()!=0 && !stop && util.isOnSpam()){ + while (util.getTimeLeft() != 0 && !stop && util.isOnSpam()) { try { Thread.sleep(500); - if(util.getTimeLeft()%5 == 0 && oldValue - util.getTimeLeft() >= 5){ - message.editMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+":\n\t- Multiplicator: `"+util.getMultip()+"`\n\t- In spam: `Yes`\n\t- Time remaining: `"+formatSecond(util.getTimeLeft())+"`")).complete(); + if (util.getTimeLeft() % 5 == 0 && oldValue - util.getTimeLeft() >= 5) { + message.editMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + ":\n\t- Multiplicator: `" + util.getMultip() + "`\n\t- In spam: `Yes`\n\t- Time remaining: `" + formatSecond(util.getTimeLeft()) + "`")).complete(); oldValue = util.getTimeLeft(); } @@ -177,22 +166,19 @@ public class SpamInfo implements Commande{ e.printStackTrace(); } } - logger.debug("Kill "+user.getEffectiveName()+" theard!"); - if(stop) + logger.debug("Kill " + user.getEffectiveName() + " theard!"); + if (stop) message.editMessage(new EmbedBuilder().setColor(Color.RED).setTitle("Aborted").build()).complete(); else - message.editMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName()+"\n\t- Multiplicator: `"+util.getMultip()+"`\n\t- In spam: `No`")).complete(); + message.editMessage(EmbedMessageUtils.getSpamInfo(user.getEffectiveName() + "\n\t- Multiplicator: `" + util.getMultip() + "`\n\t- In spam: `No`")).complete(); } - logger.debug("Timer for message deletion of "+user.getEffectiveName()+" stated..."); + logger.debug("Timer for message deletion of " + user.getEffectiveName() + " stated..."); threadHashMap.remove(user); List messages = new ArrayList<>(); messages.add(command); messages.add(message); - new MessageTimeOut(messages,15).start(); - - - + new MessageTimeOut(messages, 15).start(); } diff --git a/src/main/java/net/Broken/Commands/YtSearch.java b/src/main/java/net/Broken/Commands/YtSearch.java index e88aea7..67598a0 100644 --- a/src/main/java/net/Broken/Commands/YtSearch.java +++ b/src/main/java/net/Broken/Commands/YtSearch.java @@ -1,22 +1,17 @@ package net.Broken.Commands; -import com.google.api.client.googleapis.json.GoogleJsonResponseException; import net.Broken.Commande; import net.Broken.MainBot; import net.Broken.Tools.EmbedMessageUtils; import net.Broken.Tools.MessageTimeOut; import net.Broken.audio.Youtube.SearchResult; import net.Broken.audio.Youtube.YoutubeSearchRework; -import net.Broken.audio.Youtube.YoutubeTools; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.IOException; -import java.util.ArrayList; import java.util.List; public class YtSearch implements Commande { diff --git a/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java b/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java index 6e9edfd..8ce6cc7 100644 --- a/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java +++ b/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java @@ -1,11 +1,11 @@ package net.Broken.DB.Entity; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.VoiceChannel; -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; @Entity public class GuildPreferenceEntity { diff --git a/src/main/java/net/Broken/DB/Entity/PendingPwdResetEntity.java b/src/main/java/net/Broken/DB/Entity/PendingPwdResetEntity.java index 0e648b8..0badcf8 100644 --- a/src/main/java/net/Broken/DB/Entity/PendingPwdResetEntity.java +++ b/src/main/java/net/Broken/DB/Entity/PendingPwdResetEntity.java @@ -8,7 +8,7 @@ import java.util.Date; @Entity public class PendingPwdResetEntity { @Id - @GeneratedValue(strategy= GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @OneToOne @@ -17,7 +17,7 @@ public class PendingPwdResetEntity { private Date expirationDate; - public PendingPwdResetEntity(UserEntity userEntity,String token) { + public PendingPwdResetEntity(UserEntity userEntity, String token) { this.userEntity = userEntity; this.securityToken = token; Calendar cal = Calendar.getInstance(); @@ -27,7 +27,8 @@ public class PendingPwdResetEntity { } - public PendingPwdResetEntity() {} + public PendingPwdResetEntity() { + } public UserEntity getUserEntity() { diff --git a/src/main/java/net/Broken/DB/Entity/PendingUserEntity.java b/src/main/java/net/Broken/DB/Entity/PendingUserEntity.java index fafbbc1..6100b27 100644 --- a/src/main/java/net/Broken/DB/Entity/PendingUserEntity.java +++ b/src/main/java/net/Broken/DB/Entity/PendingUserEntity.java @@ -12,7 +12,7 @@ import javax.persistence.Id; @Entity public class PendingUserEntity { @Id - @GeneratedValue(strategy= GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; @@ -34,7 +34,6 @@ public class PendingUserEntity { } - public String getPassword() { return password; } diff --git a/src/main/java/net/Broken/DB/Entity/PlaylistEntity.java b/src/main/java/net/Broken/DB/Entity/PlaylistEntity.java index e238f38..64f9096 100644 --- a/src/main/java/net/Broken/DB/Entity/PlaylistEntity.java +++ b/src/main/java/net/Broken/DB/Entity/PlaylistEntity.java @@ -3,10 +3,7 @@ package net.Broken.DB.Entity; import com.fasterxml.jackson.annotation.JsonIgnore; -import javax.annotation.Nullable; import javax.persistence.*; -import javax.sound.midi.Track; -import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -15,14 +12,14 @@ import java.util.List; public class PlaylistEntity { @Id - @GeneratedValue(strategy= GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; @JsonIgnore @ManyToOne - @JoinColumn(name="userEntity_id", nullable=false) + @JoinColumn(name = "userEntity_id", nullable = false) private UserEntity user; @@ -71,9 +68,8 @@ public class PlaylistEntity { this.tracks = tracks; } - public void addTracks(TrackEntity... tracks ) - { - if(this.tracks == null) + public void addTracks(TrackEntity... tracks) { + if (this.tracks == null) this.tracks = new ArrayList<>(); this.tracks.addAll(Arrays.asList(tracks)); diff --git a/src/main/java/net/Broken/DB/Entity/TrackEntity.java b/src/main/java/net/Broken/DB/Entity/TrackEntity.java index caa8fc2..9b5f6c7 100644 --- a/src/main/java/net/Broken/DB/Entity/TrackEntity.java +++ b/src/main/java/net/Broken/DB/Entity/TrackEntity.java @@ -9,7 +9,7 @@ import javax.persistence.*; public class TrackEntity { @Id - @GeneratedValue(strategy= GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String title; @@ -22,7 +22,7 @@ public class TrackEntity { @JsonIgnore @ManyToOne - @JoinColumn(name="playlistEntity_id", nullable=false) + @JoinColumn(name = "playlistEntity_id", nullable = false) private PlaylistEntity playlist; public TrackEntity() { @@ -36,9 +36,9 @@ public class TrackEntity { this.pos = pos; } - public TrackEntity(TrackEntity trackEntity){ + public TrackEntity(TrackEntity trackEntity) { this.title = trackEntity.title; - this.url = trackEntity.url; + this.url = trackEntity.url; this.identifier = trackEntity.identifier; this.pos = trackEntity.pos; this.playlist = trackEntity.playlist; diff --git a/src/main/java/net/Broken/DB/Entity/UserEntity.java b/src/main/java/net/Broken/DB/Entity/UserEntity.java index 8e28316..7101522 100644 --- a/src/main/java/net/Broken/DB/Entity/UserEntity.java +++ b/src/main/java/net/Broken/DB/Entity/UserEntity.java @@ -16,7 +16,7 @@ import java.util.List; @Entity public class UserEntity { @Id - @GeneratedValue(strategy= GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; @@ -49,14 +49,14 @@ public class UserEntity { this.apiToken = apiToken; } - public UserEntity(User user, PasswordEncoder passwordEncoder){ + public UserEntity(User user, PasswordEncoder passwordEncoder) { this.name = user.getName(); this.jdaId = user.getId(); this.apiToken = UserUtils.getInstance().generateApiToken(); this.password = passwordEncoder.encode(UserUtils.getInstance().generateCheckToken()); } - public UserEntity(String name, String id, PasswordEncoder passwordEncoder){ + public UserEntity(String name, String id, PasswordEncoder passwordEncoder) { this.name = name; this.jdaId = id; this.apiToken = UserUtils.getInstance().generateApiToken(); @@ -112,8 +112,8 @@ public class UserEntity { this.playlists = playlists; } - public void addPlaylist(PlaylistEntity... playlists){ - if(this.playlists == null) + public void addPlaylist(PlaylistEntity... playlists) { + if (this.playlists == null) this.playlists = new ArrayList<>(); this.playlists.addAll(Arrays.asList(playlists)); diff --git a/src/main/java/net/Broken/DB/Entity/UserStats.java b/src/main/java/net/Broken/DB/Entity/UserStats.java index c11cac7..3653c3d 100644 --- a/src/main/java/net/Broken/DB/Entity/UserStats.java +++ b/src/main/java/net/Broken/DB/Entity/UserStats.java @@ -8,14 +8,14 @@ import javax.persistence.*; public class UserStats { @Id - @GeneratedValue(strategy= GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String guildId; @ManyToOne - @JoinColumn(name="userEntity_id", nullable=false) + @JoinColumn(name = "userEntity_id", nullable = false) private UserEntity user; @ColumnDefault("0") @@ -27,9 +27,10 @@ public class UserStats { @ColumnDefault("0") private Long apiCommandCount = 0L; - public UserStats(){} + public UserStats() { + } - public UserStats(String guildId, UserEntity user){ + public UserStats(String guildId, UserEntity user) { this.guildId = guildId; this.user = user; } diff --git a/src/main/java/net/Broken/DB/Repository/PendingPwdResetRepository.java b/src/main/java/net/Broken/DB/Repository/PendingPwdResetRepository.java index fee4b68..b072bde 100644 --- a/src/main/java/net/Broken/DB/Repository/PendingPwdResetRepository.java +++ b/src/main/java/net/Broken/DB/Repository/PendingPwdResetRepository.java @@ -6,6 +6,6 @@ import org.springframework.data.repository.CrudRepository; import java.util.List; -public interface PendingPwdResetRepository extends CrudRepository{ +public interface PendingPwdResetRepository extends CrudRepository { List findByUserEntity(UserEntity userEntity); } diff --git a/src/main/java/net/Broken/DB/Repository/UserRepository.java b/src/main/java/net/Broken/DB/Repository/UserRepository.java index 57552aa..1b9410f 100644 --- a/src/main/java/net/Broken/DB/Repository/UserRepository.java +++ b/src/main/java/net/Broken/DB/Repository/UserRepository.java @@ -9,8 +9,10 @@ import java.util.List; * Repository for UserEntity */ -public interface UserRepository extends CrudRepository{ +public interface UserRepository extends CrudRepository { List findByName(String name); + List findByJdaId(String jdaId); + List findByApiToken(String apiToken); } diff --git a/src/main/java/net/Broken/DB/Repository/UserStatsRepository.java b/src/main/java/net/Broken/DB/Repository/UserStatsRepository.java index 1bfe68e..c74f4c8 100644 --- a/src/main/java/net/Broken/DB/Repository/UserStatsRepository.java +++ b/src/main/java/net/Broken/DB/Repository/UserStatsRepository.java @@ -8,7 +8,9 @@ import java.util.List; public interface UserStatsRepository extends CrudRepository { List findByUser(UserEntity userEntity); + List findByGuildId(String guildId); + List findByUserAndGuildId(UserEntity user, String guildId); } diff --git a/src/main/java/net/Broken/Init.java b/src/main/java/net/Broken/Init.java index 2f251f1..7b2fbef 100644 --- a/src/main/java/net/Broken/Init.java +++ b/src/main/java/net/Broken/Init.java @@ -9,7 +9,6 @@ import net.Broken.Tools.DayListener.DayListener; import net.Broken.Tools.DayListener.Listeners.DailyMadame; import net.Broken.Tools.DayListener.Listeners.ResetSpam; import net.Broken.Tools.UserManager.Stats.UserStatsUtils; -import net.dv8tion.jda.api.AccountType; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.OnlineStatus; diff --git a/src/main/java/net/Broken/MainBot.java b/src/main/java/net/Broken/MainBot.java index 49486f3..6dc8d7f 100644 --- a/src/main/java/net/Broken/MainBot.java +++ b/src/main/java/net/Broken/MainBot.java @@ -10,7 +10,6 @@ import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.User; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.boot.ExitCodeGenerator; @@ -31,18 +30,16 @@ public class MainBot { public static HashMap commandes = new HashMap<>(); public static HashMap slashCommands = new HashMap<>(); - public static HashMap> historique =new HashMap<>(); - public static HashMap message_compteur =new HashMap<>(); - public static HashMap mutualGuildCount =new HashMap<>(); + public static HashMap> historique = new HashMap<>(); + public static HashMap message_compteur = new HashMap<>(); + public static HashMap mutualGuildCount = new HashMap<>(); public static boolean roleFlag = false; public static HashMap spamUtils = new HashMap<>(); public static JDA jda; public static boolean ready = false; public static boolean dev = false; - public static String url= "claptrapbot.com"; - - + public static String url = "claptrapbot.com"; public static int messageTimeOut = 10; @@ -54,13 +51,13 @@ public class MainBot { public static void main(String[] args) { - if(!Init.checkEnv()) + if (!Init.checkEnv()) System.exit(1); logger.info("======================================="); logger.info("--------------Starting Bot-------------"); logger.info("======================================="); - if(System.getenv("DEV")!= null){ + if (System.getenv("DEV") != null) { dev = Boolean.parseBoolean(System.getenv("DEV")); } @@ -71,7 +68,7 @@ public class MainBot { ConfigurableApplicationContext ctx = SpringApplication.run(MainBot.class, args); - if(jda == null) { + if (jda == null) { System.exit(SpringApplication.exit(ctx, (ExitCodeGenerator) () -> { logger.fatal("Init error! Close application!"); return 1; @@ -85,62 +82,51 @@ public class MainBot { /** * Perform test (admin, NSFW and private usable or not) and execute command or not + * * @param cmd Container whit all command info */ - public static void handleCommand(CommandParser.CommandContainer cmd, UserEntity user) - { + public static void handleCommand(CommandParser.CommandContainer cmd, UserEntity user) { - if(!ready){ + if (!ready) { return; } - if (commandes.containsKey(cmd.commande)){ + if (commandes.containsKey(cmd.commande)) { Commande cmdObj = commandes.get(cmd.commande); boolean isAdmin; boolean isBotAdmin = user != null && user.isBotAdmin(); - if(cmd.event.isFromType(ChannelType.PRIVATE)){ + if (cmd.event.isFromType(ChannelType.PRIVATE)) { isAdmin = false; - } - else + } else isAdmin = cmd.event.getMember().hasPermission(Permission.ADMINISTRATOR); - if((!cmdObj.isAdminCmd() || isAdmin) && (!cmdObj.isBotAdminCmd() || isBotAdmin)){ + if ((!cmdObj.isAdminCmd() || isAdmin) && (!cmdObj.isBotAdminCmd() || isBotAdmin)) { - if(cmd.event.isFromType(ChannelType.PRIVATE) && commandes.get(cmd.commande).isPrivateUsable()) - { + if (cmd.event.isFromType(ChannelType.PRIVATE) && commandes.get(cmd.commande).isPrivateUsable()) { + commandes.get(cmd.commande).action(cmd.args, cmd.event); + } else if (!cmd.event.isFromType(ChannelType.PRIVATE)) { + if (!cmdObj.isNSFW() || cmd.event.getTextChannel().isNSFW()) { commandes.get(cmd.commande).action(cmd.args, cmd.event); + } else { + cmd.event.getMessage().delete().queue(); } - else if (!cmd.event.isFromType(ChannelType.PRIVATE)) - { - if(!cmdObj.isNSFW() || cmd.event.getTextChannel().isNSFW()){ - commandes.get(cmd.commande).action(cmd.args, cmd.event); - } - else{ - cmd.event.getMessage().delete().queue(); - } - } - else - cmd.event.getPrivateChannel().sendMessage(EmbedMessageUtils.getNoPrivate()).queue(); + } else + cmd.event.getPrivateChannel().sendMessage(EmbedMessageUtils.getNoPrivate()).queue(); - - } - else{ - if(cmd.event.isFromType(ChannelType.PRIVATE)){ - PrivateMessage.send(cmd.event.getAuthor(),EmbedMessageUtils.getUnautorized(), logger); - } - else{ + } else { + if (cmd.event.isFromType(ChannelType.PRIVATE)) { + PrivateMessage.send(cmd.event.getAuthor(), EmbedMessageUtils.getUnautorized(), logger); + } else { cmd.event.getTextChannel().sendMessage(EmbedMessageUtils.getUnautorized()).complete(); } } - } - else{ + } else { logger.debug("Unknown command : " + cmd.commande); } } - } diff --git a/src/main/java/net/Broken/RestApi/ApiCommandLoader.java b/src/main/java/net/Broken/RestApi/ApiCommandLoader.java index db88d32..6b7ae5c 100644 --- a/src/main/java/net/Broken/RestApi/ApiCommandLoader.java +++ b/src/main/java/net/Broken/RestApi/ApiCommandLoader.java @@ -12,7 +12,8 @@ import java.util.Set; public class ApiCommandLoader { public static HashMap apiCommands = new HashMap<>(); private static Logger logger = LogManager.getLogger(); - public static void load(){ + + public static void load() { logger.info("Loading Api Command..."); // Reflections reflections = new Reflections("net.Broken.RestApi.Command"); Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forPackage( @@ -27,7 +28,7 @@ public class ApiCommandLoader { String reference = apiClass.getName(); String[] splited = reference.split("\\."); - String name = splited[splited.length-1].toUpperCase(); + String name = splited[splited.length - 1].toUpperCase(); logger.info("..." + name); diff --git a/src/main/java/net/Broken/RestApi/CommandInterface.java b/src/main/java/net/Broken/RestApi/CommandInterface.java index ef6b5d2..68c2256 100644 --- a/src/main/java/net/Broken/RestApi/CommandInterface.java +++ b/src/main/java/net/Broken/RestApi/CommandInterface.java @@ -13,9 +13,10 @@ import org.springframework.http.ResponseEntity; public interface CommandInterface { /** * Main action + * * @param musicCommande Current guild music command - * @param data Received data - * @param user User who submit RestApi command + * @param data Received data + * @param user User who submit RestApi command * @param guild * @return HTTP Response */ diff --git a/src/main/java/net/Broken/RestApi/Commands/AutoFlowOff.java b/src/main/java/net/Broken/RestApi/Commands/AutoFlowOff.java index c33160a..29aec77 100644 --- a/src/main/java/net/Broken/RestApi/Commands/AutoFlowOff.java +++ b/src/main/java/net/Broken/RestApi/Commands/AutoFlowOff.java @@ -10,13 +10,13 @@ import net.dv8tion.jda.api.entities.User; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -public class AutoFlowOff implements CommandInterface{ +public class AutoFlowOff implements CommandInterface { @Override public ResponseEntity action(CommandPostData data, User user, Guild guild) { AudioM audioM = AudioM.getInstance(guild); TrackScheduler scheduler = audioM.getGuildMusicManager().scheduler; scheduler.setAutoFlow(false); - return new ResponseEntity<>(new CommandResponseData(data.command,"ok"), HttpStatus.OK); + return new ResponseEntity<>(new CommandResponseData(data.command, "ok"), HttpStatus.OK); } } diff --git a/src/main/java/net/Broken/RestApi/Commands/AutoFlowOn.java b/src/main/java/net/Broken/RestApi/Commands/AutoFlowOn.java index 52b21d8..67c252c 100644 --- a/src/main/java/net/Broken/RestApi/Commands/AutoFlowOn.java +++ b/src/main/java/net/Broken/RestApi/Commands/AutoFlowOn.java @@ -10,14 +10,14 @@ import net.dv8tion.jda.api.entities.User; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -public class AutoFlowOn implements CommandInterface{ +public class AutoFlowOn implements CommandInterface { @Override public ResponseEntity action(CommandPostData data, User user, Guild guild) { AudioM audioM = AudioM.getInstance(guild); TrackScheduler scheduler = audioM.getGuildMusicManager().scheduler; scheduler.setAutoFlow(true); - return new ResponseEntity<>(new CommandResponseData(data.command,"ok"), HttpStatus.OK); + return new ResponseEntity<>(new CommandResponseData(data.command, "ok"), HttpStatus.OK); } } diff --git a/src/main/java/net/Broken/RestApi/Commands/Connect.java b/src/main/java/net/Broken/RestApi/Commands/Connect.java index 48ce506..42de162 100644 --- a/src/main/java/net/Broken/RestApi/Commands/Connect.java +++ b/src/main/java/net/Broken/RestApi/Commands/Connect.java @@ -13,24 +13,25 @@ import org.springframework.http.ResponseEntity; /** * Connect to vocal channel RestApi command */ -public class Connect implements CommandInterface{ +public class Connect implements CommandInterface { @Override public ResponseEntity action(CommandPostData data, User user, Guild guild) { AudioM audioM = AudioM.getInstance(guild); - if(data.chanelId == null) - return new ResponseEntity<>(new CommandResponseData(data.command,"Missing chanelId"),HttpStatus.BAD_REQUEST); + if (data.chanelId == null) + return new ResponseEntity<>(new CommandResponseData(data.command, "Missing chanelId"), HttpStatus.BAD_REQUEST); VoiceChannel voiceChannel = null; - try{ + try { voiceChannel = guild.getVoiceChannelById(data.chanelId); - }catch (NumberFormatException ignored){} + } catch (NumberFormatException ignored) { + } - if(voiceChannel == null){ - return new ResponseEntity<>(new CommandResponseData(data.command,"Channel Not found"), HttpStatus.BAD_REQUEST); + if (voiceChannel == null) { + return new ResponseEntity<>(new CommandResponseData(data.command, "Channel Not found"), HttpStatus.BAD_REQUEST); } audioM.getGuildAudioPlayer(); guild.getAudioManager().openAudioConnection(guild.getVoiceChannelById(data.chanelId)); audioM.setPlayedChanel(voiceChannel); - return new ResponseEntity<>(new CommandResponseData(data.command,"Accepted"),HttpStatus.OK); + return new ResponseEntity<>(new CommandResponseData(data.command, "Accepted"), HttpStatus.OK); } } diff --git a/src/main/java/net/Broken/RestApi/Commands/Dell.java b/src/main/java/net/Broken/RestApi/Commands/Dell.java index 2c20dc4..10a05dd 100644 --- a/src/main/java/net/Broken/RestApi/Commands/Dell.java +++ b/src/main/java/net/Broken/RestApi/Commands/Dell.java @@ -15,12 +15,11 @@ import org.springframework.http.ResponseEntity; public class Dell implements CommandInterface { @Override public ResponseEntity action(CommandPostData data, User user, Guild guild) { - if(data.url != null) { - if(AudioM.getInstance(guild).getGuildMusicManager().scheduler.remove(data.url)){ + if (data.url != null) { + if (AudioM.getInstance(guild).getGuildMusicManager().scheduler.remove(data.url)) { return new ResponseEntity<>(new CommandResponseData(data.command, "Accepted"), HttpStatus.OK); - } - else - return new ResponseEntity<>(new CommandResponseData(data.command,"URL not found"), HttpStatus.NOT_FOUND); + } else + return new ResponseEntity<>(new CommandResponseData(data.command, "URL not found"), HttpStatus.NOT_FOUND); } return new ResponseEntity<>(new CommandResponseData(data.command, "Missing URL"), HttpStatus.NOT_ACCEPTABLE); diff --git a/src/main/java/net/Broken/RestApi/Commands/Disconnect.java b/src/main/java/net/Broken/RestApi/Commands/Disconnect.java index a3a2281..688f9b1 100644 --- a/src/main/java/net/Broken/RestApi/Commands/Disconnect.java +++ b/src/main/java/net/Broken/RestApi/Commands/Disconnect.java @@ -12,11 +12,11 @@ import org.springframework.http.ResponseEntity; /** * Disconnect from vocal chanel RestApi Command */ -public class Disconnect implements CommandInterface{ +public class Disconnect implements CommandInterface { @Override public ResponseEntity action(CommandPostData data, User user, Guild guild) { AudioM.getInstance(guild).stop(); - return new ResponseEntity<>(new CommandResponseData(data.command,"Ok"), HttpStatus.OK); + return new ResponseEntity<>(new CommandResponseData(data.command, "Ok"), HttpStatus.OK); } } diff --git a/src/main/java/net/Broken/RestApi/Commands/Pause.java b/src/main/java/net/Broken/RestApi/Commands/Pause.java index 86284ed..ec4f2c3 100644 --- a/src/main/java/net/Broken/RestApi/Commands/Pause.java +++ b/src/main/java/net/Broken/RestApi/Commands/Pause.java @@ -15,7 +15,7 @@ import org.springframework.http.ResponseEntity; public class Pause implements CommandInterface { @Override public ResponseEntity action(CommandPostData data, User user, Guild guild) { - AudioM.getInstance(guild).getGuildMusicManager().scheduler.pause(); + AudioM.getInstance(guild).getGuildMusicManager().scheduler.pause(); return new ResponseEntity<>(new CommandResponseData(data.command, "Accepted"), HttpStatus.OK); } } diff --git a/src/main/java/net/Broken/RestApi/Data/CommandResponseData.java b/src/main/java/net/Broken/RestApi/Data/CommandResponseData.java index 1d349d6..680558c 100644 --- a/src/main/java/net/Broken/RestApi/Data/CommandResponseData.java +++ b/src/main/java/net/Broken/RestApi/Data/CommandResponseData.java @@ -1,6 +1,7 @@ package net.Broken.RestApi.Data; import com.fasterxml.jackson.annotation.JsonInclude; + /** * Data for JSON Parsing */ diff --git a/src/main/java/net/Broken/RestApi/Data/CurrentMusicData.java b/src/main/java/net/Broken/RestApi/Data/CurrentMusicData.java index 1c77961..ff5a54c 100644 --- a/src/main/java/net/Broken/RestApi/Data/CurrentMusicData.java +++ b/src/main/java/net/Broken/RestApi/Data/CurrentMusicData.java @@ -1,10 +1,7 @@ package net.Broken.RestApi.Data; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; -import com.sedmelluq.discord.lavaplayer.track.AudioTrackState; + /** * Data for JSON Parsing */ @@ -34,7 +31,7 @@ public class CurrentMusicData { } public String getState() { - if(pause) + if (pause) return "PAUSE"; else return state; diff --git a/src/main/java/net/Broken/RestApi/Data/Playlist/AddToPlaylistData.java b/src/main/java/net/Broken/RestApi/Data/Playlist/AddToPlaylistData.java index aab8fa0..c2f1c94 100644 --- a/src/main/java/net/Broken/RestApi/Data/Playlist/AddToPlaylistData.java +++ b/src/main/java/net/Broken/RestApi/Data/Playlist/AddToPlaylistData.java @@ -2,7 +2,7 @@ package net.Broken.RestApi.Data.Playlist; import net.Broken.RestApi.Data.CommandPostData; -public class AddToPlaylistData extends CommandPostData{ +public class AddToPlaylistData extends CommandPostData { public int playlistId; diff --git a/src/main/java/net/Broken/RestApi/Data/Playlist/PlaylistResponseData.java b/src/main/java/net/Broken/RestApi/Data/Playlist/PlaylistResponseData.java index f4c3f77..908f9eb 100644 --- a/src/main/java/net/Broken/RestApi/Data/Playlist/PlaylistResponseData.java +++ b/src/main/java/net/Broken/RestApi/Data/Playlist/PlaylistResponseData.java @@ -13,6 +13,7 @@ public class PlaylistResponseData { this.message = message; this.playlist = playlist; } + public PlaylistResponseData(String message, String error) { this.message = message; this.error = error; diff --git a/src/main/java/net/Broken/RestApi/Data/PlaylistData.java b/src/main/java/net/Broken/RestApi/Data/PlaylistData.java index 2a3acd1..c313678 100644 --- a/src/main/java/net/Broken/RestApi/Data/PlaylistData.java +++ b/src/main/java/net/Broken/RestApi/Data/PlaylistData.java @@ -1,8 +1,7 @@ package net.Broken.RestApi.Data; -import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; - import java.util.List; + /** * Data for JSON Parsing */ diff --git a/src/main/java/net/Broken/RestApi/Data/Settings/GetSettingsData.java b/src/main/java/net/Broken/RestApi/Data/Settings/GetSettingsData.java index 6e544de..f5f261b 100644 --- a/src/main/java/net/Broken/RestApi/Data/Settings/GetSettingsData.java +++ b/src/main/java/net/Broken/RestApi/Data/Settings/GetSettingsData.java @@ -25,8 +25,8 @@ public class GetSettingsData { this.current = current; } - public enum TYPE{ - BOOL,LIST,STRING,SELECT_LIST + public enum TYPE { + BOOL, LIST, STRING, SELECT_LIST } } diff --git a/src/main/java/net/Broken/RestApi/Data/Settings/Value.java b/src/main/java/net/Broken/RestApi/Data/Settings/Value.java index 248f296..ee98931 100644 --- a/src/main/java/net/Broken/RestApi/Data/Settings/Value.java +++ b/src/main/java/net/Broken/RestApi/Data/Settings/Value.java @@ -12,6 +12,7 @@ public class Value { this.name = name; this.id = id; } + public Value(String name, String id, boolean selected) { this.name = name; this.id = id; diff --git a/src/main/java/net/Broken/RestApi/Data/UserAudioTrackData.java b/src/main/java/net/Broken/RestApi/Data/UserAudioTrackData.java index 7bb6bbf..fdfacc4 100644 --- a/src/main/java/net/Broken/RestApi/Data/UserAudioTrackData.java +++ b/src/main/java/net/Broken/RestApi/Data/UserAudioTrackData.java @@ -2,6 +2,7 @@ package net.Broken.RestApi.Data; import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; import net.Broken.audio.UserAudioTrack; + /** * Data for JSON Parsing */ @@ -14,7 +15,7 @@ public class UserAudioTrackData { this.audioTrackInfo = audioTrackInfo; } - public UserAudioTrackData(UserAudioTrack userAudioTrack){ + public UserAudioTrackData(UserAudioTrack userAudioTrack) { this.audioTrackInfo = userAudioTrack.getAudioTrack().getInfo(); this.user = userAudioTrack.getSubmittedUser().getName(); } diff --git a/src/main/java/net/Broken/RestApi/GeneralApiController.java b/src/main/java/net/Broken/RestApi/GeneralApiController.java index 96f73bf..b4c4284 100644 --- a/src/main/java/net/Broken/RestApi/GeneralApiController.java +++ b/src/main/java/net/Broken/RestApi/GeneralApiController.java @@ -1,8 +1,5 @@ package net.Broken.RestApi; -import net.Broken.DB.Entity.PlaylistEntity; -import net.Broken.DB.Entity.TrackEntity; -import net.Broken.DB.Entity.UserEntity; import net.Broken.DB.Repository.PlaylistRepository; import net.Broken.DB.Repository.TrackRepository; import net.Broken.DB.Repository.UserRepository; @@ -10,14 +7,10 @@ import net.Broken.MainBot; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.List; - @RestController @RequestMapping("/api/") public class GeneralApiController { @@ -39,12 +32,10 @@ public class GeneralApiController { } @RequestMapping(value = "/isReady", method = RequestMethod.GET) - public ResponseEntity isReady(){ - if(MainBot.ready){ + public ResponseEntity isReady() { + if (MainBot.ready) { return new ResponseEntity<>(HttpStatus.OK); - } - else - { + } else { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } diff --git a/src/main/java/net/Broken/RestApi/PlaylistAPIController.java b/src/main/java/net/Broken/RestApi/PlaylistAPIController.java index 9a428c4..9e67669 100644 --- a/src/main/java/net/Broken/RestApi/PlaylistAPIController.java +++ b/src/main/java/net/Broken/RestApi/PlaylistAPIController.java @@ -44,22 +44,22 @@ public class PlaylistAPIController { @RequestMapping("/myPlaylist") - public List myPlaylist(@CookieValue(value = "token", defaultValue = "") String token){ - if(token.isEmpty()) + public List myPlaylist(@CookieValue(value = "token", defaultValue = "") String token) { + if (token.isEmpty()) return null; - else{ + else { UserEntity user = userRepository.findByApiToken(token).get(0); - return user.getPlaylists(); + return user.getPlaylists(); } } @RequestMapping("/createPlaylist") - public ResponseEntity createPlaylist(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody CreatePlaylistData data){ + public ResponseEntity createPlaylist(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody CreatePlaylistData data) { - if(token.isEmpty()) + if (token.isEmpty()) return new ResponseEntity<>(new PlaylistResponseData("Unknown Token!\nPlease Re-connect.", "token"), HttpStatus.UNAUTHORIZED); - else{ + else { UserEntity user = userRepository.findByApiToken(token).get(0); PlaylistEntity playlistEntity = new PlaylistEntity(data.name, user); playlistEntity = playlistRepository.save(playlistEntity); @@ -72,7 +72,7 @@ public class PlaylistAPIController { } @RequestMapping("/addToPlaylist") - public ResponseEntity addToPlaylist(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody AddToPlaylistData data){ + public ResponseEntity addToPlaylist(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody AddToPlaylistData data) { PlaylistManager playlistManager = PlaylistManager.getINSTANCE(); return playlistManager.addToPlaylist(token, data); @@ -80,7 +80,7 @@ public class PlaylistAPIController { } @RequestMapping("/dellTrack") - public ResponseEntity dellTrack(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody DeleteTrackData data){ + public ResponseEntity dellTrack(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody DeleteTrackData data) { PlaylistManager playlistManager = PlaylistManager.getINSTANCE(); return playlistManager.removeTrack(token, data); @@ -88,7 +88,7 @@ public class PlaylistAPIController { } @RequestMapping("/moveTrack") - public ResponseEntity moveTrack(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody MoveTrackData data){ + public ResponseEntity moveTrack(@CookieValue(value = "token", defaultValue = "") String token, @RequestBody MoveTrackData data) { PlaylistManager playlistManager = PlaylistManager.getINSTANCE(); return playlistManager.moveTrack(token, data); @@ -96,6 +96,4 @@ public class PlaylistAPIController { } - - } diff --git a/src/main/java/net/Broken/RestApi/SettingAPIController.java b/src/main/java/net/Broken/RestApi/SettingAPIController.java index af83eb8..eb5bc6c 100644 --- a/src/main/java/net/Broken/RestApi/SettingAPIController.java +++ b/src/main/java/net/Broken/RestApi/SettingAPIController.java @@ -1,23 +1,14 @@ package net.Broken.RestApi; -import net.Broken.DB.Entity.GuildPreferenceEntity; import net.Broken.DB.Entity.UserEntity; -import net.Broken.DB.Repository.GuildPreferenceRepository; import net.Broken.DB.Repository.UserRepository; import net.Broken.MainBot; import net.Broken.RestApi.Data.Settings.GetSettingsData; import net.Broken.RestApi.Data.Settings.ListPostSetting; -import net.Broken.RestApi.Data.Settings.PostSetSettings; -import net.Broken.RestApi.Data.Settings.Value; import net.Broken.Tools.SettingsUtils; import net.Broken.Tools.UserManager.Exceptions.UnknownTokenException; import net.Broken.Tools.UserManager.UserUtils; -import net.dv8tion.jda.api.JDA; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Role; -import net.dv8tion.jda.api.entities.TextChannel; -import net.dv8tion.jda.api.entities.User; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -25,16 +16,14 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.annotation.RegEx; import java.util.ArrayList; -import java.util.List; @RestController @RequestMapping("/api") public class SettingAPIController { - private Logger logger = LogManager.getLogger(); final UserRepository userRepository; + private Logger logger = LogManager.getLogger(); @Autowired public SettingAPIController(UserRepository userRepository) { @@ -43,45 +32,42 @@ public class SettingAPIController { @RequestMapping(value = "/settings", method = RequestMethod.GET) - public ResponseEntity> getSettings(@CookieValue("token") String token, @CookieValue("guild") String guild){ + public ResponseEntity> getSettings(@CookieValue("token") String token, @CookieValue("guild") String guild) { SettingsUtils settingUtils = SettingsUtils.getInstance(); - if(settingUtils.checkPermission(token, guild)){ + if (settingUtils.checkPermission(token, guild)) { Guild jdaGuild = MainBot.jda.getGuildById(guild); - return new ResponseEntity<>( settingUtils.extractSettings(jdaGuild), HttpStatus.OK); - } - else{ - return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + return new ResponseEntity<>(settingUtils.extractSettings(jdaGuild), HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); } } @RequestMapping(value = "/settings", method = RequestMethod.POST) - public ResponseEntity setSetting(@CookieValue("token") String token, @CookieValue("guild") String guild, @RequestBody ListPostSetting settings){ + public ResponseEntity setSetting(@CookieValue("token") String token, @CookieValue("guild") String guild, @RequestBody ListPostSetting settings) { SettingsUtils settingUtils = SettingsUtils.getInstance(); - if(settingUtils.checkPermission(token, guild)){ + if (settingUtils.checkPermission(token, guild)) { Guild jdaGuild = MainBot.jda.getGuildById(guild); try { - UserEntity user = UserUtils.getInstance().getUserWithApiToken(userRepository,token); + UserEntity user = UserUtils.getInstance().getUserWithApiToken(userRepository, token); logger.info(user.getName() + " change config of " + jdaGuild.getName()); } catch (UnknownTokenException e) { e.printStackTrace(); } - if(settingUtils.setSettings(jdaGuild, settings.settings)){ + if (settingUtils.setSettings(jdaGuild, settings.settings)) { return new ResponseEntity<>(HttpStatus.OK); - }else{ + } else { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } - } - else{ + } else { logger.warn("Try to change setting, UNAUTHORIZED. TOKEN: " + token + " GUILD: " + guild); return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); } } - } diff --git a/src/main/java/net/Broken/RestApi/UserManagerAPIController.java b/src/main/java/net/Broken/RestApi/UserManagerAPIController.java index 4f14afe..51e9f9e 100644 --- a/src/main/java/net/Broken/RestApi/UserManagerAPIController.java +++ b/src/main/java/net/Broken/RestApi/UserManagerAPIController.java @@ -5,7 +5,6 @@ import net.Broken.DB.Entity.UserEntity; import net.Broken.DB.Repository.PendingUserRepository; import net.Broken.DB.Repository.UserRepository; import net.Broken.MainBot; -import net.Broken.RestApi.Data.CommandResponseData; import net.Broken.RestApi.Data.UserManager.*; import net.Broken.Tools.UserManager.Exceptions.*; import net.Broken.Tools.UserManager.Oauth; @@ -15,7 +14,6 @@ import net.Broken.Tools.UserManager.UserUtils; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.User; -import org.apache.http.HttpResponse; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -34,15 +32,12 @@ import java.util.List; @RestController @RequestMapping("/api/userManagement") public class UserManagerAPIController { - Logger logger = LogManager.getLogger(); final PendingUserRepository pendingUserRepository; - final UserRepository userRepository; - private final PasswordEncoder passwordEncoder; - + Logger logger = LogManager.getLogger(); UserUtils userUtils = UserUtils.getInstance(); @Autowired @@ -54,65 +49,64 @@ public class UserManagerAPIController { @RequestMapping(value = "/preRegister", method = RequestMethod.POST) - public ResponseEntity command(@RequestBody UserInfoData data){ - if(data != null && data.name != null) { + public ResponseEntity command(@RequestBody UserInfoData data) { + if (data != null && data.name != null) { try { String id = userUtils.sendCheckToken(pendingUserRepository, userRepository, passwordEncoder, data); return new ResponseEntity<>(new CheckResposeData(true, data.name, "Message sent", id), HttpStatus.OK); } catch (UserNotFoundException e) { logger.warn("User \"" + data.name + "\" not found!"); - return new ResponseEntity<>(new CheckResposeData(false, data.name, "User not found on server!",""), HttpStatus.NOT_FOUND); + return new ResponseEntity<>(new CheckResposeData(false, data.name, "User not found on server!", ""), HttpStatus.NOT_FOUND); } catch (PasswordNotMatchException userAlreadyRegistered) { - return new ResponseEntity<>(new CheckResposeData(false, data.name, "User already registered in pending database and password not match!",""), HttpStatus.NOT_ACCEPTABLE); + return new ResponseEntity<>(new CheckResposeData(false, data.name, "User already registered in pending database and password not match!", ""), HttpStatus.NOT_ACCEPTABLE); } catch (UserAlreadyRegistered userAlreadyRegistered) { - return new ResponseEntity<>(new CheckResposeData(false, data.name, "User already registered in database!",""), HttpStatus.NOT_ACCEPTABLE); + return new ResponseEntity<>(new CheckResposeData(false, data.name, "User already registered in database!", ""), HttpStatus.NOT_ACCEPTABLE); } - } - else{ - return new ResponseEntity<>(new CheckResposeData(false, "", "Missing parameter(s)",""), HttpStatus.BAD_REQUEST); + } else { + return new ResponseEntity<>(new CheckResposeData(false, "", "Missing parameter(s)", ""), HttpStatus.BAD_REQUEST); } } @RequestMapping(value = "/confirmAccount", method = RequestMethod.POST) - public ResponseEntity confirAccount(@RequestBody ConfirmData data){ + public ResponseEntity confirAccount(@RequestBody ConfirmData data) { try { PendingUserEntity pUser = userUtils.confirmCheckToken(pendingUserRepository, Integer.parseInt(data.id), data.checkToken); UserEntity user = new UserEntity(pUser, userUtils.generateApiToken()); userRepository.save(user); pendingUserRepository.delete(pUser); - return new ResponseEntity<>(new UserConnectionData(true, user.getName(), user.getApiToken(),""),HttpStatus.OK); + return new ResponseEntity<>(new UserConnectionData(true, user.getName(), user.getApiToken(), ""), HttpStatus.OK); } catch (TokenNotMatch tokenNotMatch) { - logger.warn("Pre token not match for "+data.id+"!"); - return new ResponseEntity<>(new UserConnectionData(false,"Token not match!","token"),HttpStatus.NOT_ACCEPTABLE); + logger.warn("Pre token not match for " + data.id + "!"); + return new ResponseEntity<>(new UserConnectionData(false, "Token not match!", "token"), HttpStatus.NOT_ACCEPTABLE); } catch (UserNotFoundException e) { - logger.warn("Id not found in DB ("+data.id+")"); - return new ResponseEntity<>(new UserConnectionData(false,"User not found on DB!", "user"),HttpStatus.NOT_ACCEPTABLE); + logger.warn("Id not found in DB (" + data.id + ")"); + return new ResponseEntity<>(new UserConnectionData(false, "User not found on DB!", "user"), HttpStatus.NOT_ACCEPTABLE); } } @RequestMapping(value = "/requestToken", method = RequestMethod.POST) - public ResponseEntity requestToken(@RequestBody UserInfoData data){ + public ResponseEntity requestToken(@RequestBody UserInfoData data) { try { UserEntity user = userUtils.getUser(userRepository, passwordEncoder, data); return new ResponseEntity<>(new UserConnectionData(true, user.getName(), user.getApiToken(), ""), HttpStatus.OK); } catch (UserNotFoundException e) { - return new ResponseEntity<>(new UserConnectionData(false,"User not registered!", "user"),HttpStatus.NOT_ACCEPTABLE); + return new ResponseEntity<>(new UserConnectionData(false, "User not registered!", "user"), HttpStatus.NOT_ACCEPTABLE); } catch (PasswordNotMatchException e) { - return new ResponseEntity<>(new UserConnectionData(false,"Wrong user name or password!", "password"),HttpStatus.NOT_ACCEPTABLE); + return new ResponseEntity<>(new UserConnectionData(false, "Wrong user name or password!", "password"), HttpStatus.NOT_ACCEPTABLE); } } @RequestMapping(value = "/getGuilds", method = RequestMethod.GET) - public ResponseEntity> getGuilds(@CookieValue("token") String token){ + public ResponseEntity> getGuilds(@CookieValue("token") String token) { try { UserEntity userE = userUtils.getUserWithApiToken(userRepository, token); User user = MainBot.jda.getUserById(userE.getJdaId()); List temp = new ArrayList<>(); - if(user != null){ - for (Guild guild : user.getMutualGuilds()){ + if (user != null) { + for (Guild guild : user.getMutualGuilds()) { temp.add(new GuildInfo(guild.getName(), guild.getId(), guild.getMember(user).hasPermission(Permission.ADMINISTRATOR), guild.getIconUrl())); } @@ -129,24 +123,21 @@ public class UserManagerAPIController { } - - @RequestMapping(value = "/oauthLogin", method = RequestMethod.POST) - public ResponseEntity oauthLogin(@RequestParam(value = "token") String discordToken){ + public ResponseEntity oauthLogin(@RequestParam(value = "token") String discordToken) { logger.debug(discordToken); UserEntity user = Oauth.getInstance().getUserEntity(discordToken, userRepository, passwordEncoder); logger.info("OAuth login for " + user.getName()); return new ResponseEntity<>(new UserConnectionData(true, user.getName(), user.getApiToken(), ""), HttpStatus.OK); - } @RequestMapping(value = "/checkToken", method = RequestMethod.GET) - public ResponseEntity checkToken(@CookieValue(value = "token") String token){ - try{ - userUtils.getUserWithApiToken(userRepository,token); + public ResponseEntity checkToken(@CookieValue(value = "token") String token) { + try { + userUtils.getUserWithApiToken(userRepository, token); return new ResponseEntity(HttpStatus.OK); } catch (UnknownTokenException e) { logger.info("Token check fail"); @@ -155,11 +146,11 @@ public class UserManagerAPIController { } @RequestMapping(value = "/getStatsPack", method = RequestMethod.GET) - public ResponseEntity getStatsPack(@CookieValue(value = "token") String token, @RequestParam(value = "guild") String guildID){ - try{ + public ResponseEntity getStatsPack(@CookieValue(value = "token") String token, @RequestParam(value = "guild") String guildID) { + try { UserEntity user = userUtils.getUserWithApiToken(userRepository, token); Guild guild = MainBot.jda.getGuildById(guildID); - if(guild == null ){ + if (guild == null) { logger.warn("Request whit no guild!"); return new ResponseEntity(HttpStatus.BAD_REQUEST); } @@ -167,7 +158,6 @@ public class UserManagerAPIController { return new ResponseEntity<>(UserStatsUtils.getINSTANCE().getStatPack(user, guildID), HttpStatus.OK); - } catch (UnknownTokenException e) { logger.info("Token check fail"); return new ResponseEntity(HttpStatus.UNAUTHORIZED); @@ -175,7 +165,4 @@ public class UserManagerAPIController { } - - - } diff --git a/src/main/java/net/Broken/SlashCommands/Cat.java b/src/main/java/net/Broken/SlashCommands/Cat.java index 5a7df36..91a6250 100644 --- a/src/main/java/net/Broken/SlashCommands/Cat.java +++ b/src/main/java/net/Broken/SlashCommands/Cat.java @@ -28,7 +28,9 @@ import java.util.List; * Command that return a random picture of cat. */ public class Cat implements SlashCommand { - private Logger logger = LogManager.getLogger();; + private Logger logger = LogManager.getLogger(); + ; + @Override public void action(SlashCommandEvent event) { try { diff --git a/src/main/java/net/Broken/SlashCommands/Music.java b/src/main/java/net/Broken/SlashCommands/Music.java index 7c0424e..e6766c7 100644 --- a/src/main/java/net/Broken/SlashCommands/Music.java +++ b/src/main/java/net/Broken/SlashCommands/Music.java @@ -58,13 +58,12 @@ public class Music implements SlashCommand { case "add": OptionMapping url = event.getOption("url"); boolean next = false; - if(event.getOption("next") != null){ + if (event.getOption("next") != null) { next = event.getOption("next").getAsBoolean(); } - if(event.getOption("playlist-limit") == null){ - audio.add(event, url.getAsString(),30, next); - } - else{ + if (event.getOption("playlist-limit") == null) { + audio.add(event, url.getAsString(), 30, next); + } else { long limit = event.getOption("playlist-limit").getAsLong(); audio.add(event, url.getAsString(), (int) limit, next); } diff --git a/src/main/java/net/Broken/Tools/AntiSpam.java b/src/main/java/net/Broken/Tools/AntiSpam.java index b3ffaba..0211feb 100644 --- a/src/main/java/net/Broken/Tools/AntiSpam.java +++ b/src/main/java/net/Broken/Tools/AntiSpam.java @@ -1,7 +1,7 @@ package net.Broken.Tools; -import net.Broken.MainBot; import net.Broken.Commands.Move; +import net.Broken.MainBot; import net.dv8tion.jda.api.entities.*; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.exceptions.HierarchyException; @@ -9,8 +9,6 @@ import net.dv8tion.jda.api.managers.GuildManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - -import java.awt.*; import java.util.ArrayList; import java.util.List; @@ -22,21 +20,23 @@ import static java.lang.Thread.sleep; */ public class AntiSpam { - Logger logger = LogManager.getLogger(); public Move move = new Move(); + Logger logger = LogManager.getLogger(); + public AntiSpam() { } /** * Send user to Spam role - * @param user User to punish - * @param guild Guild + * + * @param user User to punish + * @param guild Guild * @param guildManager GuildManager - * @param incrMulti True for increment punishment time - * @param event Message Received Event + * @param incrMulti True for increment punishment time + * @param event Message Received Event */ - public void extermine(Member user, Guild guild, GuildManager guildManager, Boolean incrMulti, MessageReceivedEvent event){ + public void extermine(Member user, Guild guild, GuildManager guildManager, Boolean incrMulti, MessageReceivedEvent event) { try { sleep(1000); } catch (InterruptedException e) { @@ -44,49 +44,42 @@ public class AntiSpam { } // On créer un nouvelle case dans le tableau des statuts si il n'y est pas - if(!MainBot.spamUtils.containsKey(user)) - { + if (!MainBot.spamUtils.containsKey(user)) { List messages = new ArrayList<>(); messages.addAll(MainBot.historique.get(user)); - MainBot.spamUtils.put(user,new UserSpamUtils(user,messages)); + MainBot.spamUtils.put(user, new UserSpamUtils(user, messages)); } // On verrifie que l'uttilisateur n'est pas deja en spam - if(!MainBot.spamUtils.get(user).isOnSpam()) - { + if (!MainBot.spamUtils.get(user).isOnSpam()) { //l'utilisateur n'est pas deja en spam - if(MainBot.spamUtils.get(user).getMultip() != 0) - { - if(MainBot.spamUtils.get(user).getMultip()<45 && incrMulti) - { - MainBot.spamUtils.get(user).setMultip(MainBot.spamUtils.get(user).getMultip()*2); + if (MainBot.spamUtils.get(user).getMultip() != 0) { + if (MainBot.spamUtils.get(user).getMultip() < 45 && incrMulti) { + MainBot.spamUtils.get(user).setMultip(MainBot.spamUtils.get(user).getMultip() * 2); } - } - else + } else MainBot.spamUtils.get(user).setMultip(1); - logger.info("Starting protocol 66 on "+user.getEffectiveName()+" with a multiplicator of "+MainBot.spamUtils.get(user)); + logger.info("Starting protocol 66 on " + user.getEffectiveName() + " with a multiplicator of " + MainBot.spamUtils.get(user)); - if(!MainBot.spamUtils.get(user).isOnSpam()) - { + if (!MainBot.spamUtils.get(user).isOnSpam()) { MainBot.spamUtils.get(user).setOnSpam(true); List spm = guild.getRolesByName("Spammer", false); - if(spm.size() != 0){ - try{ + if (spm.size() != 0) { + try { move.exc(user, spm, true, guild, guildManager); - MainBot.spamUtils.get(user).addMessage(event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamExtermine(user,MainBot.spamUtils.get(user.getUser()).getMultip())).complete()); - MainBot.spamUtils.get(user).setMinuteur(new Minuteur(MainBot.spamUtils.get(user).getMultip(), move.user, move.saveRoleUser, move.serveur, move.serveurManager,event)); + MainBot.spamUtils.get(user).addMessage(event.getTextChannel().sendMessage(EmbedMessageUtils.getSpamExtermine(user, MainBot.spamUtils.get(user.getUser()).getMultip())).complete()); + MainBot.spamUtils.get(user).setMinuteur(new Minuteur(MainBot.spamUtils.get(user).getMultip(), move.user, move.saveRoleUser, move.serveur, move.serveurManager, event)); MainBot.spamUtils.get(user).launchMinuteur(); - }catch (HierarchyException e){ - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("You cannot move a "+user.getRoles().get(0).getAsMention())).complete(); - List messages = new ArrayList(){{ + } catch (HierarchyException e) { + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("You cannot move a " + user.getRoles().get(0).getAsMention())).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); MainBot.spamUtils.get(user).setOnSpam(false); } - } - else { + } else { MessageEmbed msg = EmbedMessageUtils.buildStandar(EmbedMessageUtils.getError("\nSpam role not found, you need to create it!")); event.getTextChannel().sendMessage(msg).complete(); } @@ -96,14 +89,12 @@ public class AntiSpam { } - - } /** * Timer to auto remove user from Spam role */ - public class Minuteur extends Thread{ + public class Minuteur extends Thread { public TextChannel chanel; public List saveRoleUser; public Member user; @@ -114,51 +105,48 @@ public class AntiSpam { public int timeLeft; - public Minuteur(int multip, Member user, List saveRoleUser, Guild serveur, GuildManager serveurManager, MessageReceivedEvent event ) - { - this.multip=multip; - this.user=user; - this.saveRoleUser=saveRoleUser; - this.serveur=serveur; - this.serveurManager=serveurManager; - this.event=event; - this.chanel=event.getTextChannel(); - this.timeLeft = 60*multip; + public Minuteur(int multip, Member user, List saveRoleUser, Guild serveur, GuildManager serveurManager, MessageReceivedEvent event) { + this.multip = multip; + this.user = user; + this.saveRoleUser = saveRoleUser; + this.serveur = serveur; + this.serveurManager = serveurManager; + this.event = event; + this.chanel = event.getTextChannel(); + this.timeLeft = 60 * multip; } @Override public void run() { - logger.info("["+user.getEffectiveName()+"] Start for "+multip+"min"); - while (MainBot.spamUtils.get(user).isOnSpam()) - { + logger.info("[" + user.getEffectiveName() + "] Start for " + multip + "min"); + while (MainBot.spamUtils.get(user).isOnSpam()) { try { - sleep(1000); + sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } - if(timeLeft<=0) - { + if (timeLeft <= 0) { MainBot.spamUtils.get(user.getUser()).setOnSpam(false); } timeLeft--; } - logger.info("["+user.getEffectiveName()+"] End of spam for "+user.getEffectiveName()+" after "+multip+"min."); + logger.info("[" + user.getEffectiveName() + "] End of spam for " + user.getEffectiveName() + " after " + multip + "min."); try { move.exc(user, saveRoleUser, true, serveur, serveurManager); //aSaveroleUser=saveRoleUser.get(i) - }catch (HierarchyException e){ - Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("You cannot move "+user.getRoles().get(0).getAsMention())).complete(); - List messages = new ArrayList(){{ + } catch (HierarchyException e) { + Message rest = event.getTextChannel().sendMessage(EmbedMessageUtils.getMoveError("You cannot move " + user.getRoles().get(0).getAsMention())).complete(); + List messages = new ArrayList() {{ add(rest); add(event.getMessage()); }}; - new MessageTimeOut(messages,MainBot.messageTimeOut).start(); + new MessageTimeOut(messages, MainBot.messageTimeOut).start(); logger.error("Hierarchy error"); } - logger.info("["+user.getEffectiveName()+"] End for "+multip+"min"); - new MessageTimeOut(new ArrayList<>(MainBot.spamUtils.get(user).getMessages()),0).start(); + logger.info("[" + user.getEffectiveName() + "] End for " + multip + "min"); + new MessageTimeOut(new ArrayList<>(MainBot.spamUtils.get(user).getMessages()), 0).start(); MainBot.spamUtils.get(user).clearAndAdd(chanel.sendMessage(EmbedMessageUtils.getSpamPardon(user)).complete()); - new MessageTimeOut(MainBot.spamUtils.get(user).getMessages(),60).start(); + new MessageTimeOut(MainBot.spamUtils.get(user).getMessages(), 60).start(); // #-----------------------------------------------# @@ -167,7 +155,4 @@ public class AntiSpam { } - - - } diff --git a/src/main/java/net/Broken/Tools/AutoVoiceChannel.java b/src/main/java/net/Broken/Tools/AutoVoiceChannel.java index 9d3d2f4..cfb62e4 100644 --- a/src/main/java/net/Broken/Tools/AutoVoiceChannel.java +++ b/src/main/java/net/Broken/Tools/AutoVoiceChannel.java @@ -9,7 +9,10 @@ import net.dv8tion.jda.api.requests.RestAction; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; import static net.Broken.MainBot.jda; @@ -20,6 +23,10 @@ public class AutoVoiceChannel { private final String guildID; private final HashMap createdChannels = new HashMap<>(); + public AutoVoiceChannel(Guild guild) { + this.guildID = guild.getId(); + } + public static AutoVoiceChannel getInstance(Guild guild) { if (INSTANCE_MAP.get(guild.getId()) == null) { INSTANCE_MAP.put(guild.getId(), new AutoVoiceChannel(guild)); @@ -27,10 +34,6 @@ public class AutoVoiceChannel { return INSTANCE_MAP.get(guild.getId()); } - public AutoVoiceChannel(Guild guild) { - this.guildID = guild.getId(); - } - public void join(VoiceChannel voiceChannel) { Guild guild = jda.getGuildById(guildID); if (guild == null) @@ -41,7 +44,7 @@ public class AutoVoiceChannel { VoiceChannel newChannel = voiceChannel.createCopy().complete(); int next = getNextNumber(); String title = pref.getAutoVoiceChannelTitle(); - if (title.isEmpty()){ + if (title.isEmpty()) { title = "Voice @count"; } title = title.replace("@count", Integer.toString(next)); diff --git a/src/main/java/net/Broken/Tools/Command/CommandLoader.java b/src/main/java/net/Broken/Tools/Command/CommandLoader.java index 57b4e11..182c136 100644 --- a/src/main/java/net/Broken/Tools/Command/CommandLoader.java +++ b/src/main/java/net/Broken/Tools/Command/CommandLoader.java @@ -40,13 +40,13 @@ public class CommandLoader { if (command.isAnnotationPresent(NoDev.class) && MainBot.dev) { logger.warn("Command disabled in dev mode"); - }else{ + } else { try { MainBot.commandes.put(name, command.newInstance()); } catch (InstantiationException | IllegalAccessException e) { logger.error("Failed to load " + name + "!"); } - + } } else { diff --git a/src/main/java/net/Broken/Tools/Command/CommandParser.java b/src/main/java/net/Broken/Tools/Command/CommandParser.java index 72ffad7..5365af3 100644 --- a/src/main/java/net/Broken/Tools/Command/CommandParser.java +++ b/src/main/java/net/Broken/Tools/Command/CommandParser.java @@ -16,32 +16,31 @@ public class CommandParser { /** * Parse raw received string. + * * @param brt Raw command string. - * @param e Event + * @param e Event * @return Readable container that contain all useful data */ - public CommandContainer parse(String brt, MessageReceivedEvent e) - { - ArrayList split =new ArrayList(); - String brut =brt; - String sansTete = brut.replaceFirst("//",""); + public CommandContainer parse(String brt, MessageReceivedEvent e) { + ArrayList split = new ArrayList(); + String brut = brt; + String sansTete = brut.replaceFirst("//", ""); String[] splitSansTete = sansTete.split(" "); - for(String s : splitSansTete){ - if(s.length()>0) + for (String s : splitSansTete) { + if (s.length() > 0) split.add(s); } String commande = split.get(0); - String[] args = new String[split.size()-1]; - split.subList(1,split.size()).toArray(args); + String[] args = new String[split.size() - 1]; + split.subList(1, split.size()).toArray(args); - for(int i=0;i randomQueue = new LinkedBlockingQueue<>(); + private Logger logger = LogManager.getLogger(); /** * Default constructor - * @param logger Logger used for logs - * @param baseURL WebSite base url + * + * @param logger Logger used for logs + * @param baseURL WebSite base url * @param divClass DivClass to search to extract image * @param htmlType HTML tag to extract image (img) */ @@ -44,29 +45,25 @@ public abstract class NumberedCommande implements Commande{ try { logger.debug("Checking max..."); maxNumber = LimitChecker.doYourJob(baseURL, 2, urlSuffix); - logger.info("Limit is "+maxNumber); + logger.info("Limit is " + maxNumber); } catch (IOException e) { logger.catching(e); } } - public NumberedCommande(Logger logger, String baseURL, String urlSuffix){ + public NumberedCommande(Logger logger, String baseURL, String urlSuffix) { this(logger, baseURL, urlSuffix, null, null); } @Override public void action(String[] args, MessageReceivedEvent event) { - try - { - if(args.length == 0) - { - String result = poll(); - event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n"+result).queue(); + try { + if (args.length == 0) { + String result = poll(); + event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n" + result).queue(); - } - else - { + } else { switch (args[0].toLowerCase()) { case "update": logger.info("update commande from " + event.getMessage().getAuthor().getName()); @@ -139,7 +136,7 @@ public abstract class NumberedCommande implements Commande{ protected void checkRandom() throws IOException { logger.trace("Queue size: " + randomQueue.size()); - if(randomQueue.isEmpty()){ + if (randomQueue.isEmpty()) { logger.debug("Queue empty, update it."); completeRandom(); } diff --git a/src/main/java/net/Broken/Tools/Command/SlashCommandLoader.java b/src/main/java/net/Broken/Tools/Command/SlashCommandLoader.java index 4e2807f..be4a2ca 100644 --- a/src/main/java/net/Broken/Tools/Command/SlashCommandLoader.java +++ b/src/main/java/net/Broken/Tools/Command/SlashCommandLoader.java @@ -1,13 +1,11 @@ package net.Broken.Tools.Command; -import net.Broken.Commande; import net.Broken.MainBot; import net.Broken.SlashCommand; import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.requests.restaction.CommandListUpdateAction; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.jboss.jandex.Main; import org.reflections.Reflections; import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; @@ -45,10 +43,11 @@ public class SlashCommandLoader { if (command.isAnnotationPresent(NoDev.class) && MainBot.dev) { logger.warn("Command disabled in dev mode"); - }else{ + } else { try { MainBot.slashCommands.put(name, command.getDeclaredConstructor().newInstance()); - } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + } catch (InstantiationException | IllegalAccessException | InvocationTargetException | + NoSuchMethodException e) { logger.error("Failed to load " + name + "!"); } @@ -61,12 +60,12 @@ public class SlashCommandLoader { } } - public static void registerSlashCommands(CommandListUpdateAction commandListUpdateAction){ - MainBot.slashCommands.forEach((k,v)->{ + public static void registerSlashCommands(CommandListUpdateAction commandListUpdateAction) { + MainBot.slashCommands.forEach((k, v) -> { CommandData command = new CommandData(k, v.getDescription()); - if(v.getOptions() != null) + if (v.getOptions() != null) command.addOptions(v.getOptions()); - if(v.getSubcommands() != null){ + if (v.getSubcommands() != null) { command.addSubcommands(v.getSubcommands()); } commandListUpdateAction.addCommands(command); diff --git a/src/main/java/net/Broken/Tools/DayListener/DayListener.java b/src/main/java/net/Broken/Tools/DayListener/DayListener.java index 9954de1..761fcf8 100644 --- a/src/main/java/net/Broken/Tools/DayListener/DayListener.java +++ b/src/main/java/net/Broken/Tools/DayListener/DayListener.java @@ -1,6 +1,5 @@ package net.Broken.Tools.DayListener; -import net.Broken.Commands.Spam; -import net.dv8tion.jda.api.exceptions.RateLimitedException; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,15 +11,14 @@ import java.util.GregorianCalendar; * Day change listener */ public class DayListener extends Thread { + private static DayListener INSTANCE = new DayListener(); private Logger logger = LogManager.getLogger(); private Calendar calendar; private int previousDay; - /** * List of listeners to need to be triggered */ private ArrayList listeners = new ArrayList<>(); - private static DayListener INSTANCE = new DayListener(); /** @@ -34,29 +32,30 @@ public class DayListener extends Thread { /** * Singleton + * * @return Unique DayListener instance. */ - public static DayListener getInstance() - { + public static DayListener getInstance() { return INSTANCE; } /** * Add Listener who will be triggered + * * @param listener */ - public void addListener(NewDayListener listener){ + public void addListener(NewDayListener listener) { listeners.add(listener); } /** * Trigger all listeners */ - public void trigger(){ - for(NewDayListener listener : listeners){ - try{ + public void trigger() { + for (NewDayListener listener : listeners) { + try { listener.onNewDay(); - }catch (Exception ex){ + } catch (Exception ex) { logger.error("Fail to execute day change !"); logger.catching(ex); } @@ -69,11 +68,9 @@ public class DayListener extends Thread { */ @Override public void run() { - while(true) - { + while (true) { calendar = Calendar.getInstance(); - if(calendar.get(GregorianCalendar.DAY_OF_MONTH) != previousDay) - { + if (calendar.get(GregorianCalendar.DAY_OF_MONTH) != previousDay) { LogManager.getLogger().info("New day triggered!"); trigger(); previousDay = calendar.get(GregorianCalendar.DAY_OF_MONTH); diff --git a/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java b/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java index eb9e1a2..eccddf9 100644 --- a/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java +++ b/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java @@ -7,7 +7,6 @@ import net.Broken.MainBot; import net.Broken.SpringContext; import net.Broken.Tools.DayListener.NewDayListener; import net.Broken.Tools.FindContentOnWebPage; -import net.Broken.Tools.Redirection; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.TextChannel; import org.apache.logging.log4j.LogManager; @@ -15,26 +14,24 @@ import org.apache.logging.log4j.Logger; import org.springframework.context.ApplicationContext; import java.io.IOException; -import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Calendar; -import java.util.Date; import java.util.List; /** * Daily Listener for DailyMadame */ -public class DailyMadame implements NewDayListener{ +public class DailyMadame implements NewDayListener { private GuildPreferenceRepository guildPreferenceRepository; + private Logger logger = LogManager.getLogger(); public DailyMadame() { ApplicationContext context = SpringContext.getAppContext(); guildPreferenceRepository = (GuildPreferenceRepository) context.getBean("guildPreferenceRepository"); } - private Logger logger = LogManager.getLogger(); @Override public void onNewDay() { @@ -43,7 +40,7 @@ public class DailyMadame implements NewDayListener{ String imgUrl; try { int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); - if(day != Calendar.MONDAY && day != Calendar.SUNDAY){ + if (day != Calendar.MONDAY && day != Calendar.SUNDAY) { LocalDate now = LocalDate.now().minusDays(1); String date = DateTimeFormatter.ofPattern("yyyy/MM/dd").format(now); @@ -52,41 +49,37 @@ public class DailyMadame implements NewDayListener{ imgUrl = FindContentOnWebPage.doYourJob(url, "post-content", "img"); - }else { + } else { Madame command = (Madame) MainBot.commandes.get("madame"); imgUrl = command.poll(); } - - - for(Guild guild : guilds){ + for (Guild guild : guilds) { TextChannel chanel = null; logger.debug(guild.getName()); List guildPref = guildPreferenceRepository.findByGuildId(guild.getId()); - if( guildPref.size() > 0 && guildPref.get(0).isDailyMadame()){ - for(TextChannel iterator : guild.getTextChannels()) - { - if(iterator.isNSFW() && iterator.canTalk()){ + if (guildPref.size() > 0 && guildPref.get(0).isDailyMadame()) { + for (TextChannel iterator : guild.getTextChannels()) { + if (iterator.isNSFW() && iterator.canTalk()) { chanel = iterator; logger.debug("break: " + chanel.getName()); break; } } - if(chanel != null){ + if (chanel != null) { chanel.sendMessage("Madame of the day :kissing_heart: \n" + imgUrl).queue(); - } - else { + } else { logger.info("No NSFW chanel found for " + guild.getName() + ", ignoring it!"); } } } - }catch (IOException e) { + } catch (IOException e) { logger.catching(e); } } diff --git a/src/main/java/net/Broken/Tools/DayListener/Listeners/ResetSpam.java b/src/main/java/net/Broken/Tools/DayListener/Listeners/ResetSpam.java index ca41ece..7bbf006 100644 --- a/src/main/java/net/Broken/Tools/DayListener/Listeners/ResetSpam.java +++ b/src/main/java/net/Broken/Tools/DayListener/Listeners/ResetSpam.java @@ -4,8 +4,6 @@ import net.Broken.Commands.Spam; import net.Broken.Tools.DayListener.NewDayListener; import net.dv8tion.jda.api.exceptions.RateLimitedException; -import java.util.GregorianCalendar; - /** * Daily spam reset */ @@ -16,7 +14,7 @@ public class ResetSpam implements NewDayListener { String str[] = {"all"}; try { - spam.reset(null,str); + spam.reset(null, str); } catch (RateLimitedException e) { e.printStackTrace(); } diff --git a/src/main/java/net/Broken/Tools/EmbedMessageUtils.java b/src/main/java/net/Broken/Tools/EmbedMessageUtils.java index d5f865a..34f9636 100644 --- a/src/main/java/net/Broken/Tools/EmbedMessageUtils.java +++ b/src/main/java/net/Broken/Tools/EmbedMessageUtils.java @@ -1,9 +1,7 @@ package net.Broken.Tools; -import net.Broken.DB.Entity.GuildPreferenceEntity; import net.Broken.MainBot; import net.Broken.audio.Youtube.SearchResult; -import net.Broken.audio.Youtube.YoutubeTools; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,8 +9,6 @@ import net.dv8tion.jda.api.entities.MessageEmbed; import java.awt.*; import java.io.FileNotFoundException; import java.time.Instant; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; @@ -32,13 +28,13 @@ public class EmbedMessageUtils { } - public static MessageEmbed getNoPrivate(){ + public static MessageEmbed getNoPrivate() { EmbedBuilder temp = new EmbedBuilder().setTitle(":warning: Command not available in private :warning:").setDescription(":arrow_right: Use `//help` to see the available commands.").setColor(Color.red); return buildStandar(temp); } - public static MessageEmbed getMusicError(String message){ - return new EmbedBuilder().setTitle(":warning: Musique Error :warning:").setDescription(":arrow_right: "+message).setFooter("'//help music' for more info.",MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).setColor(Color.red).setFooter(MainBot.url, MainBot.jda.getSelfUser().getAvatarUrl()).build(); + public static MessageEmbed getMusicError(String message) { + return new EmbedBuilder().setTitle(":warning: Musique Error :warning:").setDescription(":arrow_right: " + message).setFooter("'//help music' for more info.", MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).setColor(Color.red).setFooter(MainBot.url, MainBot.jda.getSelfUser().getAvatarUrl()).build(); } @@ -57,7 +53,7 @@ public class EmbedMessageUtils { public static MessageEmbed getHelp(String command) throws FileNotFoundException { String name = command.substring(0, 1).toUpperCase() + command.substring(1).toLowerCase(); - String message = new ResourceLoader().getFile("Help/"+name+"/en/main.md"); + String message = new ResourceLoader().getFile("Help/" + name + "/en/main.md"); EmbedBuilder temp = new EmbedBuilder().setTitle(":question: " + command.substring(0, 1).toUpperCase() + command.substring(1).toLowerCase() + " :question: ").setDescription(message).setColor(Color.green); return buildStandar(temp); } @@ -76,7 +72,7 @@ public class EmbedMessageUtils { } public static MessageEmbed getSpamError(String message, String sub) { - return new EmbedBuilder().setTitle(":warning: Spam Error :warning: ").setDescription(message).setColor(Color.red).setFooter("'//help spam "+sub+"' for more info.", MainBot.jda.getSelfUser().getAvatarUrl()).setThumbnail(MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).build(); + return new EmbedBuilder().setTitle(":warning: Spam Error :warning: ").setDescription(message).setColor(Color.red).setFooter("'//help spam " + sub + "' for more info.", MainBot.jda.getSelfUser().getAvatarUrl()).setThumbnail(MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).build(); } public static MessageEmbed getSpamInfo(String message) { @@ -92,49 +88,47 @@ public class EmbedMessageUtils { return buildStandar(new EmbedBuilder().setTitle(":pencil: Web Registration :pencil:").setDescription(message).setColor(Color.green)); } - public static MessageEmbed getInternalError(){ + public static MessageEmbed getInternalError() { return buildStandar(getError("I... I... I don't feel so good ~~mr stark~~... :thermometer_face: \nPlease contact my developer!").setImage("https://i.imgur.com/anKv8U5.gif")); } - public static MessageEmbed buildStandar(EmbedBuilder embedBuilder){ + public static MessageEmbed buildStandar(EmbedBuilder embedBuilder) { return embedBuilder.setFooter(MainBot.url, MainBot.jda.getSelfUser().getAvatarUrl()).setThumbnail(MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).build(); } - public static MessageEmbed getUnautorized(){ + public static MessageEmbed getUnautorized() { return buildStandar(getError("You're not powerful enough to do that slave !").setImage("https://i.imgur.com/0OSsdvW.gif")); } public static MessageEmbed getHelpList(String role, String list) throws FileNotFoundException { String message = new ResourceLoader().getFile("Help/main.md"); message = message.replace("@list", list); - return new EmbedBuilder().setTitle("Bot Command ("+role+")").setDescription(message).setFooter("Use '//help ' for more info",MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).setColor(Color.green).setThumbnail(MainBot.jda.getSelfUser().getAvatarUrl()).build(); + return new EmbedBuilder().setTitle("Bot Command (" + role + ")").setDescription(message).setFooter("Use '//help ' for more info", MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).setColor(Color.green).setThumbnail(MainBot.jda.getSelfUser().getAvatarUrl()).build(); } public static MessageEmbed getLastMessageFromTextChannel(HashMap message) { EmbedBuilder temp = new EmbedBuilder().setTitle("Channel uses checker").setDescription("Last message date for channels:").setColor(Color.green); - for(Map.Entry entry : message.entrySet()) { - temp.addField(entry.getKey(),entry.getValue(), false); + for (Map.Entry entry : message.entrySet()) { + temp.addField(entry.getKey(), entry.getValue(), false); } return buildStandar(temp); } - public static MessageEmbed getReportUsersError(){ + public static MessageEmbed getReportUsersError() { return new EmbedBuilder().setTitle(":warning: Command error :warning: ").setDescription("").setColor(Color.red).setFooter("'//help move' for more info.", MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).build(); } - public static MessageEmbed searchResult(SearchResult result){ + public static MessageEmbed searchResult(SearchResult result) { EmbedBuilder builder = new EmbedBuilder() .setColor(Color.CYAN) .setTitle(result.title) .setImage(result.imageUrl) .addField("Duration: ", result.duration, false) - .addField("URL:","https://www.youtube.com/watch?v="+result.id,false) + .addField("URL:", "https://www.youtube.com/watch?v=" + result.id, false) .addField("Chanel:", result.channelTittle, false); return buildStandar(builder); } - - } \ No newline at end of file diff --git a/src/main/java/net/Broken/Tools/FindContentOnWebPage.java b/src/main/java/net/Broken/Tools/FindContentOnWebPage.java index a9d481e..d30142d 100644 --- a/src/main/java/net/Broken/Tools/FindContentOnWebPage.java +++ b/src/main/java/net/Broken/Tools/FindContentOnWebPage.java @@ -6,10 +6,11 @@ import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; -public class FindContentOnWebPage { +public class FindContentOnWebPage { /** * Find picture URL on webPage - * @param url Web Page URL + * + * @param url Web Page URL * @param divClass Div class where the picture is * @param htmlType HTML tag of image (img) * @return Picture URL @@ -18,13 +19,13 @@ public class FindContentOnWebPage { public static String doYourJob(String url, String divClass, String htmlType) throws IOException { // System.out.println(url); String source = getSourceUrl(url); - int divIndex = source.indexOf("class=\""+divClass); + int divIndex = source.indexOf("class=\"" + divClass); String sub = source.substring(divIndex); // System.out.println(sub); - sub = sub.replace(divClass,""); + sub = sub.replace(divClass, ""); sub = sub.substring(sub.indexOf(htmlType)); sub = sub.substring(sub.indexOf("src")); - sub = sub.replace("src=\"",""); + sub = sub.replace("src=\"", ""); String[] split = sub.split("\""); // System.out.println(split[0]); return split[0]; @@ -32,6 +33,7 @@ public class FindContentOnWebPage { /** * Get source code of web page + * * @param url Web page URL * @return Web page source as String * @throws IOException @@ -39,7 +41,7 @@ public class FindContentOnWebPage { public static String getSourceUrl(String url) throws IOException { URL urlC = new URL(url); URLConnection yc = urlC.openConnection(); - yc.setRequestProperty("User-Agent","Googlebot/2.1 (+http://www.googlebot.com/bot.html)"); + yc.setRequestProperty("User-Agent", "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"); BufferedReader in = new BufferedReader(new InputStreamReader( yc.getInputStream(), "UTF-8")); String inputLine; diff --git a/src/main/java/net/Broken/Tools/LimitChecker.java b/src/main/java/net/Broken/Tools/LimitChecker.java index 5798f18..4d7caa0 100644 --- a/src/main/java/net/Broken/Tools/LimitChecker.java +++ b/src/main/java/net/Broken/Tools/LimitChecker.java @@ -3,9 +3,7 @@ package net.Broken.Tools; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; - import java.io.IOException; -import java.net.HttpURLConnection; import java.net.URL; /** @@ -17,7 +15,8 @@ public class LimitChecker { /** * Check max page url for web site like baseURL.com/number-2/ - * @param baseURL Base url without numbers + * + * @param baseURL Base url without numbers * @param minNumber Start number * @return max Number * @throws IOException @@ -28,57 +27,53 @@ public class LimitChecker { boolean redirected = false; Redirection redirection = new Redirection(); - while(!redirected ) - { - String origin = baseURL+number+suffix; + while (!redirected) { + String origin = baseURL + number + suffix; String newUrl = redirection.get(origin); - logger.trace("Origin URL: "+origin+" Result: "+newUrl); - if(newUrl.equals(origin)) + logger.trace("Origin URL: " + origin + " Result: " + newUrl); + if (newUrl.equals(origin)) number += 500; else redirected = true; } - number-=400; + number -= 400; redirected = false; - logger.debug("First pass: "+number); - while(!redirected ) - { - String origin = baseURL+number+suffix; + logger.debug("First pass: " + number); + while (!redirected) { + String origin = baseURL + number + suffix; String newUrl = redirection.get(origin); - logger.trace("Origin URL: "+origin+" Result: "+newUrl); - if(newUrl.equals(origin)) + logger.trace("Origin URL: " + origin + " Result: " + newUrl); + if (newUrl.equals(origin)) number += 100; else redirected = true; } - number-=90; + number -= 90; redirected = false; - logger.debug("Second pass: "+number); - while(!redirected ) - { - String origin = baseURL+number+suffix; + logger.debug("Second pass: " + number); + while (!redirected) { + String origin = baseURL + number + suffix; String newUrl = redirection.get(origin); - logger.trace("Origin URL: "+origin+" Result: "+newUrl); - if(newUrl.equals(origin)) + logger.trace("Origin URL: " + origin + " Result: " + newUrl); + if (newUrl.equals(origin)) number += 10; else redirected = true; } - number-=9; + number -= 9; redirected = false; - logger.debug("Third pass: "+number); - while(!redirected ) - { - String origin = baseURL+number+suffix; + logger.debug("Third pass: " + number); + while (!redirected) { + String origin = baseURL + number + suffix; String newUrl = redirection.get(origin); - logger.trace("Origin URL: "+origin+" Result: "+newUrl); - if(newUrl.equals(origin)) + logger.trace("Origin URL: " + origin + " Result: " + newUrl); + if (newUrl.equals(origin)) number += 1; else redirected = true; } - number-=1; - logger.debug("Final pass: "+number); + number -= 1; + logger.debug("Final pass: " + number); return number; diff --git a/src/main/java/net/Broken/Tools/MessageTimeOut.java b/src/main/java/net/Broken/Tools/MessageTimeOut.java index 10d345a..b19e430 100644 --- a/src/main/java/net/Broken/Tools/MessageTimeOut.java +++ b/src/main/java/net/Broken/Tools/MessageTimeOut.java @@ -5,14 +5,13 @@ import net.dv8tion.jda.api.exceptions.ErrorResponseException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Auto dell message util */ -public class MessageTimeOut extends Thread{ +public class MessageTimeOut extends Thread { List messages; int second; Logger logger = LogManager.getLogger(); @@ -30,7 +29,7 @@ public class MessageTimeOut extends Thread{ @Override public void run() { logger.debug("Timer for message deletion stated..."); - for(int i=0; i thisUserHistory = new ArrayList<>();//Creer tableau pour la copie int i = 0; // variable de parcours de "historique" int nbMessage = 3; int spam = 0; - if(MainBot.spamUtils.containsKey(user) && MainBot.spamUtils.get(user).isOnSpam()){ + if (MainBot.spamUtils.containsKey(user) && MainBot.spamUtils.get(user).isOnSpam()) { MainBot.spamUtils.get(user).addMessage(event.getMessage()); } /******************************************** * si l'USER a deja envoyé un message * ********************************************/ - if(MainBot.historique.containsKey(user))// Si le user a deja posté un message + if (MainBot.historique.containsKey(user))// Si le user a deja posté un message { /******************************************** * COPIE des infos d"historique" vers TOI[] * @@ -58,8 +58,8 @@ public class Moderateur { /******************************************** * Ajout dernier message recu + dans histo' * ********************************************/ - thisUserHistory.add(0,event.getMessage()); - if(thisUserHistory.size()>nbMessage+1) + thisUserHistory.add(0, event.getMessage()); + if (thisUserHistory.size() > nbMessage + 1) thisUserHistory.remove(4); MainBot.historique.put(user, thisUserHistory);// On ajoute dans l'historique TOI @@ -68,18 +68,17 @@ public class Moderateur { *****************************/ int equalCont = 0; String oldMessage = ""; - for(Message aMessage : thisUserHistory){ - if(aMessage.getContentRaw().equals(oldMessage)) + for (Message aMessage : thisUserHistory) { + if (aMessage.getContentRaw().equals(oldMessage)) equalCont++; oldMessage = aMessage.getContentRaw(); } - if(equalCont >= nbMessage){ + if (equalCont >= nbMessage) { spam = 1; - logger.info("Spam detected for "+user.getEffectiveName()+"with 3 identical messages : "); - for(Message aMessage : thisUserHistory) - { - logger.info("\t - "+aMessage.getContentRaw()); + logger.info("Spam detected for " + user.getEffectiveName() + "with 3 identical messages : "); + for (Message aMessage : thisUserHistory) { + logger.info("\t - " + aMessage.getContentRaw()); } MainBot.historique.put(user, new ArrayList()); } @@ -90,7 +89,7 @@ public class Moderateur { ********************************************/ // si le user n'a pas encore posté de message // on ajoute le dernier message dans "historique" - thisUserHistory.add(0,event.getMessage()); + thisUserHistory.add(0, event.getMessage()); MainBot.historique.put(user, thisUserHistory); } @@ -99,28 +98,25 @@ public class Moderateur { **********************************/ - - /******************************************** * Comptage du nombre de message * ********************************************/ - if(MainBot.message_compteur.containsKey(user))// Si le user a deja posté un message + if (MainBot.message_compteur.containsKey(user))// Si le user a deja posté un message { int cpt = MainBot.message_compteur.get(user); cpt++; //System.out.println("compteur : "+cpt); MainBot.message_compteur.put(user, cpt); - if(cpt > 5){ - MainBot.message_compteur.put(user,0); + if (cpt > 5) { + MainBot.message_compteur.put(user, 0); spam = 1; - logger.info("Spam detected for "+user.getEffectiveName()+"with 5 messages in 5 secondes: "); + logger.info("Spam detected for " + user.getEffectiveName() + "with 5 messages in 5 secondes: "); ArrayList histo = MainBot.historique.get(user); - for (Message aMessage:histo ) - { + for (Message aMessage : histo) { // logger.debug("\t*"+aMessage.getContent()); } } - }else{ + } else { MainBot.message_compteur.put(user, 1); } diff --git a/src/main/java/net/Broken/Tools/PrivateMessage.java b/src/main/java/net/Broken/Tools/PrivateMessage.java index a5c2ca1..c30fcab 100644 --- a/src/main/java/net/Broken/Tools/PrivateMessage.java +++ b/src/main/java/net/Broken/Tools/PrivateMessage.java @@ -12,11 +12,12 @@ public class PrivateMessage { /** * Auto open private channel and send message - * @param user User to send message + * + * @param user User to send message * @param message Message to send - * @param logger Logger + * @param logger Logger */ - public static void send(User user, String message, Logger logger){ + public static void send(User user, String message, Logger logger) { user.openPrivateChannel().complete().sendMessage(message).queue(); @@ -24,12 +25,13 @@ public class PrivateMessage { /** * Auto open private channel and send message - * @param user User to send message + * + * @param user User to send message * @param message Message to send - * @param logger Logger + * @param logger Logger * @return Sended Message */ - public static Message send(User user, MessageEmbed message, Logger logger){ + public static Message send(User user, MessageEmbed message, Logger logger) { return user.openPrivateChannel().complete().sendMessage(message).complete(); } diff --git a/src/main/java/net/Broken/Tools/Redirection.java b/src/main/java/net/Broken/Tools/Redirection.java index ca3b67f..9ec1493 100644 --- a/src/main/java/net/Broken/Tools/Redirection.java +++ b/src/main/java/net/Broken/Tools/Redirection.java @@ -4,34 +4,34 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.net.URLConnection; /** * Redirection URL Util */ public class Redirection { - public Redirection(){ + public Redirection() { } /** * Return Redirected URL + * * @param urlString Source URL * @return Redirected URL * @throws IOException */ public String get(String urlString) throws IOException { - System.setProperty("http.agent","Googlebot"); + System.setProperty("http.agent", "Googlebot"); HttpURLConnection con = (HttpURLConnection) new URL(urlString).openConnection(); - con.setRequestProperty("User-Agent","Googlebot/2.1 (+http://www.googlebot.com/bot.html)"); + con.setRequestProperty("User-Agent", "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"); //System.out.println( "orignal url: " + con.getURL() ); con.connect(); //System.out.println( "connected url: " + con.getURL() ); InputStream is = null; - if(con.getResponseCode() != 200) + if (con.getResponseCode() != 200) return ""; is = con.getInputStream(); - String urlReturn=con.getURL().toString(); + String urlReturn = con.getURL().toString(); //System.out.println( "redirected url: " + con.getURL() ); is.close(); @@ -39,5 +39,4 @@ public class Redirection { } - } diff --git a/src/main/java/net/Broken/Tools/ResourceLoader.java b/src/main/java/net/Broken/Tools/ResourceLoader.java index e540fd5..7c646fd 100644 --- a/src/main/java/net/Broken/Tools/ResourceLoader.java +++ b/src/main/java/net/Broken/Tools/ResourceLoader.java @@ -3,20 +3,18 @@ package net.Broken.Tools; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.io.File; import java.io.FileNotFoundException; -import java.io.IOException; import java.io.InputStream; import java.util.Scanner; - public class ResourceLoader { private Logger logger = LogManager.getLogger(); /** * Get file contents as string for resource folder + * * @param fileName Requested file * @return File contents as string * @throws FileNotFoundException @@ -28,7 +26,7 @@ public class ResourceLoader { //Get file from resources folder ClassLoader classLoader = getClass().getClassLoader(); InputStream file = classLoader.getResourceAsStream(fileName); - if(file == null) + if (file == null) throw new FileNotFoundException(); try (Scanner scanner = new Scanner(file, "UTF-8")) { diff --git a/src/main/java/net/Broken/Tools/SettingsUtils.java b/src/main/java/net/Broken/Tools/SettingsUtils.java index 1d4e9c9..9ec2f1d 100644 --- a/src/main/java/net/Broken/Tools/SettingsUtils.java +++ b/src/main/java/net/Broken/Tools/SettingsUtils.java @@ -17,22 +17,14 @@ import org.apache.logging.log4j.Logger; import org.springframework.context.ApplicationContext; import java.util.ArrayList; -import java.util.Collections; import java.util.List; public class SettingsUtils { private static SettingsUtils INSTANCE; private final Logger logger = LogManager.getLogger(); - - public static SettingsUtils getInstance() { - return (INSTANCE == null) ? new SettingsUtils() : INSTANCE; - } - private final GuildPreferenceRepository guildPreferenceRepository; private final UserRepository userRepository; - - private SettingsUtils() { ApplicationContext context = SpringContext.getAppContext(); guildPreferenceRepository = (GuildPreferenceRepository) context.getBean("guildPreferenceRepository"); @@ -41,6 +33,10 @@ public class SettingsUtils { } + public static SettingsUtils getInstance() { + return (INSTANCE == null) ? new SettingsUtils() : INSTANCE; + } + /** * Extract all settings for displaying on webpage * diff --git a/src/main/java/net/Broken/Tools/TableRenderer.java b/src/main/java/net/Broken/Tools/TableRenderer.java index aa81a21..5b661e5 100644 --- a/src/main/java/net/Broken/Tools/TableRenderer.java +++ b/src/main/java/net/Broken/Tools/TableRenderer.java @@ -1,13 +1,13 @@ package net.Broken.Tools; +import org.apache.commons.lang3.StringUtils; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; -import org.apache.commons.lang3.StringUtils; - /** * Utils to render table in block code */ @@ -25,6 +25,7 @@ public class TableRenderer { /** * Set Table header(s) + * * @param header Header(s) as String */ public void setHeader(Object... header) { @@ -35,6 +36,7 @@ public class TableRenderer { /** * Add row to table + * * @param content Content(s) as string */ public void addRow(Object... content) { @@ -46,6 +48,7 @@ public class TableRenderer { /** * Change default empty string + * * @param str */ public void setEmptyString(String str) { @@ -72,7 +75,7 @@ public class TableRenderer { if (obj.size() > hIndex) normalized[vIndex][hIndex] = obj.get(hIndex).toString(); else - normalized[vIndex][hIndex] = this.empty+"s"; + normalized[vIndex][hIndex] = this.empty + "s"; } vIndex++; } @@ -86,7 +89,7 @@ public class TableRenderer { for (int hIndex = 0; hIndex < width; hIndex++) if (table[vIndex][hIndex].length() + padding > collums[hIndex]) collums[hIndex] = table[vIndex][hIndex].length() + padding; - collums[collums.length-1] -= padding; + collums[collums.length - 1] -= padding; return collums; } @@ -102,7 +105,7 @@ public class TableRenderer { String line = IntStream.range(0, strings.length) .mapToObj((i) -> buildElement(strings[i], widths[i], " ")) .collect(Collectors.joining("│ ")); - line = "│ "+ line + " │"; + line = "│ " + line + " │"; if (header) { String seperator = IntStream.range(0, strings.length) .mapToObj((i) -> buildElement("", widths[i], "═")) @@ -117,7 +120,7 @@ public class TableRenderer { String[][] table = normalizeTable(); int[] widths = getCollumnWidths(table, 1); return IntStream.range(0, table.length) - .mapToObj(i -> buildLine(table[i], widths, header != null && i==0)) + .mapToObj(i -> buildLine(table[i], widths, header != null && i == 0)) .collect(Collectors.joining("\n")); } } diff --git a/src/main/java/net/Broken/Tools/TimeConvertor.java b/src/main/java/net/Broken/Tools/TimeConvertor.java index 85348ce..dc0ea7f 100644 --- a/src/main/java/net/Broken/Tools/TimeConvertor.java +++ b/src/main/java/net/Broken/Tools/TimeConvertor.java @@ -3,15 +3,12 @@ package net.Broken.Tools; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; -import java.util.concurrent.TimeUnit; public class TimeConvertor { static Logger logger = LogManager.getLogger(); - public static ArrayList sToTime(long sec){ + + public static ArrayList sToTime(long sec) { final int MINUTES_IN_AN_HOUR = 60; final int SECONDS_IN_A_MINUTE = 60; diff --git a/src/main/java/net/Broken/Tools/TrueRandom.java b/src/main/java/net/Broken/Tools/TrueRandom.java index d809ecf..5a2b52a 100644 --- a/src/main/java/net/Broken/Tools/TrueRandom.java +++ b/src/main/java/net/Broken/Tools/TrueRandom.java @@ -9,7 +9,6 @@ import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.json.JSONArray; import org.json.JSONObject; import java.io.IOException; @@ -20,19 +19,16 @@ import java.util.List; public class TrueRandom { private static TrueRandom INSTANCE = new TrueRandom(); + private Logger logger = LogManager.getLogger(); + private String url = "https://api.random.org/json-rpc/2/invoke"; + private String apiKey = System.getenv("RANDOM_API_KEY"); + private TrueRandom() { + } public static TrueRandom getINSTANCE() { return INSTANCE; } - private Logger logger = LogManager.getLogger(); - - private String url = "https://api.random.org/json-rpc/2/invoke"; - private String apiKey = System.getenv("RANDOM_API_KEY"); - - private TrueRandom() { - } - public ArrayList getNumbers(int min, int max) throws IOException { HttpClient httpClient = HttpClientBuilder.create().build(); @@ -46,19 +42,18 @@ public class TrueRandom { int status = response.getStatusLine().getStatusCode(); logger.debug("Status: " + status); - if(status != 200){ + if (status != 200) { logger.error("Request fail! Status: " + status); throw new IOException(); } - InputStream responseIS = response.getEntity().getContent(); String content = IOUtils.toString(responseIS, "UTF-8"); logger.trace(content); JSONObject json = new JSONObject(content); - if(json.keySet().contains("error")){ + if (json.keySet().contains("error")) { logger.error("Request fail!"); logger.error("Request : " + postVal); logger.error("Response : " + content); diff --git a/src/main/java/net/Broken/Tools/UserManager/Exceptions/PasswordNotMatchException.java b/src/main/java/net/Broken/Tools/UserManager/Exceptions/PasswordNotMatchException.java index 0eeac2e..10d6627 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Exceptions/PasswordNotMatchException.java +++ b/src/main/java/net/Broken/Tools/UserManager/Exceptions/PasswordNotMatchException.java @@ -1,4 +1,4 @@ package net.Broken.Tools.UserManager.Exceptions; -public class PasswordNotMatchException extends Exception{ +public class PasswordNotMatchException extends Exception { } diff --git a/src/main/java/net/Broken/Tools/UserManager/Exceptions/UnknownTokenException.java b/src/main/java/net/Broken/Tools/UserManager/Exceptions/UnknownTokenException.java index e72b52e..8baead3 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Exceptions/UnknownTokenException.java +++ b/src/main/java/net/Broken/Tools/UserManager/Exceptions/UnknownTokenException.java @@ -1,4 +1,4 @@ package net.Broken.Tools.UserManager.Exceptions; -public class UnknownTokenException extends Exception{ +public class UnknownTokenException extends Exception { } diff --git a/src/main/java/net/Broken/Tools/UserManager/Exceptions/UserNotFoundException.java b/src/main/java/net/Broken/Tools/UserManager/Exceptions/UserNotFoundException.java index 232c53c..bf605f1 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Exceptions/UserNotFoundException.java +++ b/src/main/java/net/Broken/Tools/UserManager/Exceptions/UserNotFoundException.java @@ -1,4 +1,4 @@ package net.Broken.Tools.UserManager.Exceptions; -public class UserNotFoundException extends Exception{ +public class UserNotFoundException extends Exception { } diff --git a/src/main/java/net/Broken/Tools/UserManager/Oauth.java b/src/main/java/net/Broken/Tools/UserManager/Oauth.java index 97a38d4..7c388d0 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Oauth.java +++ b/src/main/java/net/Broken/Tools/UserManager/Oauth.java @@ -18,21 +18,21 @@ import java.util.List; public class Oauth { private static Oauth INSTANCE = new Oauth(); - public static Oauth getInstance(){ return INSTANCE; } - Logger logger = LogManager.getLogger(); private String baseUrl = "https://discordapp.com/api"; private String mePath = "/users/@me"; + public static Oauth getInstance() { + return INSTANCE; + } - - private JSONObject getUserId(String token){ + private JSONObject getUserId(String token) { StringBuffer content = new StringBuffer(); try { - String httpsURL = baseUrl+mePath; + String httpsURL = baseUrl + mePath; URL myUrl = new URL(httpsURL); - HttpURLConnection con = (HttpURLConnection)myUrl.openConnection(); - con.setRequestProperty("Authorization", "Bearer "+token); + HttpURLConnection con = (HttpURLConnection) myUrl.openConnection(); + con.setRequestProperty("Authorization", "Bearer " + token); con.setRequestProperty("User-Agent", "DiscordBot (claptrapbot.com, 0.1)"); con.setRequestMethod("GET"); logger.debug("Response code: " + con.getResponseCode()); @@ -56,15 +56,15 @@ public class Oauth { } - public UserEntity getUserEntity(String token, UserRepository userRepository, PasswordEncoder passwordEncoder){ + public UserEntity getUserEntity(String token, UserRepository userRepository, PasswordEncoder passwordEncoder) { JSONObject discorResponse = getUserId(token); List userEntitys = userRepository.findByJdaId(discorResponse.getString("id")); - if(userEntitys.size() != 0){ + if (userEntitys.size() != 0) { return userEntitys.get(0); - }else{ + } else { User jdaUser = MainBot.jda.getUserById(discorResponse.getString("id")); UserEntity user; - if( jdaUser == null) + if (jdaUser == null) user = new UserEntity(discorResponse.getString("username"), discorResponse.getString("id"), passwordEncoder); else user = new UserEntity(MainBot.jda.getUserById(discorResponse.getString("id")), passwordEncoder); diff --git a/src/main/java/net/Broken/Tools/UserManager/PasswordResetUtils.java b/src/main/java/net/Broken/Tools/UserManager/PasswordResetUtils.java index e5a5a57..8700330 100644 --- a/src/main/java/net/Broken/Tools/UserManager/PasswordResetUtils.java +++ b/src/main/java/net/Broken/Tools/UserManager/PasswordResetUtils.java @@ -15,17 +15,16 @@ import org.springframework.security.crypto.password.PasswordEncoder; import java.util.List; public class PasswordResetUtils { + private static PasswordResetUtils INSTANCE = new PasswordResetUtils(); private Logger logger = LogManager.getLogger(); private PasswordEncoder passwordEncoder; private PendingPwdResetRepository pendingPwdResetRepository; private UserRepository userRepository; - private static PasswordResetUtils INSTANCE = new PasswordResetUtils(); - /** * Private default constructor */ - private PasswordResetUtils(){ + private PasswordResetUtils() { ApplicationContext context = SpringContext.getAppContext(); passwordEncoder = (PasswordEncoder) context.getBean("passwordEncoder"); pendingPwdResetRepository = (PendingPwdResetRepository) context.getBean("pendingPwdResetRepository"); @@ -35,13 +34,14 @@ public class PasswordResetUtils { /** * Singleton + * * @return Unique PasswordResetUtils instance */ - public static PasswordResetUtils getInstance(){ + public static PasswordResetUtils getInstance() { return INSTANCE; } - public String resetRequest(UserEntity userEntity){ + public String resetRequest(UserEntity userEntity) { String token = UserUtils.getInstance().generateCheckToken(); String encodedToken = passwordEncoder.encode(token); PendingPwdResetEntity entity = new PendingPwdResetEntity(userEntity, encodedToken); @@ -51,10 +51,10 @@ public class PasswordResetUtils { public void changePass(UserEntity userEntity, String token, String newPassword) throws UserNotFoundException, TokenNotMatch { List dbResults = pendingPwdResetRepository.findByUserEntity(userEntity); - if(dbResults.size() == 0) + if (dbResults.size() == 0) throw new UserNotFoundException(); PendingPwdResetEntity pendingPwdReset = dbResults.get(0); - if(!passwordEncoder.matches(token, pendingPwdReset.getSecurityToken())) + if (!passwordEncoder.matches(token, pendingPwdReset.getSecurityToken())) throw new TokenNotMatch(); userEntity.setPassword(passwordEncoder.encode(newPassword)); diff --git a/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java b/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java index 01d0115..00795b1 100644 --- a/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java +++ b/src/main/java/net/Broken/Tools/UserManager/Stats/GuildStats.java @@ -1,6 +1,6 @@ package net.Broken.Tools.UserManager.Stats; -public class GuildStats{ +public class GuildStats { public String userName; public int rank; public String avatarUrl; diff --git a/src/main/java/net/Broken/Tools/UserManager/UserUtils.java b/src/main/java/net/Broken/Tools/UserManager/UserUtils.java index df62c79..6a6c05e 100644 --- a/src/main/java/net/Broken/Tools/UserManager/UserUtils.java +++ b/src/main/java/net/Broken/Tools/UserManager/UserUtils.java @@ -23,41 +23,43 @@ import java.util.UUID; public class UserUtils { - private Logger logger = LogManager.getLogger(); - private static UserUtils INSTANCE = new UserUtils(); + private Logger logger = LogManager.getLogger(); /** * Private default constructor */ - private UserUtils(){} + private UserUtils() { + } /** * Singleton + * * @return Unique UserUtils instance */ - public static UserUtils getInstance(){ + public static UserUtils getInstance() { return INSTANCE; } /** * Check if user exist on Guild, if exist, generate and send checkTocken, create entry on PendingUser DB + * * @param pendingUserRepository Pending user DB interface - * @param userRepository User DB interface - * @param passwordEncoder Password encoder - * @param userInfo Received data + * @param userRepository User DB interface + * @param passwordEncoder Password encoder + * @param userInfo Received data * @return PendingUserEntity PK - * @throws UserNotFoundException User not found in guild + * @throws UserNotFoundException User not found in guild * @throws PasswordNotMatchException User already registered in PendingUser DB but password not match - * @throws UserAlreadyRegistered User already registered in User DB + * @throws UserAlreadyRegistered User already registered in User DB */ public String sendCheckToken(PendingUserRepository pendingUserRepository, UserRepository userRepository, PasswordEncoder passwordEncoder, UserInfoData userInfo) throws UserNotFoundException, PasswordNotMatchException, UserAlreadyRegistered { logger.info("New registration for " + userInfo.name); - List users = MainBot.jda.getUsersByName(userInfo.name,true); - if(users.size() < 1) + List users = MainBot.jda.getUsersByName(userInfo.name, true); + if (users.size() < 1) throw new UserNotFoundException(); User user = users.get(0); @@ -67,36 +69,34 @@ public class UserUtils { String token = ""; //Preference if exist on register user - if(userRepository.findByJdaId(user.getId()).size() > 0){ + if (userRepository.findByJdaId(user.getId()).size() > 0) { logger.warn("User already registered!"); throw new UserAlreadyRegistered(); } - //Check if exist in pading user Table List pendingUsers = pendingUserRepository.findByJdaId(user.getId()); - if(pendingUsers.size() != 0){ + if (pendingUsers.size() != 0) { PendingUserEntity thisUser = pendingUsers.get(0); - if(passwordEncoder.matches(userInfo.password, thisUser.getPassword())){ + if (passwordEncoder.matches(userInfo.password, thisUser.getPassword())) { logger.info("Password matches"); pendingUserEntity = thisUser; token = thisUser.getCheckToken(); - }else{ + } else { logger.warn("Password don't match!"); throw new PasswordNotMatchException(); } } - logger.info("Generating check Token..."); - if(token.equals("")){ + if (token.equals("")) { token = generateCheckToken(); } logger.info("Token generated: " + token); - if(pendingUserEntity == null) { + if (pendingUserEntity == null) { pendingUserEntity = new PendingUserEntity(user.getName(), user.getId(), token, passwordEncoder.encode(userInfo.password)); pendingUserEntity = pendingUserRepository.save(pendingUserEntity); } @@ -108,35 +108,34 @@ public class UserUtils { e.printStackTrace(); } - message = message.replace("%code",token); + message = message.replace("%code", token); MessageEmbed ebM = EmbedMessageUtils.getRegister(message); - PrivateMessage.send(user,ebM,logger); + PrivateMessage.send(user, ebM, logger); return pendingUserEntity.getId().toString(); - + } /** * Confirm user account + * * @param pendingUserRepository Pending user DB interface - * @param id UserPendingEntity PK to cofirm - * @param checkToken received token + * @param id UserPendingEntity PK to cofirm + * @param checkToken received token * @return PendingUserEntity - * @throws TokenNotMatch Given token not match + * @throws TokenNotMatch Given token not match * @throws UserNotFoundException User not found in Pending user DB */ - public PendingUserEntity confirmCheckToken(PendingUserRepository pendingUserRepository, int id, String checkToken ) throws TokenNotMatch, UserNotFoundException { + public PendingUserEntity confirmCheckToken(PendingUserRepository pendingUserRepository, int id, String checkToken) throws TokenNotMatch, UserNotFoundException { PendingUserEntity pendingUser = pendingUserRepository.findById(id); - if(pendingUser != null) { - if(pendingUser.getCheckToken().equals(checkToken)){ + if (pendingUser != null) { + if (pendingUser.getCheckToken().equals(checkToken)) { logger.info("Check Token match!"); - } - else{ + } else { logger.warn("Check token not match!"); throw new TokenNotMatch(); } - } - else{ + } else { logger.warn("Id not Found!"); throw new UserNotFoundException(); } @@ -145,27 +144,25 @@ public class UserUtils { /** * Get user Entity - * @param userRepository User DB interface + * + * @param userRepository User DB interface * @param passwordEncoder Password encoder - * @param userInfoData Received data + * @param userInfoData Received data * @return User Entity - * @throws UserNotFoundException User not found in User DB + * @throws UserNotFoundException User not found in User DB * @throws PasswordNotMatchException Given password not match */ public UserEntity getUser(UserRepository userRepository, PasswordEncoder passwordEncoder, UserInfoData userInfoData) throws UserNotFoundException, PasswordNotMatchException { List users = userRepository.findByName(userInfoData.name); - if(users.size()<1){ + if (users.size() < 1) { logger.warn("Login with unknown username: " + userInfoData.name); throw new UserNotFoundException(); - } - else{ + } else { UserEntity user = users.get(0); - if(passwordEncoder.matches(userInfoData.password,user.getPassword())){ + if (passwordEncoder.matches(userInfoData.password, user.getPassword())) { logger.info("Login successful for " + user.getName()); return user; - } - else - { + } else { logger.warn("Login fail for " + user.getName() + ", wrong password!"); throw new PasswordNotMatchException(); } @@ -174,38 +171,40 @@ public class UserUtils { /** * return token's UserEntity + * * @param userRepository User DB interface - * @param token Received token + * @param token Received token * @return User Entity * @throws UnknownTokenException Can't find token on User DB */ public UserEntity getUserWithApiToken(UserRepository userRepository, String token) throws UnknownTokenException { List users = userRepository.findByApiToken(token); - if(users.size() > 0){ + if (users.size() > 0) { return users.get(0); - } - else + } else throw new UnknownTokenException(); } /** * Generate API Token + * * @return UUID String TODO Find something more secure */ - public String generateApiToken(){ + public String generateApiToken() { return UUID.randomUUID().toString(); } /** * Generate short check token + * * @return check token as string */ - public String generateCheckToken(){ + public String generateCheckToken() { SecureRandom random = new SecureRandom(); - long longToken = Math.abs( random.nextLong() ); - String randomStr = Long.toString( longToken, 16 ); - randomStr = randomStr.substring(0,4); + long longToken = Math.abs(random.nextLong()); + String randomStr = Long.toString(longToken, 16); + randomStr = randomStr.substring(0, 4); randomStr = randomStr.toUpperCase(); return randomStr; } diff --git a/src/main/java/net/Broken/Tools/UserSpamUtils.java b/src/main/java/net/Broken/Tools/UserSpamUtils.java index 37b7163..4a0800b 100644 --- a/src/main/java/net/Broken/Tools/UserSpamUtils.java +++ b/src/main/java/net/Broken/Tools/UserSpamUtils.java @@ -15,33 +15,31 @@ public class UserSpamUtils { private boolean onSpam = false; private List messages; - public int getTimeLeft(){ - return minuteur.timeLeft; - } - - public int getMultip() - { - return multip; - } - public UserSpamUtils(Member user, List messages) { this.user = user; this.messages = messages; } + public int getTimeLeft() { + return minuteur.timeLeft; + } + + public int getMultip() { + return multip; + } + + public void setMultip(int multip) { + this.multip = multip; + } public void setMinuteur(AntiSpam.Minuteur minuteur) { this.minuteur = minuteur; } - public void launchMinuteur(){ + public void launchMinuteur() { minuteur.start(); } - public void setMultip(int multip) { - this.multip = multip; - } - public boolean isOnSpam() { return onSpam; } @@ -54,7 +52,7 @@ public class UserSpamUtils { return user; } - public void addMessage(Message message){ + public void addMessage(Message message) { messages.add(message); } @@ -62,7 +60,7 @@ public class UserSpamUtils { return messages; } - public void clearAndAdd(Message message){ + public void clearAndAdd(Message message) { messages.clear(); messages.add(message); } diff --git a/src/main/java/net/Broken/audio/AudioM.java b/src/main/java/net/Broken/audio/AudioM.java index 3462c5f..d61faaf 100644 --- a/src/main/java/net/Broken/audio/AudioM.java +++ b/src/main/java/net/Broken/audio/AudioM.java @@ -17,7 +17,6 @@ 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.SlashCommandEvent; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -27,6 +26,7 @@ import java.util.List; public class AudioM { + private static HashMap INSTANCES = new HashMap<>(); /** * Music manager for this guild */ @@ -53,7 +53,12 @@ public class AudioM { private Guild guild; private Logger logger = LogManager.getLogger(); - private static HashMap INSTANCES = new HashMap<>(); + private AudioM(Guild guild) { + this.playerManager = new DefaultAudioPlayerManager(); + AudioSourceManagers.registerRemoteSources(playerManager); + AudioSourceManagers.registerLocalSource(playerManager); + this.guild = guild; + } public static AudioM getInstance(Guild guild) { if (!INSTANCES.containsKey(guild)) { @@ -63,14 +68,6 @@ public class AudioM { return INSTANCES.get(guild); } - - private AudioM(Guild guild) { - this.playerManager = new DefaultAudioPlayerManager(); - AudioSourceManagers.registerRemoteSources(playerManager); - AudioSourceManagers.registerLocalSource(playerManager); - this.guild = guild; - } - /** * Load audio track from url, connect to chanel if not connected * diff --git a/src/main/java/net/Broken/audio/AudioPlayerSendHandler.java b/src/main/java/net/Broken/audio/AudioPlayerSendHandler.java index 6e1c9b9..6a3f600 100644 --- a/src/main/java/net/Broken/audio/AudioPlayerSendHandler.java +++ b/src/main/java/net/Broken/audio/AudioPlayerSendHandler.java @@ -1,7 +1,6 @@ package net.Broken.audio; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; -import com.sedmelluq.discord.lavaplayer.track.playback.AudioFrame; import com.sedmelluq.discord.lavaplayer.track.playback.MutableAudioFrame; import net.dv8tion.jda.api.audio.AudioSendHandler; diff --git a/src/main/java/net/Broken/audio/GuildMusicManager.java b/src/main/java/net/Broken/audio/GuildMusicManager.java index d3536a1..c878b13 100644 --- a/src/main/java/net/Broken/audio/GuildMusicManager.java +++ b/src/main/java/net/Broken/audio/GuildMusicManager.java @@ -21,6 +21,7 @@ public class GuildMusicManager { /** * Creates a player and a track scheduler. + * * @param manager Audio player manager to use for creating the player. */ public GuildMusicManager(AudioPlayerManager manager, Guild guild) { diff --git a/src/main/java/net/Broken/audio/Playlist/PlaylistManager.java b/src/main/java/net/Broken/audio/Playlist/PlaylistManager.java index cea7d6f..6fb1bd1 100644 --- a/src/main/java/net/Broken/audio/Playlist/PlaylistManager.java +++ b/src/main/java/net/Broken/audio/Playlist/PlaylistManager.java @@ -27,23 +27,14 @@ import java.util.List; public class PlaylistManager { - private final ResponseEntity TOKEN_ERROR = new ResponseEntity<>(new PlaylistResponseData("Unknown Token!\nPlease Re-connect.", "token"), HttpStatus.UNAUTHORIZED); - - private final ResponseEntity PLAYLIST_NOT_FOUND = new ResponseEntity<>(new PlaylistResponseData("Playlist not found", "playlist"), HttpStatus.NOT_FOUND); - - private final ResponseEntity TRACK_NOT_FOUND = new ResponseEntity<>(new PlaylistResponseData("Can't find media!", "track"), HttpStatus.NOT_FOUND); - - - - private PlaylistRepository playlistRepository; - - private TrackRepository trackRepository; - - private UserRepository userRepository; - - Logger logger = LogManager.getLogger(); - private static PlaylistManager INSTANCE = new PlaylistManager(); + private final ResponseEntity TOKEN_ERROR = new ResponseEntity<>(new PlaylistResponseData("Unknown Token!\nPlease Re-connect.", "token"), HttpStatus.UNAUTHORIZED); + private final ResponseEntity PLAYLIST_NOT_FOUND = new ResponseEntity<>(new PlaylistResponseData("Playlist not found", "playlist"), HttpStatus.NOT_FOUND); + private final ResponseEntity TRACK_NOT_FOUND = new ResponseEntity<>(new PlaylistResponseData("Can't find media!", "track"), HttpStatus.NOT_FOUND); + Logger logger = LogManager.getLogger(); + private PlaylistRepository playlistRepository; + private TrackRepository trackRepository; + private UserRepository userRepository; private PlaylistManager() { ApplicationContext context = SpringContext.getAppContext(); @@ -66,57 +57,52 @@ public class PlaylistManager { User jdaUser = MainBot.jda.getUserById(user.getJdaId()); - WebLoadUtils webLoadUtils = new WebLoadUtils(data, jdaUser, MainBot.jda.getGuilds().get(0) , false); + WebLoadUtils webLoadUtils = new WebLoadUtils(data, jdaUser, MainBot.jda.getGuilds().get(0), false); webLoadUtils.getResponse(); - if(webLoadUtils.userAudioTrack == null){ + if (webLoadUtils.userAudioTrack == null) { return TRACK_NOT_FOUND; - } - else - { + } else { TrackEntity trackEntity = new TrackEntity(webLoadUtils.userAudioTrack.getAudioTrack().getInfo(), data.pos, playlist); playlist = insert(playlist, trackEntity); - return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist),HttpStatus.OK); + return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist), HttpStatus.OK); } - } catch (UnknownTokenException e) { - logger.warn("Unknown token: "+ token); + logger.warn("Unknown token: " + token); return TOKEN_ERROR; } catch (PlaylistNotFoundException e) { - logger.debug("Playlist not found: "+ data.playlistId); + logger.debug("Playlist not found: " + data.playlistId); return PLAYLIST_NOT_FOUND; } } - public ResponseEntity removeTrack(String token, DeleteTrackData data){ + public ResponseEntity removeTrack(String token, DeleteTrackData data) { UserUtils userUtils = UserUtils.getInstance(); try { UserEntity user = userUtils.getUserWithApiToken(userRepository, token); PlaylistEntity playlist = getPlaylist(data.playlistId); - TrackEntity toDelete = trackRepository.findById(data.id); playlist = remove(playlist, toDelete); - if(playlist == null) - { + if (playlist == null) { logger.warn("Playlist: " + data.playlistId + " Track: " + data.id); return TRACK_NOT_FOUND; } - return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist),HttpStatus.OK); + return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist), HttpStatus.OK); } catch (UnknownTokenException e) { - logger.warn("Unknown token: "+ token); + logger.warn("Unknown token: " + token); return TOKEN_ERROR; } catch (PlaylistNotFoundException e) { - logger.debug("Playlist not found: "+ data.playlistId); + logger.debug("Playlist not found: " + data.playlistId); return PLAYLIST_NOT_FOUND; } } @@ -128,15 +114,13 @@ public class PlaylistManager { PlaylistEntity playlist = getPlaylist(data.playlistId); - TrackEntity toMove = trackRepository.findById(data.id); TrackEntity save = new TrackEntity(toMove); playlist = remove(playlist, toMove); - if(playlist == null) - { + if (playlist == null) { logger.warn("Playlist: " + data.playlistId + " Track: " + data.id); return TRACK_NOT_FOUND; } @@ -146,21 +130,20 @@ public class PlaylistManager { playlist = insert(playlist, save); - - return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist),HttpStatus.OK); + return new ResponseEntity<>(new PlaylistResponseData("Ok", playlist), HttpStatus.OK); } catch (UnknownTokenException e) { - logger.warn("Unknown token: "+ token); + logger.warn("Unknown token: " + token); return TOKEN_ERROR; } catch (PlaylistNotFoundException e) { - logger.debug("Playlist not found: "+ data.playlistId); + logger.debug("Playlist not found: " + data.playlistId); return PLAYLIST_NOT_FOUND; } } - private PlaylistEntity getPlaylist(int id) throws PlaylistNotFoundException{ + private PlaylistEntity getPlaylist(int id) throws PlaylistNotFoundException { PlaylistEntity playlist = playlistRepository.findById(id); - if(playlist == null) + if (playlist == null) throw new PlaylistNotFoundException(); else return playlist; @@ -168,26 +151,25 @@ public class PlaylistManager { } - private PlaylistEntity insert(PlaylistEntity playlistEntity, TrackEntity trackEntity){ + private PlaylistEntity insert(PlaylistEntity playlistEntity, TrackEntity trackEntity) { List tracks = trackRepository.findDistinctByPlaylistOrderByPos(playlistEntity); boolean increase = false; - for(TrackEntity track : tracks){ - if(track.getPos().equals(trackEntity.getPos())){ + for (TrackEntity track : tracks) { + if (track.getPos().equals(trackEntity.getPos())) { logger.debug("Need re-organisation"); increase = true; } - if(increase){ + if (increase) { track.setPos(track.getPos() + 1); trackRepository.save(track); } } - if(!increase) - { + if (!increase) { trackEntity.setPos(tracks.size()); } @@ -200,9 +182,9 @@ public class PlaylistManager { } - private PlaylistEntity remove(PlaylistEntity playlistEntity, TrackEntity trackEntity){ + private PlaylistEntity remove(PlaylistEntity playlistEntity, TrackEntity trackEntity) { - if(trackEntity == null){ + if (trackEntity == null) { logger.warn("Track not found in DB!"); return null; } @@ -210,14 +192,14 @@ public class PlaylistManager { List tracks = trackRepository.findDistinctByPlaylistOrderByPos(playlistEntity); int toDeleteIndex = tracks.indexOf(trackEntity); - logger.debug("To delete index: " + toDeleteIndex); - if(toDeleteIndex == -1){ + logger.debug("To delete index: " + toDeleteIndex); + if (toDeleteIndex == -1) { logger.warn("Track not found in playlist"); return null; } - for(int i = toDeleteIndex + 1; i< tracks.size(); i++){ + for (int i = toDeleteIndex + 1; i < tracks.size(); i++) { tracks.get(i).setPos(tracks.get(i).getPos() - 1); trackRepository.save(tracks.get(i)); } diff --git a/src/main/java/net/Broken/audio/TrackScheduler.java b/src/main/java/net/Broken/audio/TrackScheduler.java index 3e7a947..f2a29a8 100644 --- a/src/main/java/net/Broken/audio/TrackScheduler.java +++ b/src/main/java/net/Broken/audio/TrackScheduler.java @@ -205,12 +205,12 @@ public class TrackScheduler extends AudioEventAdapter { } } + public boolean isAutoFlow() { + return autoFlow; + } + public void setAutoFlow(boolean autoFlow) { this.autoFlow = autoFlow; needAutoPlay(); } - - public boolean isAutoFlow() { - return autoFlow; - } } diff --git a/src/main/java/net/Broken/audio/UserAudioTrack.java b/src/main/java/net/Broken/audio/UserAudioTrack.java index 45b53c7..1bec186 100644 --- a/src/main/java/net/Broken/audio/UserAudioTrack.java +++ b/src/main/java/net/Broken/audio/UserAudioTrack.java @@ -6,7 +6,7 @@ import net.dv8tion.jda.api.entities.User; /** * Container that link AudioTrack to who submit it (User) */ -public class UserAudioTrack{ +public class UserAudioTrack { private User user; private AudioTrack audioTrack; diff --git a/src/main/java/net/Broken/audio/WebLoadUtils.java b/src/main/java/net/Broken/audio/WebLoadUtils.java index 302450d..a9e9f52 100644 --- a/src/main/java/net/Broken/audio/WebLoadUtils.java +++ b/src/main/java/net/Broken/audio/WebLoadUtils.java @@ -18,17 +18,18 @@ import org.springframework.http.ResponseEntity; * Interface between WebApi and Music bot for submitting track */ public class WebLoadUtils { + public UserAudioTrack userAudioTrack; private ResponseEntity response; private Logger logger = LogManager.getLogger(); - public UserAudioTrack userAudioTrack; /** * Submit a track or playlist to Music bot - * @param data Received data from API - * @param user User who submit the track + * + * @param data Received data from API + * @param user User who submit the track * @param guild */ - public WebLoadUtils(CommandPostData data, User user, Guild guild, boolean submit){ + public WebLoadUtils(CommandPostData data, User user, Guild guild, boolean submit) { AudioPlayerManager playerM = AudioM.getInstance(guild).getPlayerManager(); try { @@ -40,7 +41,7 @@ public class WebLoadUtils { logger.info("Single Track detected from web!"); userAudioTrack = new UserAudioTrack(user, track); - if(submit) + if (submit) audioM.play(audioM.getGuild(), audioM.getPlayedChanel(), audioM.getGuildMusicManager(), userAudioTrack, data.onHead); response = new ResponseEntity<>(new CommandResponseData("ADD", "Loaded"), HttpStatus.OK); @@ -49,13 +50,11 @@ public class WebLoadUtils { @Override public void playlistLoaded(AudioPlaylist playlist) { - if(submit) - { + if (submit) { logger.info("Playlist detected from web! Limit: " + data.playlistLimit); audioM.playListLoader(playlist, data.playlistLimit, user, data.onHead); response = new ResponseEntity<>(new CommandResponseData("ADD", "Loaded"), HttpStatus.OK); - }else - { + } else { response = new ResponseEntity<>(new CommandResponseData("ADD", "Adding a list on saved playlist is currently not supported"), HttpStatus.NOT_ACCEPTABLE); } @@ -64,7 +63,7 @@ public class WebLoadUtils { @Override public void noMatches() { - logger.warn("Cant find media ! (web) url: "+ data.url); + logger.warn("Cant find media ! (web) url: " + data.url); response = new ResponseEntity<>(new CommandResponseData("ADD", "Can't find media!"), HttpStatus.NOT_FOUND); } @@ -76,7 +75,7 @@ public class WebLoadUtils { } }); - while(response == null) + while (response == null) Thread.sleep(10); } catch (InterruptedException nullMusicManager) { @@ -86,10 +85,11 @@ public class WebLoadUtils { /** * Wait for the end of submit process and return ResponseEntity + * * @return HTTP Response */ - public ResponseEntity getResponse(){ - while(response == null) { + public ResponseEntity getResponse() { + while (response == null) { try { Thread.sleep(10); } catch (InterruptedException e) { diff --git a/src/main/java/net/Broken/audio/Youtube/SearchResult.java b/src/main/java/net/Broken/audio/Youtube/SearchResult.java index 5ee4664..f0b4b5d 100644 --- a/src/main/java/net/Broken/audio/Youtube/SearchResult.java +++ b/src/main/java/net/Broken/audio/Youtube/SearchResult.java @@ -10,8 +10,8 @@ public class SearchResult { public String imageUrl; public String duration; - public SearchResult(com.google.api.services.youtube.model.SearchResult result, String duration){ - if(result.getId().getVideoId() == null) + public SearchResult(com.google.api.services.youtube.model.SearchResult result, String duration) { + if (result.getId().getVideoId() == null) id = result.getId().getPlaylistId(); else id = result.getId().getVideoId(); diff --git a/src/main/java/net/Broken/audio/Youtube/YoutubeSearchRework.java b/src/main/java/net/Broken/audio/Youtube/YoutubeSearchRework.java index 4990955..911f5d9 100644 --- a/src/main/java/net/Broken/audio/Youtube/YoutubeSearchRework.java +++ b/src/main/java/net/Broken/audio/Youtube/YoutubeSearchRework.java @@ -2,7 +2,6 @@ package net.Broken.audio.Youtube; import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack; import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSearchProvider; -import com.sedmelluq.discord.lavaplayer.track.AudioItem; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.BasicAudioPlaylist; import org.apache.logging.log4j.LogManager; @@ -21,9 +20,8 @@ import java.util.concurrent.TimeUnit; public class YoutubeSearchRework { - private Logger logger = LogManager.getLogger(); - private static YoutubeSearchRework INSTANCE; + private Logger logger = LogManager.getLogger(); public static YoutubeSearchRework getInstance() { if (INSTANCE == null) { diff --git a/src/main/java/net/Broken/audio/Youtube/YoutubeTools.java b/src/main/java/net/Broken/audio/Youtube/YoutubeTools.java index 1cd9865..16ba54c 100644 --- a/src/main/java/net/Broken/audio/Youtube/YoutubeTools.java +++ b/src/main/java/net/Broken/audio/Youtube/YoutubeTools.java @@ -3,8 +3,8 @@ package net.Broken.audio.Youtube; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.youtube.YouTube; -import com.google.api.services.youtube.model.*; import com.google.api.services.youtube.model.SearchResult; +import com.google.api.services.youtube.model.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -13,15 +13,12 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import static org.hibernate.engine.jdbc.Size.LobMultiplier.M; - public class YoutubeTools { + private static YoutubeTools INSTANCE; private Logger logger = LogManager.getLogger(); private String apiKey = System.getenv("GOOGLE_API_KEY"); - private static YoutubeTools INSTANCE; - private YoutubeTools() { } @@ -49,8 +46,6 @@ public class YoutubeTools { YouTube youtube = getYoutubeService(); - - YouTube.Search.List searchListRelatedVideosRequest = youtube.search().list(Collections.singletonList("snippet")); searchListRelatedVideosRequest.setRelatedToVideoId(videoId); searchListRelatedVideosRequest.setType(Collections.singletonList("video")); @@ -61,7 +56,7 @@ public class YoutubeTools { for (SearchResult item : response.getItems()) { if (!history.contains(item.getId().getVideoId())) { - if(item.getSnippet() != null) + if (item.getSnippet() != null) return item.getId().getVideoId(); } else logger.debug("ID already on history"); @@ -76,7 +71,7 @@ public class YoutubeTools { public ArrayList search(String query, long max, boolean playlist) throws IOException { YouTube youTube = getYoutubeService(); YouTube.Search.List searchList = youTube.search().list(Collections.singletonList("snippet")); - if(playlist) + if (playlist) searchList.setType(Collections.singletonList("playlist")); else searchList.setType(Collections.singletonList("video")); @@ -91,8 +86,8 @@ public class YoutubeTools { StringBuilder idString = new StringBuilder(); - if(playlist){ - for(SearchResult item : response.getItems()){ + if (playlist) { + for (SearchResult item : response.getItems()) { idString.append(item.getId().getPlaylistId()).append(","); } HashMap playlistHashMap = new HashMap<>(); @@ -100,19 +95,18 @@ public class YoutubeTools { list.setId(Collections.singletonList(idString.toString())); list.setKey(apiKey); PlaylistListResponse playlistResponse = list.execute(); - for( Playlist item : playlistResponse.getItems()){ + for (Playlist item : playlistResponse.getItems()) { playlistHashMap.put(item.getId(), item); } ArrayList finalResult = new ArrayList<>(); - for(SearchResult item : response.getItems()){ + for (SearchResult item : response.getItems()) { logger.trace(item.getSnippet().getTitle()); - finalResult.add(new net.Broken.audio.Youtube.SearchResult(item, playlistHashMap.get(item.getId().getPlaylistId()).getContentDetails().getItemCount().toString()+ " Video(s)")); + finalResult.add(new net.Broken.audio.Youtube.SearchResult(item, playlistHashMap.get(item.getId().getPlaylistId()).getContentDetails().getItemCount().toString() + " Video(s)")); } return finalResult; - } - else{ - for(SearchResult item : response.getItems()){ + } else { + for (SearchResult item : response.getItems()) { idString.append(item.getId().getVideoId()).append(","); } HashMap videoHashMap = new HashMap<>(); @@ -120,11 +114,11 @@ public class YoutubeTools { video.setId(Collections.singletonList(idString.toString())); video.setKey(apiKey); VideoListResponse videoResponse = video.execute(); - for(Video item : videoResponse.getItems()){ + for (Video item : videoResponse.getItems()) { videoHashMap.put(item.getId(), item); } ArrayList finalResult = new ArrayList<>(); - for(SearchResult item : response.getItems()){ + for (SearchResult item : response.getItems()) { logger.trace(item.getSnippet().getTitle()); finalResult.add(new net.Broken.audio.Youtube.SearchResult(item, videoHashMap.get(item.getId().getVideoId()).getContentDetails().getDuration())); } @@ -132,50 +126,40 @@ public class YoutubeTools { } - - - - - - - } - public String ytTimeToString(String time){ + public String ytTimeToString(String time) { int hours; int minutes; int seconds; - if(time.equals("PT0S")) + if (time.equals("PT0S")) return ":red_circle: LIVE"; - time = time.replace("PT",""); - if(time.contains("H")) { + time = time.replace("PT", ""); + if (time.contains("H")) { - String matched = time.substring(0, time.indexOf("H")+1); - time = time.replace(matched,""); + String matched = time.substring(0, time.indexOf("H") + 1); + time = time.replace(matched, ""); hours = Integer.parseInt(matched.replace("H", "")); - } - else + } else hours = 0; logger.trace(time); - if(time.contains("M")) { + if (time.contains("M")) { - String matched = time.substring(0, time.indexOf("M")+1); - time = time.replace(matched,""); + String matched = time.substring(0, time.indexOf("M") + 1); + time = time.replace(matched, ""); minutes = Integer.parseInt(matched.replace("M", "")); - } - else + } else minutes = 0; logger.trace(time); - if(time.contains("S")) { + if (time.contains("S")) { - String matched = time.substring(0, time.indexOf("S")+1); - time = time.replace(matched,""); + String matched = time.substring(0, time.indexOf("S") + 1); + time = time.replace(matched, ""); seconds = Integer.parseInt(matched.replace("S", "")); - } - else + } else seconds = 0; logger.trace(time); diff --git a/src/main/java/net/Broken/webView/CheckPage.java b/src/main/java/net/Broken/webView/CheckPage.java index a54d731..89a5c5f 100644 --- a/src/main/java/net/Broken/webView/CheckPage.java +++ b/src/main/java/net/Broken/webView/CheckPage.java @@ -3,8 +3,8 @@ package net.Broken.webView; import net.Broken.MainBot; public class CheckPage { - public static String getPageIfReady(String page){ - if(MainBot.ready) + public static String getPageIfReady(String page) { + if (MainBot.ready) return page; else return "loading"; diff --git a/src/main/java/net/Broken/webView/GeneralWebView.java b/src/main/java/net/Broken/webView/GeneralWebView.java index 8e6eefa..bcf77b7 100644 --- a/src/main/java/net/Broken/webView/GeneralWebView.java +++ b/src/main/java/net/Broken/webView/GeneralWebView.java @@ -22,7 +22,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; - import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -46,12 +45,32 @@ public class GeneralWebView { this.userRepository = userRepository; } + public static Model addGuildAndRedirect(Model model, String token, String guildId, User user) { + List mutualGuilds = user.getMutualGuilds(); + Integer lastCount = MainBot.mutualGuildCount.get(user.getId()); + if (lastCount == null || lastCount != mutualGuilds.size()) { + LogManager.getLogger().debug("Guild miss match, re-cache users..."); + CacheTools.loadAllGuildMembers(); + mutualGuilds = user.getMutualGuilds(); + MainBot.mutualGuildCount.put(user.getId(), mutualGuilds.size()); + } - @ResponseStatus(HttpStatus.FORBIDDEN) - public class ForbiddenException extends RuntimeException { + Guild guild = MainBot.jda.getGuildById(guildId); + if (guild != null) { + model.addAttribute("guild_name", guild.getName()); + model.addAttribute("guild_id", guild.getId()); + model.addAttribute("guild_icon", guild.getIconUrl() == null ? "https://discordapp.com/assets/dd4dbc0016779df1378e7812eabaa04d.png" : guild.getIconUrl()); + model.addAttribute("mutual_guilds", mutualGuilds); + model.addAttribute("isAdmin", SettingsUtils.getInstance().checkPermission(token, guildId)); + } else { + model.addAttribute("guild_name", ""); + model.addAttribute("guild_icon", ""); + } + + model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); + return model; } - @RequestMapping("/") public String music(Model model, HttpServletResponse response, HttpServletRequest request, @CookieValue(value = "guild", defaultValue = "1") String guildId, @CookieValue(value = "token", defaultValue = "") String token) { if (token.equals("")) { @@ -180,31 +199,8 @@ public class GeneralWebView { } - - public static Model addGuildAndRedirect(Model model, String token, String guildId, User user) { - List mutualGuilds = user.getMutualGuilds(); - Integer lastCount = MainBot.mutualGuildCount.get(user.getId()); - if (lastCount == null || lastCount != mutualGuilds.size()) { - LogManager.getLogger().debug("Guild miss match, re-cache users..."); - CacheTools.loadAllGuildMembers(); - mutualGuilds = user.getMutualGuilds(); - MainBot.mutualGuildCount.put(user.getId(), mutualGuilds.size()); - } - - Guild guild = MainBot.jda.getGuildById(guildId); - if (guild != null) { - model.addAttribute("guild_name", guild.getName()); - model.addAttribute("guild_id", guild.getId()); - model.addAttribute("guild_icon", guild.getIconUrl() == null ? "https://discordapp.com/assets/dd4dbc0016779df1378e7812eabaa04d.png" : guild.getIconUrl()); - model.addAttribute("mutual_guilds", mutualGuilds); - model.addAttribute("isAdmin", SettingsUtils.getInstance().checkPermission(token, guildId)); - } else { - model.addAttribute("guild_name", ""); - model.addAttribute("guild_icon", ""); - } - - model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); - return model; + @ResponseStatus(HttpStatus.FORBIDDEN) + public class ForbiddenException extends RuntimeException { } diff --git a/src/main/java/net/Broken/webView/MusicWebView.java b/src/main/java/net/Broken/webView/MusicWebView.java index f34c6c2..3acd903 100644 --- a/src/main/java/net/Broken/webView/MusicWebView.java +++ b/src/main/java/net/Broken/webView/MusicWebView.java @@ -37,17 +37,16 @@ public class MusicWebView { } - @RequestMapping("/music") - public String music(Model model, HttpServletResponse response, HttpServletRequest request, @CookieValue(value = "guild", defaultValue = "1") String guildId, @CookieValue(value = "token", defaultValue = "") String token){ - if(token.equals("")){ + public String music(Model model, HttpServletResponse response, HttpServletRequest request, @CookieValue(value = "guild", defaultValue = "1") String guildId, @CookieValue(value = "token", defaultValue = "") String token) { + if (token.equals("")) { model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); return "login"; } try { UserEntity userE = userUtils.getUserWithApiToken(userRepository, token); User user = MainBot.jda.getUserById(userE.getJdaId()); - if(user == null) + if (user == null) return "redirect:/"; GeneralWebView.addGuildAndRedirect(model, token, guildId, user); return CheckPage.getPageIfReady("music"); @@ -64,7 +63,7 @@ public class MusicWebView { model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); return "login"; - } catch (NumberFormatException e){ + } catch (NumberFormatException e) { logger.debug("Unknown guild, flush cookies"); Cookie cookie = new Cookie("guild", null); // Not necessary, but saves bandwidth. cookie.setPath("/"); @@ -75,6 +74,5 @@ public class MusicWebView { } - } } diff --git a/src/main/java/net/Broken/webView/MvcApplication.java b/src/main/java/net/Broken/webView/MvcApplication.java index a959ccc..42ad5e0 100644 --- a/src/main/java/net/Broken/webView/MvcApplication.java +++ b/src/main/java/net/Broken/webView/MvcApplication.java @@ -25,6 +25,7 @@ public class MvcApplication implements WebMvcConfigurer { .resourceChain(true) .addResolver(versionResourceResolver); } + @Bean public ResourceUrlEncodingFilter resourceUrlEncodingFilter() { return new ResourceUrlEncodingFilter(); diff --git a/src/main/java/net/Broken/webView/MyErrorController.java b/src/main/java/net/Broken/webView/MyErrorController.java index eafecdd..c62c6e0 100644 --- a/src/main/java/net/Broken/webView/MyErrorController.java +++ b/src/main/java/net/Broken/webView/MyErrorController.java @@ -16,9 +16,9 @@ import javax.servlet.http.HttpServletRequest; public class MyErrorController implements ErrorController { @RequestMapping("/error") - public String handleError(HttpServletRequest request, Model model, @CookieValue(value = "guild", defaultValue = "1") String guildId){ + public String handleError(HttpServletRequest request, Model model, @CookieValue(value = "guild", defaultValue = "1") String guildId) { Guild guild = MainBot.jda.getGuildById(guildId); - if(guild != null) + if (guild != null) model.addAttribute("guild_name", guild.getName()); else model.addAttribute("guild_name", ""); @@ -27,13 +27,11 @@ public class MyErrorController implements ErrorController { if (status != null) { Integer statusCode = Integer.valueOf(status.toString()); - if(statusCode == HttpStatus.NOT_FOUND.value()) { + if (statusCode == HttpStatus.NOT_FOUND.value()) { return "error/404"; - } - else if(statusCode == HttpStatus.FORBIDDEN.value()){ + } else if (statusCode == HttpStatus.FORBIDDEN.value()) { return "error/403"; - } - else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()){ + } else if (statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) { return "error/500"; } diff --git a/src/main/java/net/Broken/webView/RegisterWebView.java b/src/main/java/net/Broken/webView/RegisterWebView.java index 2193494..fed0835 100644 --- a/src/main/java/net/Broken/webView/RegisterWebView.java +++ b/src/main/java/net/Broken/webView/RegisterWebView.java @@ -12,10 +12,10 @@ import org.springframework.web.bind.annotation.RequestParam; @Controller public class RegisterWebView { @RequestMapping("/register") - public String music(@RequestParam(value="id", required = true, defaultValue = "") String id, Model model){ + public String music(@RequestParam(value = "id", required = true, defaultValue = "") String id, Model model) { model.addAttribute("id", id); model.addAttribute("redirect_url", System.getenv("OAUTH_URL")); - model.addAttribute("isAdmin",false); + model.addAttribute("isAdmin", false); return CheckPage.getPageIfReady("register"); }