diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3c8ecfa --- /dev/null +++ b/.gitattributes @@ -0,0 +1,28 @@ +# Java sources +*.java text diff=java +*.gradle text diff=java +*.gradle.kts text diff=java + +# These files are text and should be normalized (Convert crlf => lf) +*.css text diff=css +*.df text +*.htm text diff=html +*.html text diff=html +*.js text +*.jsp text +*.jspf text +*.jspx text +*.properties text +*.tld text +*.tag text +*.tagx text +*.xml text + +# These files are binary and should be left untouched +# (binary is a macro for -text -diff) +*.class binary +*.dll binary +*.ear binary +*.jar binary +*.so binary +*.war binary diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..8084d83 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,34 @@ +--- +name: Bug report +about: Create a report to help us improve +title: Bug report +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - Discord version: [e.g. Discord PTB] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index aaeb397..a15e1a2 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -3,7 +3,7 @@ name: Hadder on: [push] jobs: - test: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 @@ -16,7 +16,7 @@ jobs: deploy: runs-on: ubuntu-latest - needs: test + needs: build if: github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v1 @@ -41,7 +41,7 @@ jobs: username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} port: ${{ secrets.PORT }} - script: /home/Bots/deploy.sh + script: /home/Bots/deploy.sh - name: Send Webhook Notification if: always() env: diff --git a/README.md b/README.md index a78d7e1..1116bc3 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,11 @@ # Hadder -The Hadder Discord bot is a multi-purpose Discord Bot. +The Hadder Discord Bot is a multi-purpose Discord Bot. [![Build Status](https://github.com/BigBotNetwork/Hadder/workflows/Hadder/badge.svg)](https://github.com/BigBotNetwork/Hadder) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade) +[![Discord Bots](https://top.gg/api/widget/637002314162372639.svg)](https://top.gg/bot/637002314162372639) +[![Hadder's Widget](https://api.botlist.space/widget/637002314162372639/2 "Hadder's Widget")](https://botlist.space/bot/637002314162372639?utm_source=bls&utm_medium=widget&utm_campaign=637002314162372639) diff --git a/example-config.json b/example-config.json new file mode 100644 index 0000000..f201256 --- /dev/null +++ b/example-config.json @@ -0,0 +1,24 @@ +{ + "Owners": + [], + "Database":{"IP":"", + "Port": 6775, + "DBName": "", + "Username": "", + "Password": ""}, + "Tokens": { + "BotToken": "", + "Giphy": "", + "GitHub": "", + "MythicalBotList": "", + "BotsForDiscord": "", + "DiscordBotList": "", + "DiscordBestBots": "", + "DiscordBoats": "", + "YetAnotherBotList": "", + "DiscordExtremeList": "", + "DiscordBotReviews": "", + "DiscordBots": "", + "BotListSpace": "" + } +} diff --git a/pom.xml b/pom.xml index fcd89b3..cbb6bb5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ Hadder Hadder - 0.7.1-ALPHA + 0.8-ALPHA Hadder @@ -25,7 +25,7 @@ net.dv8tion JDA - 4.0.0_62 + 4.0.0_69 org.json @@ -60,7 +60,12 @@ org.kohsuke github-api - 1.99 + 1.101 + + + com.sedmelluq + lavaplayer + 1.3.32 @@ -131,14 +136,6 @@ 13 - - org.apache.maven.plugins - maven-compiler-plugin - - 12 - 12 - - maven-assembly-plugin diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index eede5b6..71e75f9 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -7,6 +7,7 @@ import com.bbn.hadder.commands.nsfw.*; import com.bbn.hadder.commands.owner.*; import com.bbn.hadder.commands.fun.*; import com.bbn.hadder.commands.settings.*; +import com.bbn.hadder.commands.music.*; import com.bbn.hadder.core.*; import com.bbn.hadder.listener.*; import net.dv8tion.jda.api.entities.Activity; @@ -18,7 +19,7 @@ import java.util.List; public class Hadder { - public static ShardManager shardManager; + public static ShardManager shardManager; public static void main(String[] args) { startBot(); @@ -34,6 +35,7 @@ public class Hadder { DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder(); + builder.setAutoReconnect(true); builder.setShardsTotal(1); builder.setActivity(Activity.streaming("on the BigBotNetwork", "https://twitch.tv/BigBotNetwork")); builder.setToken(config.getBotToken()); @@ -52,7 +54,7 @@ public class Hadder { new GifCommand(), new ClearCommand(), new GitHubCommand(), - new ScreenshareCommand(), + new ScreenShareCommand(), new RebootCommand(), new EqualsCommand(), new InviteCommand(), @@ -70,6 +72,13 @@ public class Hadder { new RoleCommand(), new RulesCommand(), new FeedbackCommand(), + new AvatarCommand(), + new EvalCommand(), + new JoinCommand(), + new LeaveCommand(), + new GuildLeaveCommand(), + new MemeCommand(), + new InviteDetectCommand(), new LinkCommand()), config, helpCommand); builder.addEventListeners( @@ -78,9 +87,9 @@ public class Hadder { new CommandListener(rethink, commandHandler), new GuildListener(rethink, config), new ReadyListener(rethink, config), - new LinkListener(rethink), + //new LinkListener(rethink), + new InviteLinkListener(rethink), new RulesListener(rethink)); - try { shardManager = builder.build(); diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index e6ce4d6..283a1a1 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -32,7 +32,7 @@ public class Rethink { .connect(); System.out.println("DB CONNECTED"); } catch (Exception e) { - System.out.println(e.toString()); + e.printStackTrace(); System.out.println("DB CONNECTION FAILED"); } } @@ -59,7 +59,7 @@ public class Rethink { } private String update(String table, String wherevalue, String what, String whatvalue) { - String out=""; + String out = ""; try { Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn); out=cursor.toString(); @@ -95,16 +95,16 @@ public class Rethink { } - public String setUserPrefix(String prefix, String userid) { - return this.update("user", userid, "prefix", prefix); + public void setUserPrefix(String prefix, String userid) { + this.update("user", userid, "prefix", prefix); } public String getUserPrefix(String id) { return (String) this.get("user", "id", id, "prefix"); } - public String setGuildPrefix(String prefix, String guildid) { - return this.update("server", guildid, "prefix", prefix); + public void setGuildPrefix(String prefix, String guildid) { + this.update("server", guildid, "prefix", prefix); } public String getGuildPrefix(String id) { @@ -115,12 +115,12 @@ public class Rethink { return new JSONArray((String) this.get("server", "id", id, "links")); } - public String addLinkedGuild(String guildid, String linkid) { + public void addLinkedGuild(String guildid, String linkid) { JSONArray links = getLinks(guildid); for (int i = 0; links.length()>i; i++) { - if (links.getString(i).equals(linkid)) return null; + if (links.getString(i).equals(linkid)) return; } - return this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); + this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); } public String removeLinkedGuild(String guildid, String linkid) { @@ -134,26 +134,27 @@ public class Rethink { return this.update("server", guildid, "links", linkedguildslist.toString()); } - public String setLinkChannel(String guildid, String channelid) { - return this.update("server", guildid, "linkchannel", channelid); + public void setLinkChannel(String guildid, String channelid) { + this.update("server", guildid, "linkchannel", channelid); } public String getLinkChannel(String guildid) { return (String) this.get("server", "id", guildid, "linkchannel"); } - public String insertGuild(String id) { - return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "")); + public void insertGuild(String id) { + this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "").with("invite_detect", false)); } - public String insertUser(String id) { - return this.insert("user", r.hashMap("id", id).with("prefix", "h.")); + public void insertUser(String id) { + this.insert("user", r.hashMap("id", id).with("prefix", "h.")); } - public String updateRules(String guild_id, String message_id, String role_id) { + public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { this.update("server", guild_id, "message_id", message_id); this.update("server", guild_id, "role_id", role_id); - return null; + this.update("server", guild_id, "accept_emote", accept_emote); + this.update("server", guild_id, "decline_emote", decline_emote); } public String getRulesMID(String guild_id) { @@ -164,4 +165,24 @@ public class Rethink { return (String) this.get("server", "id", guild_id, "role_id"); } + public String getRulesAEmote(String guild_id) { + return (String) this.get("server", "id", guild_id, "accept_emote"); + } + + public String getRulesDEmote(String guild_id) { + return (String) this.get("server", "id", guild_id, "decline_emote"); + } + + public void setInviteDetection(String guild_id, boolean b) { + try { + r.table("server").get(guild_id).update(r.hashMap("invite_detect", b)).run(conn); + } catch (ClassCastException e) { + e.printStackTrace(); + } + } + + public Boolean getInviteDetection(String guild_id) { + return (Boolean) this.get("server", "id", guild_id, "invite_detect"); + } + } diff --git a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java new file mode 100644 index 0000000..fab81a9 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java @@ -0,0 +1,56 @@ +package com.bbn.hadder.commands.fun; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.entities.Member; + +public class AvatarCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (args.length == 0) { + Member member = event.getMember(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Avatar of " + member.getUser().getAsTag()) + .setImage(member.getUser().getAvatarUrl()) + .setFooter(member.getUser().getAsTag()) + .build()).queue(); + } else if (event.getMessage().getMentionedMembers().size() == 1) { + Member member = event.getMessage().getMentionedMembers().get(0); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Avatar of " + member.getUser().getAsTag()) + .setImage(member.getUser().getAvatarUrl()) + .setFooter(member.getUser().getAsTag()) + .build()).queue(); + } else if (args[0].length() == 18){ + Member member = event.getGuild().getMemberById(args[0]); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Avatar of " + member.getUser().getAsTag()) + .setImage(member.getUser().getAvatarUrl()) + .setFooter(member.getUser().getAsTag()) + .build()).queue(); + } else { + event.getHelpCommand().sendHelp(this , event.getRethink(), event.getAuthor(), event.getTextChannel()); + } + } + + @Override + public String[] labels() { + return new String[]{"avatar"}; + } + + @Override + public String description() { + return "Sends the avatar of the specified member."; + } + + @Override + public String usage() { + return "<@User>/"; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java index 25efe90..7d7bdec 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java @@ -6,9 +6,7 @@ package com.bbn.hadder.commands.fun; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.core.Config; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; @@ -28,19 +26,18 @@ public class GifCommand implements Command { query = new StringBuilder(query.substring(0, query.length() - 1)); } - OkHttpClient caller = new OkHttpClient(); + OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + event.getConfig().getGiphyToken()).build(); try { Random rand = new Random(); - Response response = caller.newCall(request).execute(); + Response response = client.newCall(request).execute(); JSONObject json = new JSONObject(response.body().string()); JSONArray array = json.getJSONArray("data"); int gifIndex = rand.nextInt(array.length()); String url = array.getJSONObject(gifIndex).get("url").toString(); event.getTextChannel().sendMessage(url).queue(); } catch (Exception e) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, builder).setTitle("Error").setDescription("Please try again with another term.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setTitle("Error").setDescription("Please try again with another term.").build()).queue(); } } else { event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); diff --git a/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java new file mode 100644 index 0000000..3accd6c --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java @@ -0,0 +1,58 @@ +package com.bbn.hadder.commands.fun; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.json.JSONObject; + +import java.awt.*; +import java.io.IOException; + +public class MemeCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://some-random-api.ml/meme").build(); + + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + String url = json.get("image").toString(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Your random meme") + .setImage(url) + .build()).queue(); + } catch (IOException e) { + e.printStackTrace(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error!") + .setDescription("The request to the meme API could not be processed. Please try it again later.") + .setColor(Color.RED) + .build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"meme"}; + } + + @Override + public String description() { + return "Sends you a random meme."; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/misc/EqualsCommand.java b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java similarity index 71% rename from src/main/java/com/bbn/hadder/commands/misc/EqualsCommand.java rename to src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java index 4ea64b1..d23bead 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/EqualsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java @@ -1,10 +1,13 @@ -package com.bbn.hadder.commands.misc; +package com.bbn.hadder.commands.general; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; + +/* + * @author Skidder / GregTCLTK + */ public class EqualsCommand implements Command { @@ -12,32 +15,24 @@ public class EqualsCommand implements Command { public void executed(String[] args, CommandEvent event) { event.getChannel().sendMessage( new MessageEditor() - .setDefaultSettings( - MessageEditor.MessageType.INFO, - new EmbedBuilder() - .setTitle("Please send me the first String") - ).build() - ).queue(); + .setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Please send me the first String") + .build()).queue(); new EventWaiter().newOnMessageEventWaiter(msgevent -> { String firstString = msgevent.getMessage().getContentRaw(); event.getChannel().sendMessage( new MessageEditor() .setDefaultSettings( - MessageEditor.MessageType.INFO, - new EmbedBuilder() - .setTitle("Please send me the second String") - ).build() - ).queue(); + MessageEditor.MessageType.INFO).setTitle("Please send me the second String").build()).queue(); new EventWaiter().newOnMessageEventWaiter(msgevent2 -> { String secondString = msgevent2.getMessage().getContentRaw(); event.getChannel().sendMessage( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle((firstString.equals(secondString)) ? "Yes! The first string equals the second string!" : "Well yes, but actually No. This isn't the same.") .addField("First String", firstString, false) .addField("Second String", secondString, false) .addField("Result", String.valueOf(firstString.equals(secondString)), false) - ).build() - ).queue(); + .build()).queue(); }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); } diff --git a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java index 45d3b0e..bb7c868 100644 --- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java @@ -42,12 +42,12 @@ public class HelpCommand implements Command { eb.addField(ps[ps.length - 1], sb.toString(), false); } } - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, eb); + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO); event.getChannel().sendMessage(eb.build()).queue(); } else { for (Command cmd : event.getCommandHandler().getCommandList()) { for (String label : cmd.labels()) { - if (label.toLowerCase().equals(args[0])) { + if (label.equalsIgnoreCase(args[0])) { sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } @@ -65,7 +65,7 @@ public class HelpCommand implements Command { String name = cmd.labels()[0]; eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase())); eb.addField("Usage", rethink.getUserPrefix(author.getId()) + cmd.labels()[0] + " " + cmd.usage(), false); - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, eb); + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO); channel.sendMessage(eb.build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java b/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java similarity index 61% rename from src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java rename to src/main/java/com/bbn/hadder/commands/general/InviteCommand.java index 6357d0e..1d99179 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java @@ -1,4 +1,4 @@ -package com.bbn.hadder.commands.misc; +package com.bbn.hadder.commands.general; /* * @author Skidder / GregTCLTK @@ -8,14 +8,19 @@ import com.bbn.hadder.Hadder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; + +/* + * @author Skidder / GregTCLTK + */ public class InviteCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Invite me!").setDescription("[Invite me here!](https://discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Invite me!") + .setDescription("[Invite me here!](https://discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)") + .build()).queue(); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/general/PingCommand.java b/src/main/java/com/bbn/hadder/commands/general/PingCommand.java index 29c3b3b..536975a 100644 --- a/src/main/java/com/bbn/hadder/commands/general/PingCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/PingCommand.java @@ -7,14 +7,12 @@ package com.bbn.hadder.commands.general; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; public class PingCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - EmbedBuilder builder = new EmbedBuilder(); - event.getJDA().getRestPing().queue(ping -> event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Ping").setDescription(String.valueOf(ping)).build()).queue()); + event.getJDA().getRestPing().queue(ping -> event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Ping").setDescription(String.valueOf(ping)).build()).queue()); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index 002939c..c4889da 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -8,7 +8,6 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import org.kohsuke.github.GHIssue; import org.kohsuke.github.GHRepository; import org.kohsuke.github.GitHub; @@ -19,15 +18,15 @@ public class FeedbackCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Feedback Topic") - .setDescription("Please send me the feedback topic.")) + .setDescription("Please send me the feedback topic.") .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event1 -> { String title = event1.getMessage().getContentDisplay(); - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Feedback Description") - .setDescription("Please send me the feedback description now.")) + .setDescription("Please send me the feedback description now.") .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event2 -> { String description = event2.getMessage().getContentDisplay(); @@ -35,8 +34,8 @@ public class FeedbackCommand implements Command { GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken()); GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder"); GHIssue issue = Hadder.createIssue(title).body("Feedback by " + event.getAuthor().getAsTag() + "
" + description).label("feedback").create(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Feedback successfully sent")) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Feedback successfully sent") .setDescription(issue.getHtmlUrl().toString()) .build()).queue(); } catch (IOException e) { diff --git a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java index 2cc681b..1e14ae3 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java @@ -7,7 +7,6 @@ package com.bbn.hadder.commands.misc; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; @@ -22,8 +21,7 @@ public class GitHubCommand implements Command { public void executed(String[] args, CommandEvent event) { if (args.length > 0) { if (args[0].equals("link")) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Link your GitHub Account").setDescription("https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Link your GitHub Account").setDescription("https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942").build()).queue(); } else { Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build(); try { @@ -46,8 +44,7 @@ public class GitHubCommand implements Command { if (!json.getString("blog").equals("")) website = json.getString("blog"); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("Information about " + nickname + " (" + args[0] + ")", "https://github.com/" + args[0] + "", "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png") .setThumbnail(json.getString("avatar_url")) .addField("User bio", bio, false) @@ -60,15 +57,16 @@ public class GitHubCommand implements Command { .build()).queue(); } catch (IOException | NullPointerException e) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, builder).setDescription("The GitHub API might be down at the moment!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setDescription("The GitHub API might be down at the moment!").build()).queue(); } catch (JSONException e) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("This user does not exist!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("This user does not exist!").build()).queue(); } } } else { - event.getTextChannel().sendMessage("SOON").queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Connect you GH account") + .setDescription("[Please connect your GitHub account here](https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942)") + .build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java similarity index 87% rename from src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java rename to src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java index c9adbe0..15d2909 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java @@ -9,7 +9,8 @@ import net.dv8tion.jda.api.entities.VoiceChannel; import java.util.List; -public class ScreenshareCommand implements Command { +public class ScreenShareCommand implements Command { + @Override public void executed(String[] args, CommandEvent event) { if (args.length>0) { @@ -17,15 +18,15 @@ public class ScreenshareCommand implements Command { for (VoiceChannel vc : event.getGuild().getVoiceChannels()) { try { if (vc.getIdLong() == Long.parseLong(args[0])) { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Here's your Url to share your Screen") - .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/")).build()).queue(); + .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue(); return; } } catch (NumberFormatException e) { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) .setTitle("Wait, that's illegal") - .setDescription("This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.")).build()).queue(); + .setDescription("This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); return; } @@ -40,38 +41,40 @@ public class ScreenshareCommand implements Command { VoiceChannel voiceChannel = vcs.get(i); eb.addField(i + ": " + voiceChannel.getName(), voiceChannel.getId(), false); } - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, eb).build()).queue(); + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).build()).queue(); new EventWaiter().newOnMessageEventWaiter(msgevent -> { try { int i = Integer.parseInt(msgevent.getMessage().getContentRaw()); if (vcs.size() > i) { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Here's your Url to share your Screen") - .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(i).getId() + "/")).build()).queue(); + .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(i).getId() + "/").build()).queue(); } else { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() - .setTitle("You specified a wrong number!")).build()).queue(); + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("You specified a wrong number!").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } catch (NumberFormatException e) { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) .setTitle("Wait, that's illegal") - .setDescription("This isn't a Number.")).build()).queue(); + .setDescription("This isn't a Number.").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } }, event.getJDA(), event.getAuthor()); } else if (vcs.size()==0) { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) .setTitle("Hol' up") - .setDescription("There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.")).build()).queue(); + .setDescription("There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else { - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Here's your Url to share your Screen") - .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(0).getId() + "/")).build()).queue(); + .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(0).getId() + "/").build()).queue(); } } + } else { + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java index 07405a4..178ebdb 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; @@ -15,30 +14,24 @@ public class BanCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getGuild().getOwner().getId().equals(event.getAuthor().getId())) { + if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getMessage().getMentionedMembers().size() == 1) { Member victim = event.getMessage().getMentionedMembers().get(0); if (!event.getAuthor().getId().equals(victim.getId())) { if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { if (event.getGuild().getSelfMember().canInteract(victim)) { event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not ban myself").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not ban myself").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("Not possible").setDescription("You can't ban yourself.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("Not possible").setDescription("You can't ban yourself.").build()).queue(); } } else if (event.getMessage().getMentionedMembers().size() == 0) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else if (event.getMessage().getMentionedMembers().size() > 1) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { @@ -48,24 +41,19 @@ public class BanCommand implements Command { if (event.getGuild().getSelfMember().canInteract(member)) { event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not ban myself!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not ban myself!").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You can't ban yourself.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't ban yourself.").build()).queue(); } } - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully banned " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully banned ✅").setDescription("I successfully banned " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java index 884c7d8..a4288a7 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Message; @@ -20,37 +19,29 @@ public class ClearCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { + if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getGuild().getMemberById(event.getJDA().getSelfUser().getId()).hasPermission(Permission.MESSAGE_MANAGE)) { try { int nbToDelete = Integer.parseInt(args[0]); if(nbToDelete < 1 || nbToDelete > 200) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to choose a number between 1 and 200!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You have to choose a number between 1 and 200!").build()).queue(); return; } List history = event.getTextChannel().getHistory().retrievePast(nbToDelete +1).complete(); List msgToDelete = new ArrayList<>(); msgToDelete.addAll(history); event.getTextChannel().deleteMessages(msgToDelete).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setDescription("Successfully deleted " + nbToDelete + " messages.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setDescription("Successfully deleted " + nbToDelete + " messages.").build()).queue(); } catch (NumberFormatException e) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java index 8407394..38b9d21 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java @@ -3,34 +3,26 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; public class GuildPrefixCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MANAGE_SERVER) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { + if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (args.length == 1) { if (!args[0].contains("\"")) { event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); - - EmbedBuilder builder = new EmbedBuilder(); - - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for the guild to " + args[0]).build()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("The prefix must not contain **\"**").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("The prefix must not contain **\"**").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java new file mode 100644 index 0000000..12ddc03 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -0,0 +1,72 @@ +package com.bbn.hadder.commands.moderation; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; + +public class InviteDetectCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (args.length == 1) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + String opinion = args[0].toLowerCase(); + switch (opinion) { + case "on": + if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), true); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully activated") + .setDescription("I successfully activated the invite link detection for this guild.") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Already activated") + .setDescription("The invite link detection is already activated on this guild.") + .build()).queue(); + } + break; + + case "off": + if (event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), false); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully deactivated") + .setDescription("I successfully deactivated the invite link detection for this guild.") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Already deactivated") + .setDescription("The invite link detection is already deactivated on this guild.") + .build()).queue(); + } + break; + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } else { + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); + } + } + + @Override + public String[] labels() { + return new String[]{"invitedetect", "detectinvite"}; + } + + @Override + public String description() { + return "Activate or deactivate the Discord invite link detection."; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java index 36a7650..416027b 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java @@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; @@ -16,30 +15,24 @@ public class KickCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getGuild().getOwnerId().equals(event.getAuthor().getId())) { + if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getMessage().getMentionedMembers().size() == 1) { Member victim = event.getMessage().getMentionedMembers().get(0); if (!event.getAuthor().getId().equals(victim.getId())) { if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { if (event.getGuild().getSelfMember().canInteract(victim)) { event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + victim.getUser().getName() + ".").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + victim.getUser().getName() + ".").build()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not kick myself!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not kick myself!").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You can't kick yourself.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't kick yourself.").build()).queue(); } } else if (event.getMessage().getMentionedMembers().size() == 0) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else if (event.getMessage().getMentionedMembers().size() > 1) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { @@ -49,20 +42,16 @@ public class KickCommand implements Command { if (event.getGuild().getSelfMember().canInteract(member)) { event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("I can not kick myself!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not kick myself!").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You can't kick yourself.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't kick yourself.").build()).queue(); } } - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue(); } } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java index d33dd60..84a91a3 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java @@ -10,13 +10,12 @@ public class LinkCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); - switch (args[0]) { - + switch (args[0].toLowerCase()) { case "add": if (args.length != 2) return; String linkid = args[1]; - // Check if guild is existing + // Check if guild exists boolean found = false; Guild linkguild = null; for (Guild g : event.getJDA().getGuilds()) { @@ -27,17 +26,17 @@ public class LinkCommand implements Command { } if (!found) { event.getChannel().sendMessage( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder().setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") - ).build()).queue(); + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") + .build()).queue(); return; } // Check if the guild is the same if (event.getGuild().getId().equals(args[1])) { event.getChannel().sendMessage( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, - new EmbedBuilder().setTitle("Wait thats illegal.").setDescription("You specified the same guild as the guild on which you're reading this")).build()).queue(); + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Wait thats illegal.").setDescription("You specified the same guild as the guild on which you're reading this").build()).queue(); return; } @@ -49,9 +48,9 @@ public class LinkCommand implements Command { } // Send Request to link Guild event.getJDA().getTextChannelById(event.getRethink().getLinkChannel(linkid)).sendMessage( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder().setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!") - .setDescription("React with the reactions to accept or decline it")).build() + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!") + .setDescription("React with the reactions to accept or decline it").build() ).queue( msg -> { msg.addReaction("✅").queue(); @@ -62,9 +61,9 @@ public class LinkCommand implements Command { event.getChannel().sendMessage( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder().setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") - ).build()).queue(); + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") + .build()).queue(); break; diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java index 4ab91b9..3fb30f7 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java @@ -7,7 +7,6 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; @@ -15,7 +14,7 @@ public class NickCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getGuild().getOwnerId().equals(event.getMember().getId())) { + if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) { if (event.getMessage().getMentionedMembers().size() == 1) { if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { @@ -23,36 +22,27 @@ public class NickCommand implements Command { if (args.length > 1) { if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue(); } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("Missing arguments").setDescription("You have to specify a new nickname for the user(s).").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue(); } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue(); } } } else if (event.getMessage().getMentionedMembers().size() == 0) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { @@ -63,16 +53,13 @@ public class NickCommand implements Command { event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); } } - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java index 506da00..19dfe54 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java @@ -3,7 +3,6 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; @@ -14,8 +13,9 @@ public class RoleCommand implements Command { public void executed(String[] args, CommandEvent event) { if (args.length > 0) { if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { - switch (args[0].toLowerCase()) { + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + String action = args[0].toLowerCase(); + switch (action) { case "add": if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { for (Member member : event.getMessage().getMentionedMembers()) { @@ -24,17 +24,14 @@ public class RoleCommand implements Command { if (event.getGuild().getSelfMember().canInteract(role)) { event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } } - EmbedBuilder builder = new EmbedBuilder(); - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("✅ Successfully added role(s) ✅") .setDescription("I successfully added " + event.getMessage().getMentionedRoles().size() + " roles to " + event.getMessage().getMentionedMembers().size() + " members.") .build()).queue(); @@ -42,19 +39,35 @@ public class RoleCommand implements Command { break; case "remove": - event.getTextChannel().sendMessage("SOON").queue(); + if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { + for (Member member : event.getMessage().getMentionedMembers()) { + for (Role role : event.getMessage().getMentionedRoles()) { + if (event.getGuild().getSelfMember().canInteract(member)) { + if (event.getGuild().getSelfMember().canInteract(role)) { + event.getGuild().removeRoleFromMember(member, role).reason("Role removed by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } + } + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("✅ Successfully removed role(s) ✅") + .setDescription("I successfully removed " + event.getMessage().getMentionedRoles().size() + " roles from " + event.getMessage().getMentionedMembers().size() + " members.") + .build()).queue(); + } break; } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } else { - event.getTextChannel().sendMessage("Missing args").queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } @@ -70,6 +83,6 @@ public class RoleCommand implements Command { @Override public String usage() { - return "<@role> <@user>"; + return "add/remove <@role> <@user>"; } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 67d4622..d6e80f8 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -8,81 +8,176 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Emote; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; public class RulesCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Set up rules") - .setDescription("Please specify the channel on which I should send the rules. Your message should look like: #rules.")) + .setDescription("Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like: #rules or #verify.") .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event1 -> { - if (event1.getMessage().getMentionedChannels().size() > 0) { - TextChannel channel = event1.getMessage().getMentionedChannels().get(0); - if (channel.getGuild().getId().equals(event1.getGuild().getId())) { - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules") - .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event2 -> { - String message = event2.getMessage().getContentDisplay(); - event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Role to assign")) - .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event3 -> { - Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("The role has been successfully set to " + role.getName() + ".")) - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules")) - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); - } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!")) + if (event1.getMessage().getMentionedChannels().size() == 1) { + try { + TextChannel channel = event1.getMessage().getMentionedChannels().get(0); + createRules(event, event1, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Channel not found") + .setDescription("I can't find the specified channel. Please start the setup again.") .build()).queue(); } } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() - .setTitle("No Channel mentioned")) - .setDescription("Please mention a channel. This should look like #rules") - .build()).queue(); + try { + TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); + createRules(event, event1, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Channel not found") + .setDescription("I can't find the specified channel. Please start the setup again.") + .build()).queue(); + } } }, event.getJDA(), event.getAuthor()); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } + + public void createRules(CommandEvent event, GuildMessageReceivedEvent event1, TextChannel channel) { + if (channel.getGuild().getId().equals(event1.getGuild().getId())) { + if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event2 -> { + String message = event2.getMessage().getContentDisplay(); + event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Role to assign") + .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event3 -> { + if (event.getMessage().getMentionedRoles().size() == 1) { + Role role = event.getMessage().getMentionedRoles().get(0); + setRole(event, channel, message, event3, role); + } else { + Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); + setRole(event, channel, message, event3, role); + } + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION) + .build()).queue(); + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!") + .build()).queue(); + } + } + + public void setRole(CommandEvent event, TextChannel channel, String message, GuildMessageReceivedEvent event3, Role role) { + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Custom Accept Emote") + .setDescription("The role has been successfully set to " + role.getName() + ". Now send me the emote on which your user should react to to get verified.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event4 -> { + if (event4.getMessage().getEmotes().size() == 1) { + Emote aemote = event4.getMessage().getEmotes().get(0); + event4.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Custom Decline Emote") + .setDescription("The first emote has been successfully set to " + aemote + ". Please send me now the decline emote.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event5 -> { + Emote demote = event5.getMessage().getEmotes().get(0); + if (!aemote.equals(demote)) { + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(message) + .build()).complete(); + try { + rules.addReaction(aemote).queue(); + rules.addReaction(demote).queue(); + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully set the rules") + .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + .build()).queue(); + } catch (Exception e) { + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error") + .setDescription("I can not access the custom emote(s),") + .build()).queue(); + e.printStackTrace(); + } + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Emotes are equal") + .setDescription("The 1st and 2nd emote equals each other.") + .build()).queue(); + } + }, event.getJDA(), event.getAuthor()); + } else { + String aemote = event4.getMessage().getContentRaw(); + event4.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Custom Decline Emote") + .setDescription("The first emote has been successfully set. Please send me now the decline emote.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event5 -> { + String demote = event5.getMessage().getContentRaw(); + if (!aemote.equals(demote)) { + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(message) + .build()).complete(); + try { + rules.addReaction(aemote).queue(); + rules.addReaction(demote).queue(); + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully set the rules") + .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + .build()).queue(); + } catch (Exception e) { + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error") + .setDescription("The given emote can't be used.") + .build()).queue(); + e.printStackTrace(); + } + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote, demote); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Emotes are equal") + .setDescription("The 1st and 2nd emote equals each other.") + .build()).queue(); + } + }, event.getJDA(), event.getAuthor()); + } + }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } @Override public String[] labels() { - return new String[]{"rules"}; + return new String[]{"rules", "rule", "setup"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java new file mode 100644 index 0000000..9cc43f5 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java @@ -0,0 +1,55 @@ +package com.bbn.hadder.commands.music; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.entities.VoiceChannel; +import net.dv8tion.jda.api.managers.AudioManager; + + +public class JoinCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getMember().getVoiceState().inVoiceChannel()) { + AudioManager audioManager = event.getGuild().getAudioManager(); + if(!audioManager.isAttemptingToConnect()) { + VoiceChannel vc = event.getMember().getVoiceState().getChannel(); + event.getGuild().getAudioManager().openAudioConnection(vc); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully connected") + .setDescription("I successfully connected to " + vc.getName() + ".") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Already trying to connect") + .setDescription("Hadder is already trying to connect. Please wait a moment.") + .build()).queue(); + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("No Voice Channel") + .setDescription("You aren't in a Voice Channel.") + .build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"join"}; + } + + @Override + public String description() { + return "Joins your voice channel"; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java new file mode 100644 index 0000000..cb47830 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java @@ -0,0 +1,43 @@ +package com.bbn.hadder.commands.music; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; + +public class LeaveCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { + event.getGuild().getAudioManager().closeAudioConnection(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully disconnected") + .setDescription("I successfully disconnected from the Voice Channel") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Not connected") + .setDescription("I'm currently in no Voice Channel on this Guild") + .build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"leave"}; + } + + @Override + public String description() { + return "Leaves a voice channel"; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java index c73850e..a053a87 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class AnalCommand implements Command { @@ -29,11 +27,9 @@ public class AnalCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Anal") .build()).queue(); @@ -42,8 +38,7 @@ public class AnalCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java index 79f3219..67bafb8 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class BlowjobCommand implements Command { @@ -29,11 +27,9 @@ public class BlowjobCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Blowjob") .build()).queue(); @@ -42,8 +38,7 @@ public class BlowjobCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java index 76ae669..3b74e25 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class BoobsCommand implements Command { @@ -29,11 +27,9 @@ public class BoobsCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Boobs") .build()).queue(); @@ -42,8 +38,7 @@ public class BoobsCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java index 6999fe2..acb2da9 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class CumCommand implements Command { @@ -29,11 +27,9 @@ public class CumCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Cum") .build()).queue(); @@ -42,8 +38,7 @@ public class CumCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java index fb92f53..8247ac6 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class EroticCommand implements Command { @@ -29,11 +27,9 @@ public class EroticCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Erotic") .build()).queue(); @@ -42,8 +38,7 @@ public class EroticCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java index 27cf07e..8a55c83 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class FeetCommand implements Command { @@ -29,11 +27,9 @@ public class FeetCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Feet") .build()).queue(); @@ -42,8 +38,7 @@ public class FeetCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java index 98e21ae..a92b4b6 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class PornCommand implements Command { @@ -29,11 +27,9 @@ public class PornCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Porn") .build()).queue(); @@ -42,8 +38,7 @@ public class PornCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java index fd67018..33f4638 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class PussyCommand implements Command { @@ -29,11 +27,9 @@ public class PussyCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("GIF not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Pussy") .build()).queue(); @@ -42,8 +38,7 @@ public class PussyCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java index 2cd6a59..9c2b316 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java @@ -7,13 +7,11 @@ package com.bbn.hadder.commands.nsfw; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import java.io.IOException; -import java.time.Instant; public class TransCommand implements Command { @@ -29,11 +27,9 @@ public class TransCommand implements Command { Response response = caller.newCall(request).execute(); String url = response.body().string().replace("{\"url\":\"", ""); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setAuthor("Image not showing? Click here", url.replace("\"}", "")) .setImage(url.replace("\"}", "")) - .setTimestamp(Instant.now()) .setFooter("Trans") .build()).queue(); @@ -42,8 +38,7 @@ public class TransCommand implements Command { } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("No NSFW").setDescription("You can only execute this command in NSFW channels!").build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java new file mode 100644 index 0000000..189a156 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -0,0 +1,101 @@ +package com.bbn.hadder.commands.owner; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.Hadder; +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public class EvalCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + if (args.length > 0) { + ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); + + try { + engine.eval("var imports = new JavaImporter(java.io, java.lang, java.util);"); + } catch (ScriptException ex) { + ex.printStackTrace(); + } + + engine.put("msg", event.getMessage()); + engine.put("shradmanager", Hadder.shardManager); + engine.put("rethink", event.getRethink()); + engine.put("event", event); + engine.put("jda", event.getJDA()); + engine.put("message", event.getMessage()); + engine.put("guild", event.getGuild()); + engine.put("channel", event.getChannel()); + engine.put("author", event.getAuthor()); + engine.put("member", event.getMember()); + engine.put("self", event.getGuild().getSelfMember()); + + ScheduledExecutorService service = Executors.newScheduledThreadPool(1); + + service.schedule(() -> { + + long startExec = System.currentTimeMillis(); + Object out; + + try { + String script = ""; + for (int i = 0; i < args.length; i++) { + args[i] = args[i].replace("```java", "").replace("```", ""); + script += i == args.length-1 ? args[i]:args[i]+" "; + } + out = engine.eval(script); + + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Eval Command") + .addField("Input", "```java\n\n" + script + "```", false) + .addField("Output", "```java\n\n" + out.toString() + "```", false) + .addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false) + .build()).queue(); + } catch (Exception ex) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Eval Command") + .addField("Error", "```java\n\n" + ex.getMessage() + "```", false) + .addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false) + .build()).queue(); + + } + + service.shutdownNow(); + + }, 0, TimeUnit.MILLISECONDS); + + } else { + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"eval"}; + } + + @Override + public String description() { + return "Execute the given code"; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java new file mode 100644 index 0000000..5b1975b --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -0,0 +1,46 @@ +package com.bbn.hadder.commands.owner; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.entities.Guild; + +public class GuildLeaveCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + if (args.length > 0) { + Guild guild = event.getJDA().getGuildById(args[0]); + guild.leave().queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully left") + .setDescription("I successfully left " + guild.getName()) + .build()).queue(); + } else { + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"guildleave"}; + } + + @Override + public String description() { + return "Quit from a guild"; + } + + @Override + public String usage() { + return ""; + } +} 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 fceaa38..cb37c27 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -7,25 +7,22 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; public class RebootCommand implements Command { - @Override public void executed(String[] args, CommandEvent event) { - if (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")) { - + if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + Runtime.getRuntime().exit(69); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } @Override public String[] labels() { - return new String[]{"restart"}; + return new String[]{"restart", "restart"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java index 14c161b..14cfdd2 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -7,26 +7,24 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; public class ShutdownCommand implements Command { + @Override public void executed(String[] args, CommandEvent event) { - if (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")) { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("Shutdown").build()).queue(); + if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue(); event.getJDA().getShardManager().shutdown(); System.out.println("Bot shut down via Command..."); - System.exit(0); + Runtime.getRuntime().exit(69); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } @Override public String[] labels() { - return new String[]{"shutdown"}; + return new String[]{"shutdown", "exit"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java index 70ea455..aa70bf1 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java @@ -7,7 +7,6 @@ package com.bbn.hadder.commands.settings; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; public class PrefixCommand implements Command { @@ -15,11 +14,8 @@ public class PrefixCommand implements Command { public void executed(String[] args, CommandEvent event) { if (args.length == 1) { event.getRethink().setUserPrefix(args[0], event.getAuthor().getId()); - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue(); } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java index 69ca2aa..7abbf78 100644 --- a/src/main/java/com/bbn/hadder/core/Config.java +++ b/src/main/java/com/bbn/hadder/core/Config.java @@ -59,6 +59,10 @@ public class Config { .key("DiscordBotList").value(null) .key("DiscordBestBots").value(null) .key("DiscordBoats").value(null) + .key("YetAnotherBotList").value(null) + .value("DiscordExtremeList").value(null) + .value("DiscordBotReviews").value(null) + .value("DiscordBots").value(null) .endObject().endObject().toString(); } @@ -129,4 +133,12 @@ public class Config { public String getDiscordBotReviewsToken() { return config.getJSONObject("Tokens").getString("DiscordBotReviews"); } + + public String getDiscordBotsToken() { + return config.getJSONObject("Tokens").getString("DiscordBots"); + } + + public String getBotListSpaceToken() { + return config.getJSONObject("Tokens").getString("BotListSpace"); + } } diff --git a/src/main/java/com/bbn/hadder/core/LinkUtils.java b/src/main/java/com/bbn/hadder/core/LinkUtils.java index 1d5315a..ea6bd6c 100644 --- a/src/main/java/com/bbn/hadder/core/LinkUtils.java +++ b/src/main/java/com/bbn/hadder/core/LinkUtils.java @@ -25,7 +25,7 @@ public class LinkUtils { private void send(Message message, TextChannel channel, User user, List reactions, boolean usedmessagebuilder) { if (!channel.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { - channel.sendMessage(new EmbedBuilder().setTitle("Wait a sec").setDescription("Please contact the owner of the server to give me the manage webhook permission").build()).queue(); + channel.sendMessage(new EmbedBuilder().setTitle("Wait a sec").setDescription("Please contact the owner of the server to give me the Manage Webhooks permission").build()).queue(); } else { channel.retrieveWebhooks().queue( webhooks -> { @@ -87,9 +87,7 @@ public class LinkUtils { } } ); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { + } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } } diff --git a/src/main/java/com/bbn/hadder/listener/CommandListener.java b/src/main/java/com/bbn/hadder/listener/CommandListener.java index b0d4bc9..82df7a8 100644 --- a/src/main/java/com/bbn/hadder/listener/CommandListener.java +++ b/src/main/java/com/bbn/hadder/listener/CommandListener.java @@ -22,14 +22,12 @@ public class CommandListener extends ListenerAdapter { @Override public void onMessageReceived(MessageReceivedEvent event) { - if (event.isFromType(ChannelType.TEXT)) { - if (!event.getAuthor().isBot()) { - String[] prefixes = {rethink.getUserPrefix(event.getAuthor().getId()), rethink.getGuildPrefix(event.getGuild().getId()), event.getGuild().getSelfMember().getAsMention()+" ", event.getGuild().getSelfMember().getAsMention()}; - for (String prefix : prefixes) { - if (event.getMessage().getContentRaw().startsWith(prefix)) { - handler.handle(event, rethink, prefix); - return; - } + if (event.isFromType(ChannelType.TEXT) && !event.getAuthor().isBot()) { + String[] prefixes = {rethink.getUserPrefix(event.getAuthor().getId()), rethink.getGuildPrefix(event.getGuild().getId()), event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention()}; + for (String prefix : prefixes) { + if (event.getMessage().getContentRaw().startsWith(prefix)) { + handler.handle(event, rethink, prefix); + return; } } } diff --git a/src/main/java/com/bbn/hadder/listener/GuildListener.java b/src/main/java/com/bbn/hadder/listener/GuildListener.java index b0c91fcc..920f10c 100644 --- a/src/main/java/com/bbn/hadder/listener/GuildListener.java +++ b/src/main/java/com/bbn/hadder/listener/GuildListener.java @@ -8,7 +8,6 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.core.Config; import com.bbn.hadder.utils.BotList; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.events.guild.GuildJoinEvent; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; @@ -37,8 +36,7 @@ public class GuildListener extends ListenerAdapter { }).start(); rethink.insertGuild(event.getGuild().getId()); - EmbedBuilder builder = new EmbedBuilder(); - event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Joined Server") .setThumbnail(event.getGuild().getIconUrl()) .addField("Name", event.getGuild().getName(), true) @@ -53,8 +51,7 @@ public class GuildListener extends ListenerAdapter { } public void onGuildLeave(GuildLeaveEvent event) { - EmbedBuilder builder = new EmbedBuilder(); - event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder) + event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) .setTitle("Left Server") .setThumbnail(event.getGuild().getIconUrl()) .addField("Name", event.getGuild().getName(), true) diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java new file mode 100644 index 0000000..b8bc2bb --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -0,0 +1,97 @@ +package com.bbn.hadder.listener; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.Rethink; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.ChannelType; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.events.message.MessageUpdateEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.json.JSONObject; + +import javax.annotation.Nonnull; + +public class InviteLinkListener extends ListenerAdapter { + + private Rethink rethink; + + public InviteLinkListener(Rethink rethink) { + this.rethink = rethink; + } + + @Override + public void onMessageReceived(@Nonnull MessageReceivedEvent event) { + if (event.isFromType(ChannelType.TEXT)) { + if (event.getMessage().getContentRaw().contains("discord.gg/")) { + if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + @Override + public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { + if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/main/java/com/bbn/hadder/listener/LinkListener.java b/src/main/java/com/bbn/hadder/listener/LinkListener.java index d709e3c..d678b8d 100644 --- a/src/main/java/com/bbn/hadder/listener/LinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/LinkListener.java @@ -3,8 +3,8 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; import com.bbn.hadder.core.LinkUtils; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; @@ -15,7 +15,7 @@ import java.util.ArrayList; public class LinkListener extends ListenerAdapter { - Rethink rethink; + private Rethink rethink; public LinkListener(Rethink rethink) { this.rethink = rethink; @@ -25,44 +25,38 @@ public class LinkListener extends ListenerAdapter { public void onMessageReactionAdd(@Nonnull MessageReactionAddEvent event) { event.getChannel().retrieveMessageById(event.getMessageId()).queue( msg -> { - if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) { - if (!event.getMember().getUser().equals(event.getJDA().getSelfUser())) { - if (msg.getAuthor().equals(event.getJDA().getSelfUser())) { - if (msg.getEmbeds().size() == 1) { - if (msg.getEmbeds().get(0).getFooter() == null) { - if (msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) { - String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); - String requestguildid = null; - for (int i = requestguild.length() - 1; i >= 0; i--) { - if (String.valueOf(requestguild.charAt(i)).equals("(")) { - requestguildid = requestguild.substring(i + 1); - break; - } - } - if (requestguildid != null) { - if (event.getReactionEmote().getName().equals("✅")) { - rethink.addLinkedGuild(event.getGuild().getId(), requestguildid); - rethink.addLinkedGuild(requestguildid, event.getGuild().getId()); - - msg.delete().queue(); - - MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder().setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!")).build(); - event.getChannel().sendMessage(msgembed).queue(); - event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); - } else if (event.getReactionEmote().getName().equals("❌")) { - msg.delete().queue(); - - MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder().setTitle("Guild linking denied.").setDescription("The Guild denied the link. :(")).build(); - event.getChannel().sendMessage(msgembed).queue(); - event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); - } - } - } - } + if (!event.getMember().getUser().equals(event.getJDA().getSelfUser()) && msg.getAuthor().equals(event.getJDA().getSelfUser()) && msg.getEmbeds().size() == 1 && msg.getEmbeds().get(0).getFooter() == null && msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) { + if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) { + String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); + String requestguildid = null; + for (int i = requestguild.length() - 1; i >= 0; i--) { + if (String.valueOf(requestguild.charAt(i)).equals("(")) { + requestguildid = requestguild.substring(i + 1); + break; } } + if (requestguildid != null) { + if (event.getReactionEmote().getName().equals("✅")) { + rethink.addLinkedGuild(event.getGuild().getId(), requestguildid); + rethink.addLinkedGuild(requestguildid, event.getGuild().getId()); + + msg.delete().queue(); + + MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!").build(); + event.getChannel().sendMessage(msgembed).queue(); + event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); + } else if (event.getReactionEmote().getName().equals("❌")) { + msg.delete().queue(); + + MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Guild linking denied.").setDescription("The Guild denied the linking. :(").build(); + event.getChannel().sendMessage(msgembed).queue(); + event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); + } + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } } @@ -71,11 +65,9 @@ public class LinkListener extends ListenerAdapter { @Override public void onMessageReceived(@Nonnull MessageReceivedEvent event) { - if (!event.isWebhookMessage()) { - if (event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId()))) { + if (!event.isWebhookMessage() && event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId())) && event.isFromType(ChannelType.TEXT)) { new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() { }, rethink, false); - } } } } diff --git a/src/main/java/com/bbn/hadder/listener/MentionListener.java b/src/main/java/com/bbn/hadder/listener/MentionListener.java index 07e2cc3..3d46a3d 100644 --- a/src/main/java/com/bbn/hadder/listener/MentionListener.java +++ b/src/main/java/com/bbn/hadder/listener/MentionListener.java @@ -2,7 +2,6 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -19,17 +18,15 @@ public class MentionListener extends ListenerAdapter { @Override public void onMessageReceived(@Nonnull MessageReceivedEvent event) { - if (event.isFromType(ChannelType.TEXT)) { - if (event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention())) { - EmbedBuilder builder = new EmbedBuilder() - .setTitle("Hello I'm Hadder.") - .setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl()) - .addField("Users", String.valueOf(event.getJDA().getUsers().size()), false) - .addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false) - .addField("Prefix (User)", rethink.getUserPrefix(event.getAuthor().getId()), false) - .addField("Prefix (Guild)", rethink.getGuildPrefix(event.getGuild().getId()), false); - event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder).build()).queue(); - } + if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention())) { + event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Hello I'm Hadder.") + .setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl()) + .addField("Users", String.valueOf(event.getJDA().getUsers().size()), false) + .addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false) + .addField("Prefix (User)", rethink.getUserPrefix(event.getAuthor().getId()), false) + .addField("Prefix (Guild)", rethink.getGuildPrefix(event.getGuild().getId()), false) + .build()).queue(); } } } diff --git a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java index 6bd21cf..8672e28 100644 --- a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java +++ b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java @@ -5,7 +5,6 @@ package com.bbn.hadder.listener; */ import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.PrivateChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -16,21 +15,22 @@ import java.time.Instant; public class PrivateMessageListener extends ListenerAdapter { public void onMessageReceived(MessageReceivedEvent event) { - if (event.isFromType(ChannelType.PRIVATE)) { - if (!event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { + if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { + PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); + PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); - PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); - PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); - - EmbedBuilder message = new EmbedBuilder() - .setTitle("New DM by " + event.getAuthor().getAsTag()) - .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) - .setDescription(event.getMessage().getContentRaw()) - .setTimestamp(Instant.now()); - - Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, message).build()).queue(); - Hax.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, message).build()).queue(); - } + Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("New DM by " + event.getAuthor().getAsTag()) + .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) + .setDescription(event.getMessage().getContentRaw()) + .setTimestamp(Instant.now()) + .build()).queue(); + Hax.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("New DM by " + event.getAuthor().getAsTag()) + .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) + .setDescription(event.getMessage().getContentRaw()) + .setTimestamp(Instant.now()) + .build()).queue(); } } } diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java index aba0854..43ca93f 100644 --- a/src/main/java/com/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -6,6 +6,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; 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; public class RulesListener extends ListenerAdapter { @@ -18,10 +19,33 @@ public class RulesListener extends ListenerAdapter { @Override public void onMessageReactionAdd(MessageReactionAddEvent event) { - if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { - if (!event.getMember().getUser().isBot()) { - event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue(); + if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) { + if (event.getReactionEmote().isEmote()) { + if (rethink.getRulesAEmote(event.getGuild().getId()).contains(event.getReactionEmote().getId())) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); + } else if (rethink.getRulesDEmote(event.getGuild().getId()).contains(event.getReactionEmote().getId())) { + event.getReaction().removeReaction(event.getUser()).queue(); + if (event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getMember().kick().reason("Declined the rules"); + } + } + } else { + if (event.getReactionEmote().getEmoji().equals(rethink.getRulesAEmote(event.getGuild().getId()))) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); + } else if (event.getReactionEmote().getEmoji().equals(rethink.getRulesDEmote(event.getGuild().getId()))) { + event.getReaction().removeReaction(event.getUser()).queue(); + if (event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getMember().kick().reason("Declined the rules"); + } + } } } } + + @Override + public void onMessageReactionRemove(MessageReactionRemoveEvent event) { + if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) { + event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue(); + } + } } diff --git a/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java b/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java new file mode 100644 index 0000000..ff3f483 --- /dev/null +++ b/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java @@ -0,0 +1,25 @@ +package com.bbn.hadder.utils; + +/* + * @author Skidder / GregTCLTK + */ + +import net.dv8tion.jda.api.audio.AudioSendHandler; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; + +public class AudioPlayerSendHandler implements AudioSendHandler { + + @Override + public boolean canProvide() { + return false; + } + + @Nullable + @Override + public ByteBuffer provide20MsAudio() { + + return null; + } +} diff --git a/src/main/java/com/bbn/hadder/utils/BotList.java b/src/main/java/com/bbn/hadder/utils/BotList.java index be35045..5bbba34 100644 --- a/src/main/java/com/bbn/hadder/utils/BotList.java +++ b/src/main/java/com/bbn/hadder/utils/BotList.java @@ -26,6 +26,8 @@ public class BotList { private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats"; private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639"; private static String DiscordBotReviews = "https://discordbotreviews.xyz/api/bot/637002314162372639/stats"; + private static String DiscordBots = "https://top.gg/api/bots/637002314162372639/stats"; + private static String BotListSpace = "https://api.botlist.space/v1/bots/637002314162372639"; private Config config; @@ -40,6 +42,7 @@ public class BotList { json.put("guildCount", Hadder.shardManager.getGuilds().size()); json.put("guilds", Hadder.shardManager.getGuilds().size()); json.put("users", Hadder.shardManager.getUsers().size()); + json.put("shard_count", Hadder.shardManager.getShards().size()); RequestBody body = RequestBody.create(MediaType.parse("application/json"), json.toString()); @@ -143,7 +146,7 @@ public class BotList { try { new OkHttpClient().newCall(discordextremelist).execute().close(); - System.out.println("Successfully posted count to the Discord Extreme List!"); + System.out.println("Successfully posted count for the Discord Extreme List!"); } catch (IOException e) { e.printStackTrace(); } @@ -162,7 +165,36 @@ public class BotList { } catch (IOException e) { e.printStackTrace(); } + + // Discord Bots + + Request discordbots = new Request.Builder() + .url(DiscordBots) + .post(body) + .addHeader("Authorization", config.getDiscordBotsToken()) + .build(); + + try { + new OkHttpClient().newCall(discordbots).execute().close(); + System.out.println("Successfully posted count to Discord Bots!"); + } catch (IOException e) { + e.printStackTrace(); + } + + // BotListSpace + + Request botlistspace = new Request.Builder() + .url(BotListSpace) + .post(body) + .addHeader("Authorization", config.getBotListSpaceToken()) + .build(); + + try { + new OkHttpClient().newCall(botlistspace).execute().close(); + System.out.println("Successfully posted count to BotList.Space!"); + } catch (IOException e) { + e.printStackTrace(); + } } } - } diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index 4ab9ee7..0121acd 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -3,32 +3,53 @@ package com.bbn.hadder.utils; import net.dv8tion.jda.api.EmbedBuilder; import java.awt.*; +import java.time.Instant; public class MessageEditor { - public EmbedBuilder setDefaultSettings(MessageType type, EmbedBuilder embedBuilder) { + public EmbedBuilder setDefaultSettings(MessageType type) { + EmbedBuilder builder = new EmbedBuilder(); switch (type) { case INFO: - embedBuilder.setColor(new Color(47,94,105)); + builder + .setColor(new Color(47, 94, 105)) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case ERROR: - embedBuilder.setColor(Color.RED); + builder + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case WARNING: - embedBuilder.setColor(Color.ORANGE); + builder + .setColor(Color.ORANGE) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case NO_PERMISSION: - embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("You are not authorized to execute this command!").setColor(Color.RED); + builder + .setTitle("⛔ No Permission ⛔") + .setDescription("You are not authorized to execute this command!") + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case NO_SELF_PERMISSION: - embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("Unfortunately, I do not have the required rights to perform this action").setColor(Color.RED); + builder + .setTitle("⛔ No Permission ⛔") + .setDescription("Unfortunately, I do not have the required rights to perform this action") + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; } - return embedBuilder; + return builder; } public enum MessageType { @@ -38,5 +59,4 @@ public class MessageEditor { NO_PERMISSION, NO_SELF_PERMISSION } - }