diff --git a/src/main/java/net/tylermurphy/ken/command/Responder.java b/src/main/java/net/tylermurphy/ken/command/Responder.java index d7bdc15..eee9bb7 100644 --- a/src/main/java/net/tylermurphy/ken/command/Responder.java +++ b/src/main/java/net/tylermurphy/ken/command/Responder.java @@ -147,6 +147,7 @@ public class Responder extends ListenerAdapter { Response response = (Response)temp; reply(response, event.getHook()); } catch (Exception e) { + e.printStackTrace(); EmbedBuilder builder = Ken.getInstance().getDefaultEmbed() .setColor(Color.RED) .setTitle(":x: **Error**") diff --git a/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java b/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java index b0d3b0f..f530de9 100644 --- a/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java +++ b/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java @@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.interactions.commands.OptionType; import net.tylermurphy.ken.Ken; -import net.tylermurphy.ken.api.Request; import net.tylermurphy.ken.command.Response; import net.tylermurphy.ken.command.annotation.Command; import net.tylermurphy.ken.command.annotation.Option; @@ -33,8 +32,8 @@ public class CrabRave { } private byte[] generateGif(User u) throws IOException, NullPointerException { - BufferedImage crab = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/crab.png", true); - BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false); + BufferedImage crab = Ken.getInstance().getImageFetcher().getCdnImage("crab.png", true); + BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false); BufferedImage[] frames = new BufferedImage[26]; for(int i = 0; i < frames.length; i++) { frames[i] = generateFrame(i, avatar, crab); diff --git a/src/main/java/net/tylermurphy/ken/command/fun/Eject.java b/src/main/java/net/tylermurphy/ken/command/fun/Eject.java index 29900be..7a08991 100644 --- a/src/main/java/net/tylermurphy/ken/command/fun/Eject.java +++ b/src/main/java/net/tylermurphy/ken/command/fun/Eject.java @@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.interactions.commands.OptionType; import net.tylermurphy.ken.Ken; -import net.tylermurphy.ken.api.Request; import net.tylermurphy.ken.command.annotation.Command; import net.tylermurphy.ken.command.annotation.Option; import net.tylermurphy.ken.command.Response; @@ -28,6 +27,7 @@ public class Eject { byte[] data = generateGif(ejected.getUser()); return Response.success(ejected.getEffectiveName() +" was ejected by "+sender.getEffectiveName()).setFile(data, "eject.gif"); } catch (IOException e) { + e.printStackTrace(); return Response.error("Failed to generate gif"); } } @@ -39,8 +39,8 @@ public class Eject { else message = u.getName() + " was not An Impostor"; - BufferedImage space = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/space.jpg", true); - BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false); + BufferedImage space = Ken.getInstance().getImageFetcher().getCdnImage("space.jpg", true); + BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false); BufferedImage[] frames = new BufferedImage[30]; for (int i = 0; i < frames.length; i++) { diff --git a/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java b/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java index b538606..20737f0 100644 --- a/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java +++ b/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java @@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.interactions.commands.OptionType; import net.tylermurphy.ken.Ken; -import net.tylermurphy.ken.api.Request; import net.tylermurphy.ken.command.Response; import net.tylermurphy.ken.command.annotation.Command; import net.tylermurphy.ken.command.annotation.Option; @@ -12,7 +11,6 @@ import net.tylermurphy.ken.util.GifSequenceWriter; import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; -import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; @@ -34,9 +32,9 @@ public class GayMeme { } private byte[] generateGif(User u) throws IOException, NullPointerException { - BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false); - BufferedImage background = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/theMoreYouKnow.png", true); - BufferedImage gay = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/gay.png", true); + BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false); + BufferedImage background = Ken.getInstance().getImageFetcher().getCdnImage("theMoreYouKnow.png", true); + BufferedImage gay = Ken.getInstance().getImageFetcher().getCdnImage("gay.png", true); BufferedImage[] frames = new BufferedImage[40]; for(int i = 0; i < frames.length; i++) { diff --git a/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java b/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java index 5a2239e..cf5a08f 100644 --- a/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java +++ b/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java @@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.interactions.commands.OptionType; import net.tylermurphy.ken.Ken; -import net.tylermurphy.ken.api.Request; import net.tylermurphy.ken.command.Response; import net.tylermurphy.ken.command.annotation.Command; import net.tylermurphy.ken.command.annotation.Option; @@ -33,8 +32,8 @@ public class Headpat { } private byte[] generateGif(User u) throws IOException, NullPointerException { - BufferedImage hand = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/headpat.png", true); - BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false); + BufferedImage hand = Ken.getInstance().getImageFetcher().getCdnImage("headpat.png", true); + BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false); BufferedImage[] frames = new BufferedImage[5]; for(int i = 0; i < frames.length; i++) { diff --git a/src/main/java/net/tylermurphy/ken/command/fun/Wank.java b/src/main/java/net/tylermurphy/ken/command/fun/Wank.java index c2cb6f1..a2918f8 100644 --- a/src/main/java/net/tylermurphy/ken/command/fun/Wank.java +++ b/src/main/java/net/tylermurphy/ken/command/fun/Wank.java @@ -32,8 +32,8 @@ public class Wank { } private byte[] generateGif(User u) throws IOException { - BufferedImage wank = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/laptop.png", true); - BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false); + BufferedImage wank = Ken.getInstance().getImageFetcher().getCdnImage("laptop.png", true); + BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false); BufferedImage[] frames = new BufferedImage[4]; for (int i = 0; i < frames.length; i++) { diff --git a/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java index d3bddbc..686eb7e 100644 --- a/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java +++ b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java @@ -1,8 +1,11 @@ package net.tylermurphy.ken.util; +import net.tylermurphy.ken.Ken; + import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException; +import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; @@ -12,7 +15,21 @@ public class ImageFetcher { private final Map CACHE = new HashMap<>(); - public BufferedImage getImage(String url, boolean cache) throws IOException { + public BufferedImage getCdnImage(String name, boolean cache) throws IOException { + if(Ken.getInstance().getConfig().getBoolean("fetchLocal")) { + if(CACHE.containsKey(name)) return CACHE.get(name); + InputStream in = Ken.getInstance().getResource("cdn/"+name); + if(in == null) return null; + BufferedImage image = ImageIO.read(in); + if(cache && image != null) CACHE.put(name, image); + return image; + } else { + String url = Ken.getInstance().getConfig().getString("cdn") + name; + return getRawImage(url, cache); + } + } + + public BufferedImage getRawImage(String url, boolean cache) throws IOException { if(CACHE.containsKey(url)) return CACHE.get(url); HttpURLConnection connection = getConnection(url); BufferedImage image = ImageIO.read(connection.getInputStream()); diff --git a/src/main/resources/cdn/coin_heads.png b/src/main/resources/cdn/coin_heads.png new file mode 100644 index 0000000..066edb3 Binary files /dev/null and b/src/main/resources/cdn/coin_heads.png differ diff --git a/src/main/resources/cdn/coin_tails.png b/src/main/resources/cdn/coin_tails.png new file mode 100644 index 0000000..c25c369 Binary files /dev/null and b/src/main/resources/cdn/coin_tails.png differ diff --git a/src/main/resources/cdn/crab.png b/src/main/resources/cdn/crab.png new file mode 100644 index 0000000..d51d761 Binary files /dev/null and b/src/main/resources/cdn/crab.png differ diff --git a/src/main/resources/cdn/d12_1.png b/src/main/resources/cdn/d12_1.png new file mode 100644 index 0000000..be39c24 Binary files /dev/null and b/src/main/resources/cdn/d12_1.png differ diff --git a/src/main/resources/cdn/d12_10.png b/src/main/resources/cdn/d12_10.png new file mode 100644 index 0000000..c0dbbc9 Binary files /dev/null and b/src/main/resources/cdn/d12_10.png differ diff --git a/src/main/resources/cdn/d12_11.png b/src/main/resources/cdn/d12_11.png new file mode 100644 index 0000000..bde3331 Binary files /dev/null and b/src/main/resources/cdn/d12_11.png differ diff --git a/src/main/resources/cdn/d12_12.png b/src/main/resources/cdn/d12_12.png new file mode 100644 index 0000000..080c00f Binary files /dev/null and b/src/main/resources/cdn/d12_12.png differ diff --git a/src/main/resources/cdn/d12_2.png b/src/main/resources/cdn/d12_2.png new file mode 100644 index 0000000..b5eee21 Binary files /dev/null and b/src/main/resources/cdn/d12_2.png differ diff --git a/src/main/resources/cdn/d12_3.png b/src/main/resources/cdn/d12_3.png new file mode 100644 index 0000000..3e99211 Binary files /dev/null and b/src/main/resources/cdn/d12_3.png differ diff --git a/src/main/resources/cdn/d12_4.png b/src/main/resources/cdn/d12_4.png new file mode 100644 index 0000000..4812627 Binary files /dev/null and b/src/main/resources/cdn/d12_4.png differ diff --git a/src/main/resources/cdn/d12_5.png b/src/main/resources/cdn/d12_5.png new file mode 100644 index 0000000..2e3d48f Binary files /dev/null and b/src/main/resources/cdn/d12_5.png differ diff --git a/src/main/resources/cdn/d12_6.png b/src/main/resources/cdn/d12_6.png new file mode 100644 index 0000000..ce971f9 Binary files /dev/null and b/src/main/resources/cdn/d12_6.png differ diff --git a/src/main/resources/cdn/d12_7.png b/src/main/resources/cdn/d12_7.png new file mode 100644 index 0000000..d1d9118 Binary files /dev/null and b/src/main/resources/cdn/d12_7.png differ diff --git a/src/main/resources/cdn/d12_8.png b/src/main/resources/cdn/d12_8.png new file mode 100644 index 0000000..7504d95 Binary files /dev/null and b/src/main/resources/cdn/d12_8.png differ diff --git a/src/main/resources/cdn/d12_9.png b/src/main/resources/cdn/d12_9.png new file mode 100644 index 0000000..796987a Binary files /dev/null and b/src/main/resources/cdn/d12_9.png differ diff --git a/src/main/resources/cdn/d20_1.png b/src/main/resources/cdn/d20_1.png new file mode 100644 index 0000000..da84394 Binary files /dev/null and b/src/main/resources/cdn/d20_1.png differ diff --git a/src/main/resources/cdn/d20_10.png b/src/main/resources/cdn/d20_10.png new file mode 100644 index 0000000..4174b5e Binary files /dev/null and b/src/main/resources/cdn/d20_10.png differ diff --git a/src/main/resources/cdn/d20_11.png b/src/main/resources/cdn/d20_11.png new file mode 100644 index 0000000..ad0500d Binary files /dev/null and b/src/main/resources/cdn/d20_11.png differ diff --git a/src/main/resources/cdn/d20_12.png b/src/main/resources/cdn/d20_12.png new file mode 100644 index 0000000..7ea847f Binary files /dev/null and b/src/main/resources/cdn/d20_12.png differ diff --git a/src/main/resources/cdn/d20_13.png b/src/main/resources/cdn/d20_13.png new file mode 100644 index 0000000..5c126de Binary files /dev/null and b/src/main/resources/cdn/d20_13.png differ diff --git a/src/main/resources/cdn/d20_14.png b/src/main/resources/cdn/d20_14.png new file mode 100644 index 0000000..90629d3 Binary files /dev/null and b/src/main/resources/cdn/d20_14.png differ diff --git a/src/main/resources/cdn/d20_15.png b/src/main/resources/cdn/d20_15.png new file mode 100644 index 0000000..2c98859 Binary files /dev/null and b/src/main/resources/cdn/d20_15.png differ diff --git a/src/main/resources/cdn/d20_16.png b/src/main/resources/cdn/d20_16.png new file mode 100644 index 0000000..11a99d3 Binary files /dev/null and b/src/main/resources/cdn/d20_16.png differ diff --git a/src/main/resources/cdn/d20_17.png b/src/main/resources/cdn/d20_17.png new file mode 100644 index 0000000..8e18b98 Binary files /dev/null and b/src/main/resources/cdn/d20_17.png differ diff --git a/src/main/resources/cdn/d20_18.png b/src/main/resources/cdn/d20_18.png new file mode 100644 index 0000000..04fefb1 Binary files /dev/null and b/src/main/resources/cdn/d20_18.png differ diff --git a/src/main/resources/cdn/d20_19.png b/src/main/resources/cdn/d20_19.png new file mode 100644 index 0000000..bbfe88e Binary files /dev/null and b/src/main/resources/cdn/d20_19.png differ diff --git a/src/main/resources/cdn/d20_2.png b/src/main/resources/cdn/d20_2.png new file mode 100644 index 0000000..c3f09a0 Binary files /dev/null and b/src/main/resources/cdn/d20_2.png differ diff --git a/src/main/resources/cdn/d20_20.png b/src/main/resources/cdn/d20_20.png new file mode 100644 index 0000000..a184f18 Binary files /dev/null and b/src/main/resources/cdn/d20_20.png differ diff --git a/src/main/resources/cdn/d20_3.png b/src/main/resources/cdn/d20_3.png new file mode 100644 index 0000000..cf4741d Binary files /dev/null and b/src/main/resources/cdn/d20_3.png differ diff --git a/src/main/resources/cdn/d20_4.png b/src/main/resources/cdn/d20_4.png new file mode 100644 index 0000000..90f8cb6 Binary files /dev/null and b/src/main/resources/cdn/d20_4.png differ diff --git a/src/main/resources/cdn/d20_5.png b/src/main/resources/cdn/d20_5.png new file mode 100644 index 0000000..ba323f3 Binary files /dev/null and b/src/main/resources/cdn/d20_5.png differ diff --git a/src/main/resources/cdn/d20_6.png b/src/main/resources/cdn/d20_6.png new file mode 100644 index 0000000..e7af576 Binary files /dev/null and b/src/main/resources/cdn/d20_6.png differ diff --git a/src/main/resources/cdn/d20_7.png b/src/main/resources/cdn/d20_7.png new file mode 100644 index 0000000..ddc502c Binary files /dev/null and b/src/main/resources/cdn/d20_7.png differ diff --git a/src/main/resources/cdn/d20_8.png b/src/main/resources/cdn/d20_8.png new file mode 100644 index 0000000..f34cf45 Binary files /dev/null and b/src/main/resources/cdn/d20_8.png differ diff --git a/src/main/resources/cdn/d20_9.png b/src/main/resources/cdn/d20_9.png new file mode 100644 index 0000000..b0f8311 Binary files /dev/null and b/src/main/resources/cdn/d20_9.png differ diff --git a/src/main/resources/cdn/d6_1.png b/src/main/resources/cdn/d6_1.png new file mode 100644 index 0000000..2920ff6 Binary files /dev/null and b/src/main/resources/cdn/d6_1.png differ diff --git a/src/main/resources/cdn/d6_2.png b/src/main/resources/cdn/d6_2.png new file mode 100644 index 0000000..f274b45 Binary files /dev/null and b/src/main/resources/cdn/d6_2.png differ diff --git a/src/main/resources/cdn/d6_3.png b/src/main/resources/cdn/d6_3.png new file mode 100644 index 0000000..324ade3 Binary files /dev/null and b/src/main/resources/cdn/d6_3.png differ diff --git a/src/main/resources/cdn/d6_4.png b/src/main/resources/cdn/d6_4.png new file mode 100644 index 0000000..928e15d Binary files /dev/null and b/src/main/resources/cdn/d6_4.png differ diff --git a/src/main/resources/cdn/d6_5.png b/src/main/resources/cdn/d6_5.png new file mode 100644 index 0000000..0973c4c Binary files /dev/null and b/src/main/resources/cdn/d6_5.png differ diff --git a/src/main/resources/cdn/d6_6.png b/src/main/resources/cdn/d6_6.png new file mode 100644 index 0000000..a02def3 Binary files /dev/null and b/src/main/resources/cdn/d6_6.png differ diff --git a/src/main/resources/cdn/d8_1.png b/src/main/resources/cdn/d8_1.png new file mode 100644 index 0000000..14d2dfb Binary files /dev/null and b/src/main/resources/cdn/d8_1.png differ diff --git a/src/main/resources/cdn/d8_2.png b/src/main/resources/cdn/d8_2.png new file mode 100644 index 0000000..26b8f63 Binary files /dev/null and b/src/main/resources/cdn/d8_2.png differ diff --git a/src/main/resources/cdn/d8_3.png b/src/main/resources/cdn/d8_3.png new file mode 100644 index 0000000..1776d70 Binary files /dev/null and b/src/main/resources/cdn/d8_3.png differ diff --git a/src/main/resources/cdn/d8_4.png b/src/main/resources/cdn/d8_4.png new file mode 100644 index 0000000..2332c29 Binary files /dev/null and b/src/main/resources/cdn/d8_4.png differ diff --git a/src/main/resources/cdn/d8_5.png b/src/main/resources/cdn/d8_5.png new file mode 100644 index 0000000..fc5a8a6 Binary files /dev/null and b/src/main/resources/cdn/d8_5.png differ diff --git a/src/main/resources/cdn/d8_6.png b/src/main/resources/cdn/d8_6.png new file mode 100644 index 0000000..dfd27b3 Binary files /dev/null and b/src/main/resources/cdn/d8_6.png differ diff --git a/src/main/resources/cdn/d8_7.png b/src/main/resources/cdn/d8_7.png new file mode 100644 index 0000000..85d3ee2 Binary files /dev/null and b/src/main/resources/cdn/d8_7.png differ diff --git a/src/main/resources/cdn/d8_8.png b/src/main/resources/cdn/d8_8.png new file mode 100644 index 0000000..20f4f8d Binary files /dev/null and b/src/main/resources/cdn/d8_8.png differ diff --git a/src/main/resources/cdn/gay.png b/src/main/resources/cdn/gay.png new file mode 100644 index 0000000..a886509 Binary files /dev/null and b/src/main/resources/cdn/gay.png differ diff --git a/src/main/resources/cdn/headpat.png b/src/main/resources/cdn/headpat.png new file mode 100644 index 0000000..a8f49db Binary files /dev/null and b/src/main/resources/cdn/headpat.png differ diff --git a/src/main/resources/cdn/laptop.png b/src/main/resources/cdn/laptop.png new file mode 100644 index 0000000..685dd99 Binary files /dev/null and b/src/main/resources/cdn/laptop.png differ diff --git a/src/main/resources/cdn/space.jpg b/src/main/resources/cdn/space.jpg new file mode 100644 index 0000000..8e5a990 Binary files /dev/null and b/src/main/resources/cdn/space.jpg differ diff --git a/src/main/resources/cdn/theMoreYouKnow.png b/src/main/resources/cdn/theMoreYouKnow.png new file mode 100644 index 0000000..1690eb7 Binary files /dev/null and b/src/main/resources/cdn/theMoreYouKnow.png differ diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f050e38..7612f48 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -45,11 +45,15 @@ botName: "Ken" # Example: "ChFRPDF" supportServer: "" -# Send welcome messages when a player joins the server -welcomeMessages: true +# This is the cdn that will contain all KenBoReborn images, I host one myself so there is no +# need for you to use your own. If you want, you can use your own. A cdn is required because discord +# requires a url for embeds instead of just uploading an image. +cdn: "https://cdn.tylermurphy.net/ken/" -# Send level up messages when a player levels up -levelMessages: true +# Fetch image url. For the gif generation commands, instead of sending discord a url to a cdn, Ken has to +# manually pull images to work on them to create the gifs. For most people, you can just keep it as the cdn, and +# have images automatically update. But if you want, you can set images to locally fetch instead from inside the jar. +fetchLocal: false # The RGB color value of the discord bot. Used for bot theming. colors: