diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
new file mode 100644
index 0000000..aaeb397
--- /dev/null
+++ b/.github/workflows/maven.yml
@@ -0,0 +1,55 @@
+name: Hadder
+
+on: [push]
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - name: Set up JDK 1.13
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.13
+ - name: Build with Maven
+ run: mvn -B package --file pom.xml
+
+ deploy:
+ runs-on: ubuntu-latest
+ needs: test
+ if: github.ref == 'refs/heads/master'
+ steps:
+ - uses: actions/checkout@v1
+ - name: Set up JDK 1.13
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.13
+ - name: Build Final Jar
+ run: mvn clean compile assembly:single
+ - name: Copy folder content recursively to remote
+ uses: garygrossgarten/github-action-scp@release
+ with:
+ local: ./target/Hadder-Build.jar
+ remote: /home/Bots/Hadder-Build.jar
+ host: ${{ secrets.HOST }}
+ username: ${{ secrets.USERNAME }}
+ password: ${{ secrets.PASSWORD }}
+ - name: executing remote ssh commands using password
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.HOST }}
+ username: ${{ secrets.USERNAME }}
+ password: ${{ secrets.PASSWORD }}
+ port: ${{ secrets.PORT }}
+ script: /home/Bots/deploy.sh
+ - name: Send Webhook Notification
+ if: always()
+ env:
+ JOB_STATUS: ${{ job.status }}
+ WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }}
+ HOOK_OS_NAME: ${{ runner.os }}
+ WORKFLOW_NAME: ${{ github.workflow }}
+ run: |
+ git clone https://github.com/DiscordHooks/github-actions-discord-webhook.git webhook
+ bash webhook/send.sh $JOB_STATUS $WEBHOOK_URL
+ shell: bash
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index f7aeaa3..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-language: java
-jdk:
- - openjdk12
-
-addons:
- apt:
- packages:
- - sshpass
-
-after_success:
- - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
- - chmod +x send.sh
- - ./send.sh success $WEBHOOK_URL
- - mvn clean compile assembly:single
- - cd target
- - sshpass -p $SFTP_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r Hadder-Build.jar $SFTP_USER@$SFTP_IP:/home/Bots/Hadder-Build.jar
- - echo $?
- - sshpass -p $SFTP_PASSWORD ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null $SFTP_IP /home/Bots/deploy.sh
- - echo $?
-
-after_failure:
- - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
- - chmod +x send.sh
- - ./send.sh failure $WEBHOOK_URL
diff --git a/README.md b/README.md
index cd779c4..a78d7e1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
# Hadder
-[](https://travis-ci.com/BigBotNetwork/Hadder)
+The Hadder Discord bot is a multi-purpose Discord Bot.
+
+
+[](https://github.com/BigBotNetwork/Hadder)
+
+
diff --git a/pom.xml b/pom.xml
index 23bcffe..7afe0e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
Hadder
Hadder
- 0.7-ALPHA
+ 0.7.1-ALPHA
Hadder
@@ -25,7 +25,7 @@
net.dv8tion
JDA
- 4.0.0_56
+ 4.0.0_61
org.json
diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java
index 5cf0dfc..27df501 100644
--- a/src/main/java/com/bbn/hadder/Hadder.java
+++ b/src/main/java/com/bbn/hadder/Hadder.java
@@ -23,7 +23,7 @@ public class Hadder {
startBot();
}
- public static void startBot() {
+ private static void startBot() {
Config config = new Config("./config.json");
if (!config.fileExists()) config.create();
config.load();
@@ -47,12 +47,14 @@ public class Hadder {
new ShutdownCommand(),
new KickCommand(),
new PingCommand(),
- new GifCommand(config),
+ new GifCommand(),
new ClearCommand(),
new GitHubCommand(),
new ScreenshareCommand(),
new RebootCommand(),
new EqualsCommand(),
+ new InviteCommand(),
+ new NickCommand(),
new GuildPrefixCommand()), config);
builder.addEventListeners(
diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java
index 7aed33c..ba6a03e 100644
--- a/src/main/java/com/bbn/hadder/Rethink.java
+++ b/src/main/java/com/bbn/hadder/Rethink.java
@@ -18,11 +18,11 @@ public class Rethink {
private Connection conn;
private Config config;
- public Rethink(Config config) {
+ Rethink(Config config) {
this.config = config;
}
- public boolean connect() {
+ public void connect() {
try {
conn = r.connection()
.hostname(config.getDatabaseIP())
@@ -35,7 +35,6 @@ public class Rethink {
System.out.println(e.toString());
System.out.println("DB CONNECTION FAILED");
}
- return true;
}
public void disconnect() {
@@ -46,8 +45,7 @@ public class Rethink {
private JSONArray getAsArray(String table, String where, String value) {
try {
String string = r.table(table).filter(row -> row.g(where.toLowerCase()).eq(value)).coerceTo("array").toJson().run(conn);
- JSONArray jsonArray = new JSONArray(string);
- return jsonArray;
+ return new JSONArray(string);
} catch (NoSuchElementException e) {
return null;
} catch (Exception e) {
@@ -105,15 +103,15 @@ public class Rethink {
return this.get("user", "id", id, "prefix");
}
- public String setServerPrefix(String prefix, String guildid) {
+ public String setGuildPrefix(String prefix, String guildid) {
return this.update("server", guildid, "prefix", prefix);
}
- public String getServerPrefix(String id) {
+ public String getGuildPrefix(String id) {
return this.get("server", "id", id, "prefix");
}
- public String insertServer(String id) {
+ public String insertGuild(String id) {
return this.insert("server", r.hashMap("id", id).with("prefix", "h."));
}
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 14c068e..ae57750 100644
--- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
@@ -19,12 +19,6 @@ import java.util.Random;
public class GifCommand implements Command {
- private Config config;
-
- public GifCommand(Config config) {
- this.config = config;
- }
-
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
@@ -35,7 +29,7 @@ public class GifCommand implements Command {
}
OkHttpClient caller = new OkHttpClient();
- Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + config.getGiphyToken()).build();
+ 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();
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 bcc800d..848c927 100644
--- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java
@@ -4,6 +4,7 @@ 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 java.util.ArrayList;
import java.util.HashMap;
@@ -13,47 +14,51 @@ public class HelpCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
- if (args.length == 0) {
- HashMap> hashMap = new HashMap<>();
- for (Command cmd : event.getCommandHandler().getCommandList()) {
- if (!hashMap.containsKey(cmd.getClass().getPackageName())) {
- ArrayList cmdlist = new ArrayList<>();
- cmdlist.add(cmd);
- hashMap.put(cmd.getClass().getPackageName(), cmdlist);
- } else {
- hashMap.get(cmd.getClass().getPackageName()).add(cmd);
- }
- }
- EmbedBuilder eb = new EmbedBuilder();
- for (Map.Entry> entry : hashMap.entrySet()) {
- if (!entry.getKey().endsWith("owner") || (entry.getKey().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < entry.getValue().size(); i++) {
- Command cmd = entry.getValue().get(i);
- sb.append("`" + cmd.labels()[0] + "`");
- if (i < entry.getValue().size() - 1) sb.append(", ");
+ if (event.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_EMBED_LINKS)) {
+ if (args.length == 0) {
+ HashMap> hashMap = new HashMap<>();
+ for (Command cmd : event.getCommandHandler().getCommandList()) {
+ if (!hashMap.containsKey(cmd.getClass().getPackageName())) {
+ ArrayList cmdlist = new ArrayList<>();
+ cmdlist.add(cmd);
+ hashMap.put(cmd.getClass().getPackageName(), cmdlist);
+ } else {
+ hashMap.get(cmd.getClass().getPackageName()).add(cmd);
}
- String[] packagesplit = entry.getKey().split("\\.");
- eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false);
}
- }
- new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
- 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 (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
- EmbedBuilder eb = new EmbedBuilder();
- 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", event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
- new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
- event.getChannel().sendMessage(eb.build()).queue();
+ EmbedBuilder eb = new EmbedBuilder();
+ for (Map.Entry> entry : hashMap.entrySet()) {
+ if (!entry.getKey().endsWith("owner") || (entry.getKey().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < entry.getValue().size(); i++) {
+ Command cmd = entry.getValue().get(i);
+ sb.append("`").append(cmd.labels()[0]).append("`");
+ if (i < entry.getValue().size() - 1) sb.append(", ");
+ }
+ String[] packagesplit = entry.getKey().split("\\.");
+ eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false);
+ }
+ }
+ new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
+ 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 (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
+ EmbedBuilder eb = new EmbedBuilder();
+ 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", event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
+ new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb);
+ event.getChannel().sendMessage(eb.build()).queue();
+ }
}
}
}
}
+ } else {
+ event.getTextChannel().sendMessage("I need the Embed Links Permission to send the Help Menu!").queue();
}
}
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 a75f0d4..5bafb91 100644
--- a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java
@@ -21,52 +21,54 @@ public class GitHubCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
- Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build();
- try {
-
- Response response = new OkHttpClient().newCall(request).execute();
- JSONObject json = new JSONObject(response.body().string());
-
- String nickname = json.getString("name");
- String bio = "None";
- String location = "Unknown";
- String website = "None";
+ 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();
+ } else {
+ Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build();
try {
- bio = json.getString("bio");
+
+ Response response = new OkHttpClient().newCall(request).execute();
+ JSONObject json = new JSONObject(response.body().string());
+
+ String nickname = json.getString("name");
+ String bio = "None";
+ String location = "Unknown";
+ String website = "None";
+ try {
+ bio = json.getString("bio");
+ } catch (JSONException ignored) {
+ }
+ try {
+ location = json.getString("location");
+ } catch (JSONException ignored) {
+ }
+
+ if (!json.getString("blog").equals("")) website = json.getString("blog");
+
+ EmbedBuilder builder = new EmbedBuilder();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder)
+ .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)
+ .addField("Location", location, true)
+ .addField("Website", website, true)
+ .addField("Public repositories", String.valueOf(json.getInt("public_repos")), true)
+ .addField("Public gists", String.valueOf(json.getInt("public_gists")), true)
+ .addField("Followers", String.valueOf(json.getInt("followers")), true)
+ .addField("Following", String.valueOf(json.getInt("following")), true)
+ .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();
} 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();
}
- try {
- location = json.getString("location");
- } catch (JSONException e) {
-
- }
-
- if(!json.getString("blog").equals("")) website = json.getString("blog");
-
- EmbedBuilder builder = new EmbedBuilder();
- event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder)
- .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)
- .addField("Location", location, true)
- .addField("Website", website, true)
- .addField("Public repositories", String.valueOf(json.getInt("public_repos")), true)
- .addField("Public gists", String.valueOf(json.getInt("public_gists")), true)
- .addField("Followers", String.valueOf(json.getInt("followers")), true)
- .addField("Following", String.valueOf(json.getInt("following")), true)
- .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();
- } 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();
}
} else {
- EmbedBuilder builder = new EmbedBuilder();
- event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to specify a user!").build()).queue();
+ event.getTextChannel().sendMessage("SOON").queue();
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java b/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java
new file mode 100644
index 0000000..ac79e18
--- /dev/null
+++ b/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java
@@ -0,0 +1,35 @@
+package com.bbn.hadder.commands.misc;
+
+/*
+ * @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 net.dv8tion.jda.api.EmbedBuilder;
+
+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!](discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)").build()).queue();
+ }
+
+ @Override
+ public String[] labels() {
+ return new String[]{"invite"};
+ }
+
+ @Override
+ public String description() {
+ return "Hadder Bot Invite";
+ }
+
+ @Override
+ public String usage() {
+ return "";
+ }
+}
diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java
index 7c5f810..80ed92e 100644
--- a/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java
@@ -33,7 +33,7 @@ public class ScreenshareCommand implements Command {
List vcs = event.getGuild().getVoiceChannelsByName(String.join(" ", args), true);
if (vcs.size() > 1) {
EmbedBuilder eb = new EmbedBuilder()
- .setTitle("Please Choose a Voicechannel")
+ .setTitle("Please Choose a Voice Channel")
.setDescription("There is more than one channel with this name");
for (int i = 0; i < vcs.size(); i++) {
VoiceChannel voiceChannel = vcs.get(i);
@@ -54,14 +54,14 @@ public class ScreenshareCommand implements Command {
}
} catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.ERROR, new EmbedBuilder()
- .setTitle("Wait, thats illegal")
+ .setTitle("Wait, that's illegal")
.setDescription("This isn't a Number.")).build()).queue();
}
}, event.getJDA(), event.getAuthor());
} else if (vcs.size()==0) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.ERROR, new EmbedBuilder()
.setTitle("Hol' up")
- .setDescription("There is no Voicechannel named like this. \n\nNote: Make sure the Voicechannel 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();
} else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, new EmbedBuilder()
.setTitle("Here's your Url to share your Screen")
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 5d61ed8..19d7b94 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java
@@ -38,10 +38,29 @@ public class BanCommand implements Command {
}
} 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 a user!").build()).queue();
- } else {
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue();
+ } else if (event.getMessage().getMentionedMembers().size() > 1) {
+ for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
+ Member member = event.getMessage().getMentionedMembers().get(i);
+ if (!event.getAuthor().getId().equals(member.getId())) {
+ if (!event.getJDA().getSelfUser().getId().equals(member.getId())) {
+ 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();
+ }
+ } else {
+ EmbedBuilder builder = new EmbedBuilder();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).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();
+ }
+ }
EmbedBuilder builder = new EmbedBuilder();
- event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("We will be adding multiple banning within a command in the future.").build()).queue();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("✅ Successfully banned ✅").setDescription("I successfully banned " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
}
} else {
EmbedBuilder builder = new EmbedBuilder();
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 81f357a..2c41a40 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java
@@ -14,7 +14,7 @@ public class GuildPrefixCommand implements Command {
if (args.length == 1) {
if (!args[0].contains("\"")) {
- event.getRethink().setServerPrefix(args[0], event.getGuild().getId());
+ event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
EmbedBuilder builder = new EmbedBuilder();
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 74ca429..07f538c 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java
@@ -11,6 +11,7 @@ import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member;
+
public class KickCommand implements Command {
@Override
@@ -30,18 +31,37 @@ public class KickCommand implements Command {
}
} 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, builder).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();
}
} 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 a user!").build()).queue();
- } else {
- EmbedBuilder builder = new EmbedBuilder();
- event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("We will be adding multiple kicking within a command in the future.").build()).queue();
+ 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();
+ } else if (event.getMessage().getMentionedMembers().size() > 1) {
+ for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
+ Member member = event.getMessage().getMentionedMembers().get(i);
+ if (!event.getAuthor().getId().equals(member.getId())) {
+ if (!event.getJDA().getSelfUser().getId().equals(member.getId())) {
+ 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();
+ }
+ } else {
+ EmbedBuilder builder = new EmbedBuilder();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).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();
+ }
+ }
+ 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();
}
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java
new file mode 100644
index 0000000..1a7319b
--- /dev/null
+++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java
@@ -0,0 +1,91 @@
+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.EmbedBuilder;
+import net.dv8tion.jda.api.Permission;
+import net.dv8tion.jda.api.entities.Member;
+
+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.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) {
+ if (event.getMessage().getMentionedMembers().size() == 1) {
+ if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) {
+ if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) {
+ 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();
+ } 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();
+ }
+ } 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();
+ }
+ } else {
+ EmbedBuilder builder = new EmbedBuilder();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).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();
+ } 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();
+ }
+ }
+ } 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();
+ } else {
+ for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
+ Member member = event.getMessage().getMentionedMembers().get(i);
+ if (!event.getJDA().getSelfUser().getId().equals(member.getId())) {
+ event.getGuild().modifyNickname(member, args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue();
+ } else {
+ 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();
+ }
+ } else {
+ EmbedBuilder builder = new EmbedBuilder();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_SELF_PERMISSION, builder).build()).queue();
+ }
+ } else {
+ EmbedBuilder builder = new EmbedBuilder();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue();
+ }
+ }
+
+ @Override
+ public String[] labels() {
+ return new String[]{"nick"};
+ }
+
+ @Override
+ public String description() {
+ return "Rename a user";
+ }
+
+ @Override
+ public String usage() {
+ return "<@user> ";
+ }
+}
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 0923ba1..b058ffa 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java
@@ -12,10 +12,11 @@ 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")) {
-
+
} else {
EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue();
diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java
index cb7f7dd..71c3a49 100644
--- a/src/main/java/com/bbn/hadder/core/CommandHandler.java
+++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java
@@ -9,8 +9,8 @@ import java.util.List;
public class CommandHandler {
- List commandList;
- Config config;
+ private List commandList;
+ private Config config;
public CommandHandler(List commandList, Config config) {
this.commandList = commandList;
@@ -18,7 +18,6 @@ public class CommandHandler {
}
public void handle(MessageReceivedEvent event, Rethink rethink, String prefix) {
- StringBuilder regexBuilder = new StringBuilder().append("\\").append(prefix);
String invoke = event.getMessage().getContentRaw().replaceFirst(prefix, "").split(" ")[0];
for (Command cmd : commandList) {
for (String label : cmd.labels()) {
diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java
index 7b9ea31..f8df1e0 100644
--- a/src/main/java/com/bbn/hadder/core/Config.java
+++ b/src/main/java/com/bbn/hadder/core/Config.java
@@ -33,7 +33,7 @@ public class Config {
public void create() {
try {
if (Files.notExists(file)) {
- file = Files.createFile(file);
+ Files.createFile(file);
}
Files.write(file, defaultConfigContent().getBytes());
} catch (IOException e) {
@@ -113,4 +113,12 @@ public class Config {
public String getDiscordBoatsToken() {
return config.getJSONObject("Tokens").getString("DiscordBoats");
}
+
+ public String getYetAnotherBotListToken() {
+ return config.getJSONObject("Tokens").getString("YetAnotherBotList");
+ }
+
+ public String getDiscordExtremeListToken() {
+ return config.getJSONObject("Tokens").getString("DiscordExtremeList");
+ }
}
diff --git a/src/main/java/com/bbn/hadder/listener/CommandListener.java b/src/main/java/com/bbn/hadder/listener/CommandListener.java
index e09f7ea..b0d4bc9 100644
--- a/src/main/java/com/bbn/hadder/listener/CommandListener.java
+++ b/src/main/java/com/bbn/hadder/listener/CommandListener.java
@@ -24,7 +24,7 @@ public class CommandListener extends ListenerAdapter {
public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) {
if (!event.getAuthor().isBot()) {
- String[] prefixes = {rethink.getUserPrefix(event.getAuthor().getId()), rethink.getServerPrefix(event.getGuild().getId()), event.getGuild().getSelfMember().getAsMention()+" ", event.getGuild().getSelfMember().getAsMention()};
+ 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);
diff --git a/src/main/java/com/bbn/hadder/listener/GuildListener.java b/src/main/java/com/bbn/hadder/listener/GuildListener.java
index 789e8b7..bd506f2 100644
--- a/src/main/java/com/bbn/hadder/listener/GuildListener.java
+++ b/src/main/java/com/bbn/hadder/listener/GuildListener.java
@@ -34,7 +34,7 @@ public class GuildListener extends ListenerAdapter {
}
}
- rethink.insertServer(event.getGuild().getId());
+ rethink.insertGuild(event.getGuild().getId());
EmbedBuilder builder = new EmbedBuilder();
event.getJDA().getTextChannelById("475722540140986369").sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder)
.setTitle("Joined Server")
diff --git a/src/main/java/com/bbn/hadder/listener/MentionListener.java b/src/main/java/com/bbn/hadder/listener/MentionListener.java
index 45638e1..cc7b3dc 100644
--- a/src/main/java/com/bbn/hadder/listener/MentionListener.java
+++ b/src/main/java/com/bbn/hadder/listener/MentionListener.java
@@ -27,7 +27,7 @@ public class MentionListener extends ListenerAdapter {
.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.getServerPrefix(event.getGuild().getId()), false);
+ .addField("Prefix (Guild)", rethink.getGuildPrefix(event.getGuild().getId()), false);
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).build()).queue();
}
}
diff --git a/src/main/java/com/bbn/hadder/listener/ReadyListener.java b/src/main/java/com/bbn/hadder/listener/ReadyListener.java
index e238ca1..678497c 100644
--- a/src/main/java/com/bbn/hadder/listener/ReadyListener.java
+++ b/src/main/java/com/bbn/hadder/listener/ReadyListener.java
@@ -29,7 +29,7 @@ public class ReadyListener extends ListenerAdapter {
}
}
for (Guild g : event.getJDA().getGuilds()) {
- rethink.insertServer(g.getId());
+ rethink.insertGuild(g.getId());
}
new BotList(config).post();
diff --git a/src/main/java/com/bbn/hadder/utils/BotList.java b/src/main/java/com/bbn/hadder/utils/BotList.java
index aeddf4a..dcd1bb5 100644
--- a/src/main/java/com/bbn/hadder/utils/BotList.java
+++ b/src/main/java/com/bbn/hadder/utils/BotList.java
@@ -23,6 +23,8 @@ public class BotList {
private static String DiscordBotList = "https://discordbotlist.com/api/bots/637002314162372639/stats";
private static String DiscordBestBots = "https://discordsbestbots.xyz/api/bots/637002314162372639/stats";
private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639";
+ private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats";
+ private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639";
private Config config;
@@ -34,6 +36,7 @@ public class BotList {
if (Files.notExists(Paths.get("./DEBUG"))) {
JSONObject json = new JSONObject();
json.put("server_count", Hadder.shardManager.getGuilds().size());
+ json.put("guildCount", Hadder.shardManager.getGuilds().size());
json.put("guilds", Hadder.shardManager.getGuilds().size());
json.put("users", Hadder.shardManager.getUsers().size());
@@ -113,6 +116,35 @@ public class BotList {
} catch (IOException e) {
e.printStackTrace();
}
+
+ // Yet Another Bot List
+
+ Request yetanotherbotlist = new Request.Builder()
+ .url(YetAnotherBotList)
+ .post(body)
+ .addHeader("Authorization", config.getYetAnotherBotListToken())
+ .build();
+
+ try {
+ new OkHttpClient().newCall(yetanotherbotlist).execute().close();
+ System.out.println("Successfully posted count to Yet Another Bot List!");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // Discord Extreme List
+
+ Request discordextremelist = new Request.Builder()
+ .url(DiscordExtremeList)
+ .post(body)
+ .addHeader("Authorizaion", config.getDiscordExtremeListToken())
+ .build();
+
+ try {
+ new OkHttpClient().newCall(discordextremelist).execute().close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
}