diff --git a/pom.xml b/pom.xml index 450bede..d8f019e 100644 --- a/pom.xml +++ b/pom.xml @@ -83,10 +83,6 @@ maven-resources-plugin 3.1.0 - - maven-compiler-plugin - 3.8.1 - maven-surefire-plugin 2.22.2 @@ -131,20 +127,20 @@ - maven-assembly-plugin - - Hadder-Build - - - com.bbn.hadder.Hadder - - - - jar-with-dependencies - - false - - + maven-assembly-plugin + + Hadder-Build + + + com.bbn.hadder.Hadder + + + + jar-with-dependencies + + false + + diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 9d3ce64..f501971 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -81,6 +81,10 @@ public class Rethink { return out; } + public void remove(String table, String where, String wherevalue) { + r.table(table).filter(row -> row.g(where.toLowerCase()).eq(wherevalue)).delete().run(conn); + } + public void setup() { try { r.dbCreate("Hadder").run(conn); @@ -156,15 +160,19 @@ public class Rethink { } public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) { - this.insert("stars", r.hashMap("msg", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid)); + this.insert("stars", r.hashMap("id", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid)); } public String getStarboardMessage(String messageid) { - return (String) this.get("stars", "msg", messageid, "starboardmsg"); + return (String) this.get("stars", "id", messageid, "starboardmsg"); + } + + public void removeStarboardMessage(String messageid) { + this.remove("stars", "id", messageid); } public boolean hasStarboardMessage(String messageid) { - return this.get("stars", "msg", messageid, "guild") != null; + return this.get("stars", "id", messageid, "guild") != null; } public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index b853dfc..32c392a 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -33,7 +33,17 @@ public class GuildLeaveCommand implements Command { } else { event.getHelpCommand().sendHelp(this, event); } + } else { + event.getTextChannel() + .sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", + "", "commands.owner.guildleave.success.description", guild.getName()) + .build()) + .queue(); + } else { + event.getHelpCommand().sendHelp(this, event); } + } @Override diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 2312a5d..5059e4f 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -8,6 +8,7 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.utils.MessageEditor; @Perms(Perm.BOT_OWNER) public class RebootCommand implements Command { diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 0c550bf..35a1427 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -4,8 +4,11 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor.MessageType; +import static com.bbn.hadder.commands.Perm.BOT_OWNER; + /* * @author Skidder / GregTCLTK */ diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 0949f5d..1f1be07 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -37,14 +37,15 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); - - if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { - for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { - if (!perm.check(commandEvent)) { - commandEvent.getTextChannel() - .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) - .queue(); - return; + if (cmd.getClass().getAnnotations().length>0) { + if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { + if (!perm.check(commandEvent)) { + commandEvent.getTextChannel() + .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) + .queue(); + return; + } } } } diff --git a/src/main/java/com/bbn/hadder/listener/StarboardListener.java b/src/main/java/com/bbn/hadder/listener/StarboardListener.java index 091bc28..0a45dde 100644 --- a/src/main/java/com/bbn/hadder/listener/StarboardListener.java +++ b/src/main/java/com/bbn/hadder/listener/StarboardListener.java @@ -3,12 +3,14 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.MessageBuilder; +import net.dv8tion.jda.api.entities.MessageReaction; import net.dv8tion.jda.api.events.message.react.GenericMessageReactionEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import javax.annotation.Nonnull; +import java.time.format.DateTimeFormatter; public class StarboardListener extends ListenerAdapter { @@ -32,34 +34,68 @@ public class StarboardListener extends ListenerAdapter { if (event.getReaction().getReactionEmote().getName().equals("⭐")) { if (!rethink.hasStarboardMessage(event.getMessageId())) { if (rethink.hasStarboardChannel(event.getGuild().getId())) { - event.getChannel().retrieveMessageById(event.getMessageId()).queue(msg -> { - event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) - .sendMessage(new MessageBuilder() - .setContent("⭐1" + " " + event.getTextChannel().getAsMention()) - .setEmbed( - new EmbedBuilder() - .setAuthor(event.getUser().getAsTag()) - .setDescription(msg.getContentRaw()) - .setTimestamp(msg.getTimeCreated()).build()).build()).queue( - starboardmsg -> { - rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId()); + + event.getTextChannel().retrieveMessageById(event.getMessageId()).queue( + msg -> { + Integer stars = 0; + for (MessageReaction reaction : msg.getReactions()) { + if (reaction.getReactionEmote().getName().equals("⭐")) { + stars = reaction.getCount(); + } } - ); - }); + + if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= stars) { + event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) + .sendMessage(new MessageBuilder() + .setContent("⭐ 1" + " " + event.getTextChannel().getAsMention()) + .setEmbed( + new EmbedBuilder() + .setAuthor(msg.getAuthor().getAsTag()) + .setDescription(msg.getContentRaw()) + .setTimestamp(msg.getTimeCreated()).build()).build()).queue( + starboardmsg -> { + rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId()); + } + ); + } + } + ); + } } else { - event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) - .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue( + + event.getTextChannel().retrieveMessageById(event.getMessageId()).queue( msg -> { - msg.editMessage(new MessageBuilder() - .setContent("⭐" + event.getReaction().getCount() + " " + event.getTextChannel().getAsMention()) - .setEmbed( - new EmbedBuilder() - .setAuthor(event.getUser().getAsTag()) - .setDescription(msg.getContentRaw()) - .setTimestamp(msg.getTimeCreated()).build()).build()).queue(); + Integer stars = 0; + for (MessageReaction reaction : msg.getReactions()) { + if (reaction.getReactionEmote().getName().equals("⭐")) { + stars = reaction.getCount(); + } + } + + Integer finalStars = stars; + event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) + .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue( + msg2 -> { + + if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= finalStars) { + msg2.editMessage(new MessageBuilder() + .setContent("⭐ " + finalStars + " " + event.getTextChannel().getAsMention()) + .setEmbed( + new EmbedBuilder() + .setAuthor(msg.getAuthor().getAsTag()) + .setDescription(msg.getContentRaw()) + .setTimestamp(msg.getTimeCreated()).build()).build()).queue(); + } else { + msg2.delete().queue(); + rethink.removeStarboardMessage(msg.getId()); + } + } + ); + } ); + } } }