diff --git a/pom.xml b/pom.xml index 1d15c3f6..b900e3b6 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,16 @@ gson LATEST + + org.slf4j + slf4j-api + 1.7.5 + + + org.slf4j + slf4j-simple + 1.6.4 + diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 777ef51c..ce583e10 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -2,6 +2,7 @@ import com.bbn.hadder.commands.general.*; import com.bbn.hadder.commands.fun.GifCommand; +import com.bbn.hadder.commands.misc.GitHubCommand; import com.bbn.hadder.commands.moderation.*; import com.bbn.hadder.commands.owner.ShutdownCommand; import com.bbn.hadder.commands.settings.PrefixCommand; @@ -45,7 +46,7 @@ public static void main(String[] args) { builder.setToken(config.getString("Token")); - CommandHandler.cmdlist.addAll(List.of(new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), new GifCommand(), new ClearCommand())); + CommandHandler.cmdlist.addAll(List.of(new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), new GifCommand(), new ClearCommand(), new GitHubCommand())); builder.addEventListeners( new MentionListener(), diff --git a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java new file mode 100644 index 00000000..49008877 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java @@ -0,0 +1,76 @@ +package com.bbn.hadder.commands.misc; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; + +public class GitHubCommand implements Command { + @Override + public void executed(String[] args, MessageReceivedEvent 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"; + try { + bio = json.getString("bio"); + } catch (JSONException e) { + + } + 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(); + } + } + + @Override + public String[] labels() { + return new String[]{"GitHub"}; + } +} diff --git a/src/main/java/com/bbn/hadder/listener/CommandListener.java b/src/main/java/com/bbn/hadder/listener/CommandListener.java index 81485f2b..ae076091 100644 --- a/src/main/java/com/bbn/hadder/listener/CommandListener.java +++ b/src/main/java/com/bbn/hadder/listener/CommandListener.java @@ -8,8 +8,6 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import javax.annotation.Nonnull; - /* * @author Skidder / GregTCLTK */ @@ -17,7 +15,7 @@ public class CommandListener extends ListenerAdapter { @Override - public void onMessageReceived(@Nonnull MessageReceivedEvent event) { + public void onMessageReceived(MessageReceivedEvent event) { if (event.isFromType(ChannelType.TEXT)) { if (event.getMessage().getContentRaw().startsWith(Rethink.get("user", "id", event.getAuthor().getId(), "prefix"))) { if (!event.getAuthor().isBot()) {