diff --git a/build.gradle b/build.gradle index e25f4c810..56bba372c 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'idea' apply plugin: 'maven-publish' -version = '1.1.1' +version = '1.1.2' group = 'com.rettichlp' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'UnicacityAddon' diff --git a/src/main/java/com/rettichlp/UnicacityAddon/UnicacityAddon.java b/src/main/java/com/rettichlp/UnicacityAddon/UnicacityAddon.java index 3e01cae66..7c0395891 100644 --- a/src/main/java/com/rettichlp/UnicacityAddon/UnicacityAddon.java +++ b/src/main/java/com/rettichlp/UnicacityAddon/UnicacityAddon.java @@ -60,7 +60,7 @@ */ public class UnicacityAddon extends LabyModAddon { - public static final String VERSION = "1.1.1"; + public static final String VERSION = "1.1.2"; public static final Minecraft MINECRAFT = Minecraft.getMinecraft(); public static final LabyMod LABYMOD = LabyMod.getInstance(); public static UnicacityAddon ADDON; diff --git a/src/main/java/com/rettichlp/UnicacityAddon/base/faction/FactionHandler.java b/src/main/java/com/rettichlp/UnicacityAddon/base/faction/FactionHandler.java index a6cfb7775..c04c133da 100644 --- a/src/main/java/com/rettichlp/UnicacityAddon/base/faction/FactionHandler.java +++ b/src/main/java/com/rettichlp/UnicacityAddon/base/faction/FactionHandler.java @@ -33,7 +33,10 @@ public static Map getPlayerRankMap() { } public static boolean checkPlayerHouseBan(String playerName) { - if (websiteSource.isEmpty()) websiteSource = WebsiteAPI.websiteToString("https://fuzzlemann.de/commons/houseBans"); + if (websiteSource.isEmpty()) { + Thread thread = new Thread(() -> websiteSource = WebsiteAPI.websiteToString("https://fuzzlemann.de/commons/houseBans")); + thread.start(); + } return websiteSource.contains(playerName); } @@ -51,10 +54,13 @@ public static boolean checkPlayerDuty(String playerName) { private static Map getPlayerFactions() { Map playerFactions = new HashMap<>(); - for (Faction faction : Faction.values()) { - List nameList = ListUtils.getAllMatchesFromString(PatternHandler.NAME_PATTERN, faction.getWebsiteSource()); - nameList.forEach(name -> playerFactions.put(name.replace("

", ""), faction)); - } + Thread thread = new Thread(() -> { + for (Faction faction : Faction.values()) { + List nameList = ListUtils.getAllMatchesFromString(PatternHandler.NAME_PATTERN, faction.getWebsiteSource()); + nameList.forEach(name -> playerFactions.put(name.replace("

", ""), faction)); + } + }); + thread.start(); return playerFactions; } @@ -62,15 +68,18 @@ private static Map getPlayerFactions() { private static Map getPlayerRanks() { Map playerRankMap = new HashMap<>(); - for (Faction faction : Faction.values()) { - List nameList = ListUtils.getAllMatchesFromString(PatternHandler.NAME_PATTERN, faction.getWebsiteSource()); - List rankList = ListUtils.getAllMatchesFromString(PatternHandler.RANK_PATTERN, faction.getWebsiteSource()); - nameList.forEach(name -> playerRankMap.put( - name.replace("

", ""), - Integer.parseInt(String.valueOf(rankList.get(nameList.indexOf(name)) - .replace("Rang ", "") - .charAt(0))))); - } + Thread thread = new Thread(() -> { + for (Faction faction : Faction.values()) { + List nameList = ListUtils.getAllMatchesFromString(PatternHandler.NAME_PATTERN, faction.getWebsiteSource()); + List rankList = ListUtils.getAllMatchesFromString(PatternHandler.RANK_PATTERN, faction.getWebsiteSource()); + nameList.forEach(name -> playerRankMap.put( + name.replace("

", ""), + Integer.parseInt(String.valueOf(rankList.get(nameList.indexOf(name)) + .replace("Rang ", "") + .charAt(0))))); + } + }); + thread.start(); return playerRankMap; } diff --git a/src/main/java/com/rettichlp/UnicacityAddon/base/utils/WebsiteAPI.java b/src/main/java/com/rettichlp/UnicacityAddon/base/utils/WebsiteAPI.java index d1c31538a..65860ed90 100644 --- a/src/main/java/com/rettichlp/UnicacityAddon/base/utils/WebsiteAPI.java +++ b/src/main/java/com/rettichlp/UnicacityAddon/base/utils/WebsiteAPI.java @@ -1,9 +1,11 @@ package com.rettichlp.UnicacityAddon.base.utils; +import joptsimple.internal.Strings; + import java.io.IOException; import java.io.InputStreamReader; +import java.net.HttpURLConnection; import java.net.URL; -import java.net.URLConnection; import java.util.Scanner; /** @@ -12,14 +14,14 @@ public class WebsiteAPI { public static String websiteToString(String urlString) { - Scanner scanner; StringBuilder websiteSource = new StringBuilder(); if (urlString != null) { try { - URLConnection openConnection = new URL(urlString).openConnection(); + HttpURLConnection openConnection = (HttpURLConnection) new URL(urlString).openConnection(); openConnection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0"); + if (openConnection.getResponseCode() != HttpURLConnection.HTTP_OK) return Strings.EMPTY; scanner = new Scanner(new InputStreamReader(openConnection.getInputStream())); while (scanner.hasNextLine()) websiteSource.append(scanner.nextLine()).append("\n\r"); } catch (IOException e) {