diff --git a/pom.xml b/pom.xml index 7371623..365a5b9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ Hadder Hadder - 0.2-ALPHA + 1.0-SNAPSHOT Hadder diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 157d555..fad99a7 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -38,7 +38,8 @@ public class Hadder { e.printStackTrace(); } - Rethink.connect(); + Rethink.connect(); + DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder(); @@ -55,7 +56,7 @@ public class Hadder { new CommandListener(), new GuildJoinListener(), new GuildLeaveListener(), - new BotListListener(), + new GuildListener(), new ReadyListener()); try { diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 7853082..68fa912 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -72,6 +72,18 @@ public class Rethink { return out; } + public static String insertUser(String id) { + String out = ""; + try { + Cursor cursor = r.table("user") + .insert(r.hashMap("id", id) + .with("prefix", "h.") + ).run(conn); + out = cursor.next().toString(); + } catch (ClassCastException ignored) {} + return out; + } + public static void setup() { try { r.dbCreate("Hadder").run(conn); 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 caf1b42..e9ae1a6 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java @@ -5,8 +5,6 @@ package com.bbn.hadder.commands.fun; */ 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; @@ -21,43 +19,36 @@ import java.nio.file.Paths; import java.util.Random; public class GifCommand implements Command { - @Override public void executed(String[] args, MessageReceivedEvent event) { - if (args.length > 0) { - String url; - JSONArray array; - StringBuilder query = new StringBuilder(); - for (String arg : args) { - query.append(arg.toLowerCase()).append("+"); - query = new StringBuilder(query.substring(0, query.length() - 1)); - } + String url; + JSONArray array; + String query = ""; + for(String arg : args) { + query += arg.toLowerCase() + "+"; + query = query.substring(0, query.length()-1); + } - File configfile = new File("./config.json"); + File configfile = new File("./config.json"); - JSONObject config = null; - try { - config = new JSONObject(new String(Files.readAllBytes(Paths.get(configfile.toURI())))); - } catch (IOException e) { - e.printStackTrace(); - } - OkHttpClient caller = new OkHttpClient(); - Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + config.getString("Giphy")).build(); - try { - Random rand = new Random(); - Response response = caller.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - array = json.getJSONArray("data"); - int gifIndex = rand.nextInt(array.length()); - url = (String) array.getJSONObject(gifIndex).get("url"); - 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(); - } - } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.WARNING, builder).setDescription("You have to write at least one search term!").build()).queue(); + JSONObject config = null; + try { + config = new JSONObject(new String(Files.readAllBytes(Paths.get(configfile.toURI())))); + } catch (IOException e) { + e.printStackTrace(); + } + OkHttpClient caller = new OkHttpClient(); + Request request = new Request.Builder().url("http://api.giphy.com/v1/gifs/search?q=" + query + "&api_key=" + config.getString("Giphy")).build(); + try { + Random rand = new Random(); + Response response = caller.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + array = json.getJSONArray("data"); + int gifIndex = rand.nextInt(array.length()); + url = (String) array.getJSONObject(gifIndex).get("url"); + event.getTextChannel().sendMessage(url).queue(); + } catch (Exception e) { + event.getTextChannel().sendMessage("Meddl Bruder. Ich hab heut leider kein gif für dich").queue(); } } 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 926ad15..6c40c8c 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -4,11 +4,25 @@ package com.bbn.hadder.commands.owner; * @author Skidder / GregTCLTK */ +import com.bbn.hadder.Hadder; +import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; - +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.JDABuilder; +import net.dv8tion.jda.api.OnlineStatus; +import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.json.JSONObject; + +import javax.annotation.Nonnull; +import javax.security.auth.login.LoginException; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; public class ShutdownCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/listener/BotListListener.java b/src/main/java/com/bbn/hadder/listener/BotListListener.java deleted file mode 100644 index 2d57cbc..0000000 --- a/src/main/java/com/bbn/hadder/listener/BotListListener.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bbn.hadder.listener; - -/* - * @author Skidder / GregTCLTK - */ - -import net.dv8tion.jda.api.events.guild.GuildJoinEvent; -import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; - -public class BotListListener extends ListenerAdapter { - - public void onGuildJoin(GuildJoinEvent event) { - - - } - - public void onGuildLeave(GuildLeaveEvent event) { - - - - } -} diff --git a/src/main/java/com/bbn/hadder/listener/GuildJoinListener.java b/src/main/java/com/bbn/hadder/listener/GuildJoinListener.java deleted file mode 100644 index cdea693..0000000 --- a/src/main/java/com/bbn/hadder/listener/GuildJoinListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bbn.hadder.listener; - -/* - * @author Skidder / GregTCLTK - */ - -import com.bbn.hadder.Rethink; -import net.dv8tion.jda.api.events.guild.GuildJoinEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jetbrains.annotations.NotNull; - -public class GuildJoinListener extends ListenerAdapter { - public void onGuildJoin(@NotNull GuildJoinEvent event) { - Rethink.insertServer(event.getGuild().getId()); - } -} diff --git a/src/main/java/com/bbn/hadder/listener/GuildLeaveListener.java b/src/main/java/com/bbn/hadder/listener/GuildLeaveListener.java deleted file mode 100644 index fc65d2e..0000000 --- a/src/main/java/com/bbn/hadder/listener/GuildLeaveListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bbn.hadder.listener; - -/* - * @author Skidder / GregTCLTK - */ - -import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jetbrains.annotations.NotNull; - -public class GuildLeaveListener extends ListenerAdapter { - public void onGuildLeave(@NotNull GuildLeaveEvent event) { - - - } -} diff --git a/src/main/java/com/bbn/hadder/listener/GuildListener.java b/src/main/java/com/bbn/hadder/listener/GuildListener.java new file mode 100644 index 0000000..7da1d4f --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/GuildListener.java @@ -0,0 +1,28 @@ +package com.bbn.hadder.listener; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.Rethink; +import net.dv8tion.jda.api.events.guild.GuildJoinEvent; +import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; +import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; + +public class GuildListener extends ListenerAdapter { + + public void onGuildJoin(GuildJoinEvent event) { + Rethink.insertServer(event.getGuild().getId()); + } + + public void onGuildLeave(GuildLeaveEvent event) { + + } + + public void onGuildMemberJoin(GuildMemberJoinEvent event) { + if (!event.getUser().getId().equals(event.getJDA().getSelfUser().getId())) { + Rethink.insertUser(event.getUser().getId()); + } + } +} diff --git a/src/main/java/com/bbn/hadder/listener/ReadyListener.java b/src/main/java/com/bbn/hadder/listener/ReadyListener.java index 3072f77..4d24a2b 100644 --- a/src/main/java/com/bbn/hadder/listener/ReadyListener.java +++ b/src/main/java/com/bbn/hadder/listener/ReadyListener.java @@ -2,6 +2,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.ReadyEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -12,6 +13,11 @@ public class ReadyListener extends ListenerAdapter { @Override public void onReady(@Nonnull ReadyEvent event) { Rethink.setup(); + for (User user : event.getJDA().getUsers()) { + if (!user.getId().equals(event.getJDA().getSelfUser().getId())) { + Rethink.insertUser(user.getId()); + } + } for (Guild g : event.getJDA().getGuilds()) { Rethink.insertServer(g.getId()); }