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/example-config.json b/example-config.json
new file mode 100644
index 0000000..b56984e
--- /dev/null
+++ b/example-config.json
@@ -0,0 +1,23 @@
+{
+ "Owners":
+ [],
+ "Database":{"IP":"",
+ "Port":6775,
+ "DBName":"",
+ "Username":"",
+ "Password":""},
+ "Tokens":{
+ "BotToken":"",
+ "Giphy":"",
+ "GitHub": "",
+ "MythicalBotList":"",
+ "BotsForDiscord":"",
+ "DiscordBotList":"",
+ "DiscordBestBots":"",
+ "DiscordBoats": "",
+ "YetAnotherBotList": "",
+ "DiscordExtremeList": "",
+ "DiscordBotReviews": "",
+ "DiscordBots": ""
+ }
+}
diff --git a/pom.xml b/pom.xml
index 77f43fe..d448043 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
net.dv8tion
JDA
- 4.0.0_64
+ 4.0.0_67
org.json
@@ -60,7 +60,7 @@
org.kohsuke
github-api
- 1.99
+ 1.101
com.sedmelluq
diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java
index dc6640b..b525a64 100644
--- a/src/main/java/com/bbn/hadder/Hadder.java
+++ b/src/main/java/com/bbn/hadder/Hadder.java
@@ -76,6 +76,7 @@ public class Hadder {
new JoinCommand(),
new LeaveCommand(),
new GuildLeaveCommand(),
+ new MemeCommand(),
new LinkCommand()), config, helpCommand);
builder.addEventListeners(
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 8e52917..f051bb0 100644
--- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
@@ -27,11 +27,11 @@ 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());
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..ca311c4
--- /dev/null
+++ b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java
@@ -0,0 +1,60 @@
+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.EmbedBuilder;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import org.json.JSONObject;
+
+import java.awt.*;
+import java.io.IOException;
+import java.time.Instant;
+
+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, new EmbedBuilder())
+ .setTitle("Your random meme")
+ .setImage(url)
+ .build()).queue();
+ } catch (IOException e) {
+ e.printStackTrace();
+ event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder())
+ .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/music/JoinCommand.java b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java
index a380c7a..ab23dc0 100644
--- a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java
@@ -21,16 +21,11 @@ public class JoinCommand implements Command {
AudioManager audioManager = event.getGuild().getAudioManager();
if(!audioManager.isAttemptingToConnect()) {
VoiceChannel vc = event.getMember().getVoiceState().getChannel();
- if (vc.getMemberPermissionOverrides().contains(Permission.VOICE_CONNECT)) {
event.getGuild().getAudioManager().openAudioConnection(vc);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Successfully connected"))
.setDescription("I successfully connected to " + vc.getName() + ".")
.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.WARNING, builder)
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..10faa26 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java
@@ -33,7 +33,6 @@ public class AnalCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Anal")
.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..55fc58c 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java
@@ -33,7 +33,6 @@ public class BlowjobCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Blowjob")
.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..46e9f66 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java
@@ -33,7 +33,6 @@ public class BoobsCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Boobs")
.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..2cf9b14 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java
@@ -33,7 +33,6 @@ public class CumCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Cum")
.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..3500272 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java
@@ -33,7 +33,6 @@ public class EroticCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Erotic")
.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..197abda 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java
@@ -33,7 +33,6 @@ public class FeetCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Feet")
.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..7708da1 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java
@@ -33,7 +33,6 @@ public class PornCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Porn")
.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..c595ab3 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java
@@ -33,7 +33,6 @@ public class PussyCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("GIF not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Pussy")
.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..f0f4bed 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java
@@ -33,7 +33,6 @@ public class TransCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, builder)
.setAuthor("Image not showing? Click here", url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
- .setTimestamp(Instant.now())
.setFooter("Trans")
.build()).queue();
diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java
index 4ab9ee7..3a2e33c 100644
--- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java
+++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java
@@ -3,29 +3,30 @@ 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) {
switch (type) {
case INFO:
- embedBuilder.setColor(new Color(47,94,105));
+ embedBuilder.setColor(new Color(47,94,105)).setTimestamp(Instant.now());
break;
case ERROR:
- embedBuilder.setColor(Color.RED);
+ embedBuilder.setColor(Color.RED).setTimestamp(Instant.now());
break;
case WARNING:
- embedBuilder.setColor(Color.ORANGE);
+ embedBuilder.setColor(Color.ORANGE).setTimestamp(Instant.now());
break;
case NO_PERMISSION:
- embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("You are not authorized to execute this command!").setColor(Color.RED);
+ embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("You are not authorized to execute this command!").setColor(Color.RED).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);
+ embedBuilder.setTitle("⛔ No Permission ⛔").setDescription("Unfortunately, I do not have the required rights to perform this action").setColor(Color.RED).setTimestamp(Instant.now());
break;
}
return embedBuilder;