From 5e5e3b0d2818087ac7a92253083f5e4ae04cb660 Mon Sep 17 00:00:00 2001 From: rtm516 Date: Sat, 11 Jul 2020 18:22:02 +0100 Subject: [PATCH] Add a User-Agent to the rest of the web requests (#932) --- .../java/org/geysermc/connector/utils/SkinProvider.java | 7 ++++++- .../main/java/org/geysermc/connector/utils/WebUtils.java | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java b/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java index aa01ada8142..36507db089b 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java +++ b/connector/src/main/java/org/geysermc/connector/utils/SkinProvider.java @@ -36,6 +36,7 @@ import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; +import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -379,7 +380,11 @@ private static byte[] requestImage(String imageUrl, CapeProvider provider) throw private static BufferedImage downloadImage(String imageUrl, CapeProvider provider) throws IOException { if (provider == CapeProvider.FIVEZIG) return readFiveZigCape(imageUrl); - BufferedImage image = ImageIO.read(new URL(imageUrl)); + + HttpURLConnection con = (HttpURLConnection) new URL(imageUrl).openConnection(); + con.setRequestProperty("User-Agent", "Geyser-" + GeyserConnector.getInstance().getPlatformType().toString() + "/" + GeyserConnector.VERSION); + + BufferedImage image = ImageIO.read(con.getInputStream()); if (image == null) throw new NullPointerException(); return image; } diff --git a/connector/src/main/java/org/geysermc/connector/utils/WebUtils.java b/connector/src/main/java/org/geysermc/connector/utils/WebUtils.java index c29b95e85bb..eaf94d8ac0d 100644 --- a/connector/src/main/java/org/geysermc/connector/utils/WebUtils.java +++ b/connector/src/main/java/org/geysermc/connector/utils/WebUtils.java @@ -77,7 +77,9 @@ public static String getBody(String reqURL) { */ public static void downloadFile(String reqURL, String fileLocation) { try { - InputStream in = new URL(reqURL).openStream(); + HttpURLConnection con = (HttpURLConnection) new URL(reqURL).openConnection(); + con.setRequestProperty("User-Agent", "Geyser-" + GeyserConnector.getInstance().getPlatformType().toString() + "/" + GeyserConnector.VERSION); + InputStream in = con.getInputStream(); Files.copy(in, Paths.get(fileLocation), StandardCopyOption.REPLACE_EXISTING); } catch (Exception e) { throw new AssertionError("Unable to download and save file: " + fileLocation + " (" + reqURL + ")", e); @@ -90,6 +92,7 @@ public static String post(String reqURL, String postContent) throws IOException HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "text/plain"); + con.setRequestProperty("User-Agent", "Geyser-" + GeyserConnector.getInstance().getPlatformType().toString() + "/" + GeyserConnector.VERSION); con.setDoOutput(true); OutputStream out = con.getOutputStream();