From 0731ab51517068b86a33613d1869c85143c90a55 Mon Sep 17 00:00:00 2001 From: Dance-Dog Date: Tue, 31 Mar 2020 14:06:57 -0400 Subject: [PATCH 1/4] Added missing null checks & try/catch blocks (v0.1.1) Signed-off-by: Dance-Dog --- build.gradle | 2 +- .../java/me/dancedog/rewardclaim/Mod.java | 4 +- .../dancedog/rewardclaim/RewardListener.java | 20 +++++++-- .../rewardclaim/SessionDataParser.java | 44 +++++++++++++++---- .../assets/rewardclaim/lang/en_US.lang | 4 +- 5 files changed, 57 insertions(+), 17 deletions(-) diff --git a/build.gradle b/build.gradle index f302a9b..a4e012a 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ compileJava { } archivesBaseName = 'RewardClaim' -version = '0.1' +version = '0.1.1' group = 'me.dancedog.rewardclaim' minecraft { version = '1.8.9-11.15.1.1722' diff --git a/src/main/java/me/dancedog/rewardclaim/Mod.java b/src/main/java/me/dancedog/rewardclaim/Mod.java index 1600f1a..c002377 100644 --- a/src/main/java/me/dancedog/rewardclaim/Mod.java +++ b/src/main/java/me/dancedog/rewardclaim/Mod.java @@ -20,7 +20,7 @@ public class Mod { public static final String MODID = "rewardclaim"; - public static final String VERSION = "0.1"; + public static final String VERSION = "0.1.1"; static final String MODNAME = "RewardClaim"; @Getter @@ -51,7 +51,7 @@ public static void printWarning(String message, Throwable t, boolean inChat) { if (inChat && Minecraft.getMinecraft().thePlayer != null) { ChatComponentText chatMessage = new ChatComponentText("[" + MODNAME + "] " + message); - chatMessage.getChatStyle().setItalic(true).setColor(EnumChatFormatting.RED); + chatMessage.getChatStyle().setBold(true).setColor(EnumChatFormatting.RED); Minecraft.getMinecraft().thePlayer.addChatMessage(chatMessage); } } diff --git a/src/main/java/me/dancedog/rewardclaim/RewardListener.java b/src/main/java/me/dancedog/rewardclaim/RewardListener.java index 2cdb2de..3c75426 100644 --- a/src/main/java/me/dancedog/rewardclaim/RewardListener.java +++ b/src/main/java/me/dancedog/rewardclaim/RewardListener.java @@ -73,10 +73,22 @@ public void onClientTick(ClientTickEvent event) { Mod.printWarning("Failed to get reward: " + error.getAsString(), null, true); return; } - RewardSession session = SessionDataParser.parseRewardSessionData(rawRewardSessionData.get()); - rawRewardSessionData.set(null); - Minecraft.getMinecraft() - .displayGuiScreen(new GuiScreenRewardSession(session)); + try { + RewardSession session = SessionDataParser + .parseRewardSessionData(rawRewardSessionData.get()); + if (session != null) { + Minecraft.getMinecraft() + .displayGuiScreen(new GuiScreenRewardSession(session)); + } + } catch (Exception e) { + Mod.printWarning( + "Oops! We had some trouble reading your daily reward data. Please report this to the mod author with a screenshot of your daily reward page.", + null, true); + Mod.printWarning(e.getClass().getName() + " at " + e.getStackTrace()[0].toString(), e, + true); + } finally { + rawRewardSessionData.set(null); + } } } diff --git a/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java b/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java index 73ab164..3c35305 100644 --- a/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java +++ b/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java @@ -41,19 +41,24 @@ static RewardSession parseRewardSessionData(JsonObject input) { // Create session RewardSession session = new RewardSession(); - session.setId(rawSessionJson.getAsJsonObject().get("id").getAsString()); + session.setId(getStringFromJsonObject("id", rawSessionJson.getAsJsonObject())); session.setCsrfToken(csrfTokenElement.getAsString()); - session - .setCookies(input.get("_cookie").getAsString()); // Our own value passed in through the JSON + session.setCookies( + getStringFromJsonObject("_cookie", input)); // Our own value passed in through the JSON + // Iterate over rewards JsonArray rawRewardArray = rawSessionJson.getAsJsonObject().get("rewards") .getAsJsonArray(); - for (JsonElement item : rawRewardArray) { - if (!item.isJsonObject()) { + if (rawRewardArray.size() != 3) { + Mod.printWarning("Expected 3 rewards, but found " + rawRewardArray.size(), null, true); + return null; + } + for (int i = 0; i < 3; i++) { + if (rawRewardArray.get(i) == null || !rawRewardArray.get(i).isJsonObject()) { Mod.printWarning("Reward item was not a JsonObject", null, true); return null; } - JsonObject rawRewardJson = item.getAsJsonObject(); + JsonObject rawRewardJson = rawRewardArray.get(i).getAsJsonObject(); // Create reward card & related variables Reward card = new Reward(); @@ -111,8 +116,10 @@ private static String getTitle(RewardType rewardType, GameType gameType, String } else if (rewardType == RewardType.ADD_VANITY) { titleKey = "vanity."; - if (vanityKey.contains("suit")) { + if (vanityKey != null && vanityKey.contains("suit")) { titleKey += vanityKey.replaceAll(VANITY_SUIT_PIECE_SUFFIX_REPLACEMENT_REGEX, ""); + } else if (vanityKey == null) { + titleKey += "unknown"; } else { titleKey += vanityKey; } @@ -128,7 +135,7 @@ private static String getTitle(RewardType rewardType, GameType gameType, String * Determine a reward's subtitle (bottom text on the card) * * @param rewardType Type of reward - * @param housingSkull GameType of reward (coins/tokens) + * @param housingSkull Housing skull of reward (if housing_package) * @param vanityKey Vanity key of the reward (if add_vanity) * @param rewardJson Original reward session JsonObject * @return The reward's formatted subtitle @@ -148,8 +155,10 @@ private static String getSubtitle(RewardType rewardType, HousingSkullType housin subtitleKey = "vanity." + vanityKey; } - } else { + } else if (rewardJson.get("amount") != null && rewardJson.get("amount").isJsonPrimitive()) { subtitleKey = "" + rewardJson.get("amount").getAsInt(); + } else { + subtitleKey = "type.unknown.amount"; } return I18n.format(subtitleKey); @@ -187,6 +196,15 @@ private static String getDescription(RewardType rewardType, GameType gameType, S return I18n.format(descriptionKeyBase + ".description"); } + /** + * Determine a reward's description (bottom of card's tooltip) + * + * @param rewardType Type of reward + * @param gameType gameType GameType of reward (coins/tokens) + * @param vanityKey Vanity key of the reward (if add_vanity) + * @param housingSkull Housing skull of reward (if housing_package) + * @return The reward's formatted description + */ private static ResourceLocation getTypeIcon(RewardType rewardType, GameType gameType, String vanityKey, HousingSkullType housingSkull) { ResourceLocation typeIcon; @@ -220,6 +238,14 @@ private static ResourceLocation getTypeIcon(RewardType rewardType, GameType game return typeIcon; } + /** + * Utility method to get a String from a JsonObject, or an empty String if the memberName couldn't + * be found + * + * @param memberName Key for the requested value + * @param jsonObject JsonObject to search + * @return String value of requested member, or an empty String if member could not be found + */ private static String getStringFromJsonObject(String memberName, JsonObject jsonObject) { JsonElement member = jsonObject.get(memberName); if (member == null) { diff --git a/src/main/resources/assets/rewardclaim/lang/en_US.lang b/src/main/resources/assets/rewardclaim/lang/en_US.lang index 4050dad..32b988f 100644 --- a/src/main/resources/assets/rewardclaim/lang/en_US.lang +++ b/src/main/resources/assets/rewardclaim/lang/en_US.lang @@ -57,6 +57,7 @@ vanity.unknown.description=Unknown cosmetic vanity.suit_treasure=Treasure Hunter Suit vanity.emote_moustache=Moustache Emote vanity.taunt_treasure=Dig for Treasure Gesture +vanity.unknown=Unknown Cosmetic vanity.armor.helmet=Helmet vanity.armor.chestplate=Chestplate @@ -92,4 +93,5 @@ housing.skull.unknown=Unknown Block # Fallback type.unknown=Unknown -type.unknown.description=Unknown Reward \ No newline at end of file +type.unknown.description=Unknown Reward +type.unknown.amount=Unknown Amount \ No newline at end of file From 3015d81f48ddbdbbfb995f2cfba08b304c123b7e Mon Sep 17 00:00:00 2001 From: Dance-Dog Date: Wed, 1 Apr 2020 21:00:12 -0400 Subject: [PATCH 2/4] Updated notes (mystery_box fixed) Signed-off-by: Dance-Dog --- Sample Reward Json/Notes.txt | 39 +++++++++++++++++++++++---- Sample Reward Json/a1cfa0d3.json | 45 ++++++++++++++++++++++++++++++++ Sample Reward Json/a25797d1.json | 36 +++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 Sample Reward Json/a1cfa0d3.json create mode 100644 Sample Reward Json/a25797d1.json diff --git a/Sample Reward Json/Notes.txt b/Sample Reward Json/Notes.txt index 83804c6..d79e0be 100644 --- a/Sample Reward Json/Notes.txt +++ b/Sample Reward Json/Notes.txt @@ -5,14 +5,43 @@ ========== Field Meanings ========== - rewards.*.rarity: Rarity of the reward (CardType) [all] + - "COMMON", "RARE", "EPIC", or "LEGENDARY" (in order of worst to best) + - This field is always present - rewards.*.reward: Type of reward (RewardType) [all] + - Determines the main icon on the card (with the exception of housing_package; see below) + - This field is always present -- rewards.*.gameType: Game that the reward is for (GameType) [coins and tokens only] -- rewards.*.amount: Amount of type rewarded [all except housing_package and add_vanity] -- rewards.*.intlist: Unknown; has something to do with amount [unknown; likely same as amount] +- rewards.*.gameType: Game that the reward is for + - Only present for coins and tokens (not adsense_token) + - Determines the mini GameType icon + +- rewards.*.amount: Amount of type rewarded + - Present on every reward except housing_package, add_vanity, and mystery_box (and potentially gift_box too; see intlist) +- rewards.*.intlist: An array of integers + - Only present for mystery_box (and potentially gift_box, but still unknown) + - The length of this array is displayed as the amount + - Each int in the array represents the 5-star value of a mystery box + - 0 = 1-star + - 4 = 5-star - rewards.*.package: Specifies the specific reward within the reward type [housing_package only] + - Housing block IDs are always prefixed by "specialoccasion_reward_card_skull_" + - The 18 housing blocks are grouped into 3 groups of 6 + - Each group is represented by a colored treasure chest (red/green/blue) for the type icon + - The group has nothing to do with rarity - rewards.*.key: ID of the lobby cosmetic to reward [add_vanity only] + - For a suit piece, this looks like "suit_treasure_chestplate" + - For other cosmetics, this looks like "emote_moustache" + +========== Reward Types ========== +- add_vanity [no sample yet, but see FORGED for assumed JSON] +- housing_package [see 6d302bf1] +- mystery_box [uses intlist; see a1cfa0d3] +- gift_box [no sample yet; unknown if uses intlist or amount] -========== I18n Notes ========== -- rewards.*.key for a suit piece looks like "suit_treasure_chestplate" \ No newline at end of file +- coins [see 04f79703] +- tokens [see 11a346e4] +- dust [see 04f79703] +- experience [see 8c3d7a5f] +- adsense_token [see a25797d1] +- souls [see a25797d1] \ No newline at end of file diff --git a/Sample Reward Json/a1cfa0d3.json b/Sample Reward Json/a1cfa0d3.json new file mode 100644 index 0000000..65914c6 --- /dev/null +++ b/Sample Reward Json/a1cfa0d3.json @@ -0,0 +1,45 @@ +{ + "rewards": [ + { + "intlist": [ + 4, + 4, + 4, + 4, + 4, + 4 + ], + "rarity": "LEGENDARY", + "reward": "mystery_box" + }, + { + "gameType": "TNTGAMES", + "amount": 4000, + "rarity": "COMMON", + "reward": "coins" + }, + { + "gameType": "SKYWARS", + "amount": 8000, + "rarity": "RARE", + "reward": "coins" + } + ], + "id": "a1cfa0d3", + "skippable": false, + "dailyStreak": { + "value": 0, + "score": 9, + "highScore": 9, + "keeps": true, + "token": false + }, + "ad": { + "video": "GNhbZ5guqO0", + "duration": 30, + "link": "https://store.hypixel.net/?utm_source=rewards-video&utm_medium=website&utm_content=GNhbZ5guqO0&utm_campaign=Rewards", + "buttonText": "Visit the Store" + }, + "activeAd": 2, + "playwire": false +} \ No newline at end of file diff --git a/Sample Reward Json/a25797d1.json b/Sample Reward Json/a25797d1.json new file mode 100644 index 0000000..999c1a9 --- /dev/null +++ b/Sample Reward Json/a25797d1.json @@ -0,0 +1,36 @@ +{ + "rewards": [ + { + "amount": 100, + "rarity": "RARE", + "reward": "souls" + }, + { + "amount": 1, + "rarity": "RARE", + "reward": "adsense_token" + }, + { + "amount": 10, + "rarity": "COMMON", + "reward": "dust" + } + ], + "id": "a25797d1", + "skippable": true, + "dailyStreak": { + "value": 0, + "score": 9, + "highScore": 37, + "keeps": true, + "token": false + }, + "ad": { + "video": "GNhbZ5guqO0", + "duration": 30, + "link": "https://store.hypixel.net/?utm_source=rewards-video&utm_medium=website&utm_content=GNhbZ5guqO0&utm_campaign=Rewards", + "buttonText": "Visit the Store" + }, + "activeAd": 2, + "playwire": false +} \ No newline at end of file From 070cb8aa14a8a68e63121d942948001fbaf547bd Mon Sep 17 00:00:00 2001 From: Dance-Dog Date: Wed, 1 Apr 2020 21:28:57 -0400 Subject: [PATCH 3/4] More sample rewards Signed-off-by: Dance-Dog --- Sample Reward Json/a18258f7.json | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Sample Reward Json/a18258f7.json diff --git a/Sample Reward Json/a18258f7.json b/Sample Reward Json/a18258f7.json new file mode 100644 index 0000000..61c7dd4 --- /dev/null +++ b/Sample Reward Json/a18258f7.json @@ -0,0 +1,38 @@ +{ + "rewards": [ + { + "gameType": "SKYWARS", + "amount": 4000, + "rarity": "COMMON", + "reward": "coins" + }, + { + "package": "specialoccasion_reward_card_skull_pocket_galaxy", + "rarity": "EPIC", + "reward": "housing_package" + }, + { + "gameType": "BATTLEGROUND", + "amount": 6000, + "rarity": "RARE", + "reward": "coins" + } + ], + "id": "a18258f7", + "skippable": true, + "dailyStreak": { + "value": 1, + "score": 10, + "highScore": 37, + "keeps": true, + "token": true + }, + "ad": { + "video": "GNhbZ5guqO0", + "duration": 30, + "link": "https://store.hypixel.net/?utm_source=rewards-video&utm_medium=website&utm_content=GNhbZ5guqO0&utm_campaign=Rewards", + "buttonText": "Visit the Store" + }, + "activeAd": 2, + "playwire": false +} \ No newline at end of file From 581c41123c46678e28b852544e98e72e28fb2d52 Mon Sep 17 00:00:00 2001 From: Dance-Dog Date: Wed, 1 Apr 2020 21:48:40 -0400 Subject: [PATCH 4/4] Refactored a bunch and patched some bugs - Fixed GUI resetting when window is resized - Fixed a crash when the reward was a mystery box - RewardCards and Sessions are now constructed within the appropriate classes Signed-off-by: Dance-Dog --- .../dancedog/rewardclaim/RewardListener.java | 44 +-- .../dancedog/rewardclaim/RewardScraper.java | 84 +++-- .../rewardclaim/SessionDataParser.java | 256 --------------- .../me/dancedog/rewardclaim/model/Reward.java | 25 -- .../rewardclaim/model/RewardCard.java | 300 ++++++++++++++++++ .../rewardclaim/model/RewardSession.java | 55 +++- .../rewardclaim/types/CardRarity.java | 9 +- .../dancedog/rewardclaim/types/GameType.java | 8 +- ...ousingSkullType.java => HousingSkull.java} | 6 +- .../rewardclaim/types/RewardType.java | 12 +- .../rewardclaim/ui/GuiRewardCard.java | 24 +- .../ui/GuiScreenRewardSession.java | 65 ++-- .../assets/rewardclaim/lang/en_US.lang | 11 +- .../textures/gui/cards/cardback_error.png | Bin 0 -> 114006 bytes .../textures/gui/cards/cardfront_error.png | Bin 0 -> 89085 bytes .../textures/gui/reward_sub/armor/UNKNOWN.png | Bin 534 -> 0 bytes 16 files changed, 490 insertions(+), 409 deletions(-) delete mode 100644 src/main/java/me/dancedog/rewardclaim/SessionDataParser.java delete mode 100644 src/main/java/me/dancedog/rewardclaim/model/Reward.java create mode 100644 src/main/java/me/dancedog/rewardclaim/model/RewardCard.java rename src/main/java/me/dancedog/rewardclaim/types/{HousingSkullType.java => HousingSkull.java} (92%) create mode 100644 src/main/resources/assets/rewardclaim/textures/gui/cards/cardback_error.png create mode 100644 src/main/resources/assets/rewardclaim/textures/gui/cards/cardfront_error.png delete mode 100644 src/main/resources/assets/rewardclaim/textures/gui/reward_sub/armor/UNKNOWN.png diff --git a/src/main/java/me/dancedog/rewardclaim/RewardListener.java b/src/main/java/me/dancedog/rewardclaim/RewardListener.java index 3c75426..8be50fc 100644 --- a/src/main/java/me/dancedog/rewardclaim/RewardListener.java +++ b/src/main/java/me/dancedog/rewardclaim/RewardListener.java @@ -1,7 +1,5 @@ package me.dancedog.rewardclaim; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import java.io.IOException; import java.net.URL; import java.util.Date; @@ -31,7 +29,7 @@ public class RewardListener { "§r§6Click the link to visit our website and claim your reward: §r§bhttp://rewards\\.hypixel\\.net/claim-reward/([A-Za-z0-9]+)§r"); private long lastRewardOpenedMs = new Date().getTime(); - private final AtomicReference rawRewardSessionData = new AtomicReference<>(); + private final AtomicReference sessionData = new AtomicReference<>(); /** * Fetches & scrapes the reward page in a separate thread. The resulting json is then stored in @@ -45,11 +43,12 @@ private void fetchRewardSession(String sessionId) { try { URL url = new URL("https://rewards.hypixel.net/claim-reward/" + sessionId); Response response = new Request(url, Method.GET, null).execute(); + if (response.getStatusCode() >= 200 && response.getStatusCode() < 300) { Document document = Jsoup.parse(response.getBody()); - JsonObject rawRewardData = RewardScraper.parseRewardPage(document); - rawRewardData.addProperty("_cookie", response.getNewCookies()); - rawRewardSessionData.set(rawRewardData); + RewardSession session = RewardScraper + .parseSessionFromRewardPage(document, response.getNewCookies()); + sessionData.set(session); } else { Mod.printWarning("Server sent back a " + response.getStatusCode() + " status code. Received the following body:\n" + response.getBody(), null, false); @@ -67,28 +66,18 @@ private void fetchRewardSession(String sessionId) { */ @SubscribeEvent public void onClientTick(ClientTickEvent event) { - if (rawRewardSessionData.get() != null) { - JsonElement error = rawRewardSessionData.get().get("error"); - if (error != null) { - Mod.printWarning("Failed to get reward: " + error.getAsString(), null, true); + if (Minecraft.getMinecraft().theWorld == null) { + return; + } + + RewardSession currentSessionData = sessionData.getAndSet(null); + if (currentSessionData != null) { + if (currentSessionData.getError() != null) { + Mod.printWarning("Failed to get reward: " + currentSessionData.getError(), null, true); return; } - try { - RewardSession session = SessionDataParser - .parseRewardSessionData(rawRewardSessionData.get()); - if (session != null) { - Minecraft.getMinecraft() - .displayGuiScreen(new GuiScreenRewardSession(session)); - } - } catch (Exception e) { - Mod.printWarning( - "Oops! We had some trouble reading your daily reward data. Please report this to the mod author with a screenshot of your daily reward page.", - null, true); - Mod.printWarning(e.getClass().getName() + " at " + e.getStackTrace()[0].toString(), e, - true); - } finally { - rawRewardSessionData.set(null); - } + Minecraft.getMinecraft() + .displayGuiScreen(new GuiScreenRewardSession(currentSessionData)); } } @@ -115,7 +104,8 @@ public void onChatReceived(ClientChatReceivedEvent event) { @SubscribeEvent public void onGuiInit(GuiOpenEvent event) { // Check for the reward book notification up to 10 seconds after the reward's chat link was received - if (event.gui instanceof GuiScreenBook + if (Minecraft.getMinecraft().thePlayer != null + && event.gui instanceof GuiScreenBook && (System.currentTimeMillis() - lastRewardOpenedMs) <= 10000) { event.setCanceled(true); lastRewardOpenedMs = 0; diff --git a/src/main/java/me/dancedog/rewardclaim/RewardScraper.java b/src/main/java/me/dancedog/rewardclaim/RewardScraper.java index 13c46aa..daba935 100644 --- a/src/main/java/me/dancedog/rewardclaim/RewardScraper.java +++ b/src/main/java/me/dancedog/rewardclaim/RewardScraper.java @@ -1,11 +1,10 @@ package me.dancedog.rewardclaim; -import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; import com.google.gson.JsonParser; import java.util.regex.Matcher; import java.util.regex.Pattern; +import me.dancedog.rewardclaim.model.RewardSession; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -18,53 +17,76 @@ class RewardScraper { private static final Pattern CSRF_TOKEN_PATTERN = Pattern .compile("window\\.securityToken = ['\"](.*?)['\"]"); - private static final Pattern REWARD_JSON_PATTERN = Pattern + private static final Pattern SESSION_JSON_PATTERN = Pattern .compile("window\\.appData = ['\"](.*?})['\"]"); private static final JsonParser jsonParser = new JsonParser(); /** - * Read the reward session json from a daily reward page + * Parse the session data from a daily reward page * - * @param document Document to get the session json from - * @return JsonObject of the session data on the provided document, or null if - * @throws JsonParseException If the document's session data was not valid json - * @throws IllegalStateException If the document's session data was not a JsonObject + * @param document Document representing the reward page + * @param cookie Cookie to be passed into the returned session (used to make claim request) + * @return The session parsed from the provided page */ - static JsonObject parseRewardPage(Document document) { + static RewardSession parseSessionFromRewardPage(Document document, String cookie) { + JsonObject rawSessionData; + if (document == null || document.body() == null) { - return createErrorJson("Document was null"); - } - Element infoScript = document.body().selectFirst("script"); - if (infoScript == null) { - return createErrorJson("Unable to locate reward data"); + rawSessionData = createErrorJson("Document was null"); + + } else { + // The "props" script contains information useful the daily reward react app + // This includes the rewards data, csrf token, i18n messages, etc + Element propsScript = document.body().selectFirst("script"); + if (propsScript == null) { + rawSessionData = createErrorJson("Unable to locate reward data"); + + } else { + String propsScriptContents = propsScript.data(); + rawSessionData = getRawSessionData(propsScriptContents); + rawSessionData.addProperty("_csrf", getCsrfToken(propsScriptContents)); + } } - JsonObject data = new JsonObject(); + return new RewardSession(rawSessionData, cookie); + } - // Get the JSON data for the reward session - String infoScriptContents = infoScript.data(); - Matcher rewardJsonMatcher = REWARD_JSON_PATTERN.matcher(infoScriptContents); + /** + * Extract the reward session's json data from the prop script's contents + * + * @param propsScriptContents String contents of the prop script element + * @return JsonObject of the session's data, or a JsonObject containing an error message if none + * was found + */ + private static JsonObject getRawSessionData(String propsScriptContents) { + Matcher rewardJsonMatcher = SESSION_JSON_PATTERN.matcher(propsScriptContents); if (rewardJsonMatcher.find()) { - JsonObject parsedRewardJson = jsonParser.parse(rewardJsonMatcher.group(1)).getAsJsonObject(); - JsonElement errorMessage = parsedRewardJson.get("error"); - if (errorMessage != null) { - return createErrorJson(errorMessage.getAsString()); - } - data.add("session_data", parsedRewardJson); + return jsonParser.parse(rewardJsonMatcher.group(1)).getAsJsonObject(); } else { return createErrorJson("Unable to locate reward data"); } + } - // Get the CSRF token needed to claim the reward - Matcher csrfTokenMatcher = CSRF_TOKEN_PATTERN.matcher(infoScriptContents); + /** + * Extract the csrf token from the prop script's contents + * + * @param propsScriptContents String contents of the prop script element + * @return Csrf token string, or null if none was found + */ + private static String getCsrfToken(String propsScriptContents) { + Matcher csrfTokenMatcher = CSRF_TOKEN_PATTERN.matcher(propsScriptContents); if (csrfTokenMatcher.find()) { - data.addProperty("csrf_token", csrfTokenMatcher.group(1)); - } else { - return createErrorJson("Unable to locate csrf token"); + return csrfTokenMatcher.group(1); } - - return data; + return null; } + /** + * Utility method to create a JsonObject containing an error message (same format that rewards + * page uses) + * + * @param errorMsg + * @return JsonObject containing the message + */ private static JsonObject createErrorJson(String errorMsg) { JsonObject json = new JsonObject(); json.addProperty("error", errorMsg); diff --git a/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java b/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java deleted file mode 100644 index 3c35305..0000000 --- a/src/main/java/me/dancedog/rewardclaim/SessionDataParser.java +++ /dev/null @@ -1,256 +0,0 @@ -package me.dancedog.rewardclaim; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import me.dancedog.rewardclaim.model.Reward; -import me.dancedog.rewardclaim.model.RewardSession; -import me.dancedog.rewardclaim.types.CardRarity; -import me.dancedog.rewardclaim.types.GameType; -import me.dancedog.rewardclaim.types.HousingSkullType; -import me.dancedog.rewardclaim.types.RewardType; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.ResourceLocation; - -/** - * Utility methods for parsing the JSON scraped from the rewards page - *

- * Created by DanceDog / Ben on 3/23/20 @ 3:23 PM - */ -final class SessionDataParser { - - private SessionDataParser() { - } - - private static final String VANITY_SUIT_PIECE_SUFFIX_REPLACEMENT_REGEX = "_([A-Za-z]+)$"; // Replaces "_leggings", etc - private static final String VANITY_SUIT_PIECE_PREFIX_REPLACEMENT_REGEX = "([A-Za-z]+_)(?!$)"; // Replaces everything except "leggings", etc - private static final String HOUSING_BLOCK_REPLACEMENT_REGEX = "specialoccasion_reward_card_skull_|'"; - - static RewardSession parseRewardSessionData(JsonObject input) { - JsonElement rawSessionJson = input.get("session_data"); - JsonElement csrfTokenElement = input.get("csrf_token"); - if (rawSessionJson == null - || !rawSessionJson.isJsonObject() - || csrfTokenElement == null - || !csrfTokenElement.isJsonPrimitive() - || rawSessionJson.getAsJsonObject().get("rewards") == null - || !rawSessionJson.getAsJsonObject().get("rewards").isJsonArray()) { - Mod.printWarning("Invalid reward session data", null, true); - return null; - } - - // Create session - RewardSession session = new RewardSession(); - session.setId(getStringFromJsonObject("id", rawSessionJson.getAsJsonObject())); - session.setCsrfToken(csrfTokenElement.getAsString()); - session.setCookies( - getStringFromJsonObject("_cookie", input)); // Our own value passed in through the JSON - - // Iterate over rewards - JsonArray rawRewardArray = rawSessionJson.getAsJsonObject().get("rewards") - .getAsJsonArray(); - if (rawRewardArray.size() != 3) { - Mod.printWarning("Expected 3 rewards, but found " + rawRewardArray.size(), null, true); - return null; - } - for (int i = 0; i < 3; i++) { - if (rawRewardArray.get(i) == null || !rawRewardArray.get(i).isJsonObject()) { - Mod.printWarning("Reward item was not a JsonObject", null, true); - return null; - } - JsonObject rawRewardJson = rawRewardArray.get(i).getAsJsonObject(); - - // Create reward card & related variables - Reward card = new Reward(); - RewardType rewardType = RewardType.fromName(getStringFromJsonObject("reward", rawRewardJson)); - GameType gameType = GameType.fromName(getStringFromJsonObject("gameType", rawRewardJson)); - String vanityKey = getStringFromJsonObject("key", rawRewardJson).toLowerCase(); - HousingSkullType housingSkullType = HousingSkullType.UNKNOWN; - if (rewardType == RewardType.HOUSING_PACKAGE) { - String housingPackageName = getStringFromJsonObject("package", rawRewardJson) - .replaceAll(HOUSING_BLOCK_REPLACEMENT_REGEX, ""); - housingSkullType = HousingSkullType.fromName(housingPackageName); - } - - // Set card text - card.setRarity(CardRarity.fromName(getStringFromJsonObject("rarity", rawRewardJson))); - card.setTitle(getTitle(rewardType, gameType, vanityKey)); - card.setSubtitle(getSubtitle(rewardType, housingSkullType, vanityKey, rawRewardJson)); - card.setDescription(getDescription(rewardType, gameType, vanityKey)); - - // Set card images - card.setTypeIcon(getTypeIcon(rewardType, gameType, vanityKey, housingSkullType)); - if (rewardType == RewardType.COINS) { - card.setGameIcon(gameType.getResource()); - } - if (rewardType == RewardType.ADD_VANITY && vanityKey.contains("suit")) { - card.setItemBg(Mod.getGuiTexture("bg_armor.png")); - String armorType = vanityKey.replaceAll(VANITY_SUIT_PIECE_PREFIX_REPLACEMENT_REGEX, "") - .toUpperCase(); - card.setItemIcon(Mod.getGuiTexture("reward_sub/armor/" + armorType + ".png")); - - } else if (rewardType == RewardType.HOUSING_PACKAGE) { - card - .setItemBg(Mod.getGuiTexture("bg_housing.png")); - card.setItemIcon(housingSkullType.getResource()); - } - - session.getRewards().add(card); - } - return session; - } - - /** - * Determine a reward's title (top text on the card) - * - * @param rewardType Type of reward - * @param gameType GameType of reward (coins/tokens) - * @param vanityKey Vanity key of the reward (if add_vanity) - * @return The reward's formatted title - */ - private static String getTitle(RewardType rewardType, GameType gameType, String vanityKey) { - String titleKey; - - if (rewardType == RewardType.COINS || rewardType == RewardType.TOKENS) { - return I18n.format(rewardType.getTitleKey(), gameType.getProperName()); - - } else if (rewardType == RewardType.ADD_VANITY) { - titleKey = "vanity."; - if (vanityKey != null && vanityKey.contains("suit")) { - titleKey += vanityKey.replaceAll(VANITY_SUIT_PIECE_SUFFIX_REPLACEMENT_REGEX, ""); - } else if (vanityKey == null) { - titleKey += "unknown"; - } else { - titleKey += vanityKey; - } - - } else { - titleKey = rewardType.getTitleKey(); - } - - return I18n.format(titleKey); - } - - /** - * Determine a reward's subtitle (bottom text on the card) - * - * @param rewardType Type of reward - * @param housingSkull Housing skull of reward (if housing_package) - * @param vanityKey Vanity key of the reward (if add_vanity) - * @param rewardJson Original reward session JsonObject - * @return The reward's formatted subtitle - */ - private static String getSubtitle(RewardType rewardType, HousingSkullType housingSkull, - String vanityKey, JsonObject rewardJson) { - String subtitleKey; - - if (rewardType == RewardType.HOUSING_PACKAGE) { - subtitleKey = "housing.skull." + housingSkull.name().toLowerCase(); - - } else if (rewardType == RewardType.ADD_VANITY) { - if (vanityKey.contains("suit")) { - subtitleKey = - "vanity.armor." + vanityKey.replaceAll(VANITY_SUIT_PIECE_PREFIX_REPLACEMENT_REGEX, ""); - } else { - subtitleKey = "vanity." + vanityKey; - } - - } else if (rewardJson.get("amount") != null && rewardJson.get("amount").isJsonPrimitive()) { - subtitleKey = "" + rewardJson.get("amount").getAsInt(); - } else { - subtitleKey = "type.unknown.amount"; - } - - return I18n.format(subtitleKey); - } - - /** - * Determine a reward's description (bottom of card's tooltip) - * - * @param rewardType Type of reward - * @param gameType gameType GameType of reward (coins/tokens) - * @param vanityKey Vanity key of the reward (if add_vanity) - * @return The reward's formatted description - */ - private static String getDescription(RewardType rewardType, GameType gameType, String vanityKey) { - String descriptionKeyBase; - - if (rewardType == RewardType.COINS || rewardType == RewardType.TOKENS) { - return I18n.format(rewardType.getTitleKey() + ".description", gameType.getProperName()); - - } else if (rewardType == RewardType.ADD_VANITY) { - if (vanityKey.contains("suit")) { - descriptionKeyBase = "vanity.suits"; - } else if (vanityKey.contains("emote")) { - descriptionKeyBase = "vanity.emotes"; - } else if (vanityKey.contains("taunt")) { - descriptionKeyBase = "vanity.gestures"; - } else { - descriptionKeyBase = "vanity.unknown"; - } - - } else { - descriptionKeyBase = rewardType.getTitleKey(); - } - - return I18n.format(descriptionKeyBase + ".description"); - } - - /** - * Determine a reward's description (bottom of card's tooltip) - * - * @param rewardType Type of reward - * @param gameType gameType GameType of reward (coins/tokens) - * @param vanityKey Vanity key of the reward (if add_vanity) - * @param housingSkull Housing skull of reward (if housing_package) - * @return The reward's formatted description - */ - private static ResourceLocation getTypeIcon(RewardType rewardType, GameType gameType, - String vanityKey, HousingSkullType housingSkull) { - ResourceLocation typeIcon; - - if (rewardType == RewardType.TOKENS) { - if (gameType == GameType.SKYWARS || gameType == GameType.LEGACY) { - typeIcon = Mod.getGuiTexture("reward_base/TOKENS_" + gameType.name() + ".png"); - } else { - typeIcon = RewardType.COINS.getIcon(); - } - - } else if (rewardType == RewardType.ADD_VANITY) { - String typeName; - if (vanityKey.contains("suit")) { - typeName = "SUIT"; - } else if (vanityKey.contains("emote")) { - typeName = "EMOTE"; - } else if (vanityKey.contains("taunt")) { - typeName = "GESTURE"; - } else { - typeName = "UNKNOWN"; - } - typeIcon = Mod.getGuiTexture("reward_base/VANITY_" + typeName + ".png"); - - } else if (rewardType == RewardType.HOUSING_PACKAGE) { - typeIcon = housingSkull.getGroup().getResource(); - } else { - typeIcon = rewardType.getIcon(); - } - - return typeIcon; - } - - /** - * Utility method to get a String from a JsonObject, or an empty String if the memberName couldn't - * be found - * - * @param memberName Key for the requested value - * @param jsonObject JsonObject to search - * @return String value of requested member, or an empty String if member could not be found - */ - private static String getStringFromJsonObject(String memberName, JsonObject jsonObject) { - JsonElement member = jsonObject.get(memberName); - if (member == null) { - return ""; - } - return member.getAsString(); - } -} \ No newline at end of file diff --git a/src/main/java/me/dancedog/rewardclaim/model/Reward.java b/src/main/java/me/dancedog/rewardclaim/model/Reward.java deleted file mode 100644 index 4e5edee..0000000 --- a/src/main/java/me/dancedog/rewardclaim/model/Reward.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.dancedog.rewardclaim.model; - -import lombok.Data; -import me.dancedog.rewardclaim.types.CardRarity; -import net.minecraft.util.ResourceLocation; - -/** - * Created by DanceDog / Ben on 3/21/20 @ 10:10 PM - */ -@SuppressWarnings("unused") -@Data -public class Reward { - - // Card text - private String title; - private String subtitle; // Amount / Skull Name (ie "Rubik's Cube") / Armor Piece (ie "Leggings") / Vanity Item Name (ie "Moustache Emote") - private String description; - private CardRarity rarity; - - // Assets - private ResourceLocation typeIcon; // Main image of the card - private ResourceLocation gameIcon; // GameType icon of coin/token's game - private ResourceLocation itemBg; // Background of the skull/armor's item preview - private ResourceLocation itemIcon; // Preview icon of skull/armor's icon -} diff --git a/src/main/java/me/dancedog/rewardclaim/model/RewardCard.java b/src/main/java/me/dancedog/rewardclaim/model/RewardCard.java new file mode 100644 index 0000000..1313143 --- /dev/null +++ b/src/main/java/me/dancedog/rewardclaim/model/RewardCard.java @@ -0,0 +1,300 @@ +package me.dancedog.rewardclaim.model; + +import com.google.gson.JsonObject; +import lombok.Getter; +import lombok.NonNull; +import me.dancedog.rewardclaim.Mod; +import me.dancedog.rewardclaim.types.CardRarity; +import me.dancedog.rewardclaim.types.GameType; +import me.dancedog.rewardclaim.types.HousingSkull; +import me.dancedog.rewardclaim.types.RewardType; +import net.minecraft.client.resources.I18n; +import net.minecraft.util.ResourceLocation; + +/** + * Created by DanceDog / Ben on 3/31/20 @ 6:51 PM + */ +public class RewardCard { + + private static final String RARITY_JSON_KEY = "rarity"; + private static final String TYPE_JSON_KEY = "reward"; + private static final String VANITYKEY_JSON_KEY = "key"; + private static final String GAMETYPE_JSON_KEY = "gameType"; + private static final String HOUSINGPKG_JSON_KEY = "package"; + private static final String INTLIST_JSON_KEY = "intlist"; + private static final String AMOUNT_JSON_KEY = "amount"; + + /** + * This card's reward rarity value + */ + @NonNull + @Getter + private CardRarity rarity; + + /** + * The base type of this card's reward + */ + @Getter + private RewardType rewardType; + + /** + * The minigame that this reward is for Only applies to coin and token rewards + */ + @Getter + private GameType gameType; + + /** + * The main text to display on the bottom of this card + */ + @Getter + private String title; + + /** + * The text to display under the title + */ + @Getter + private String subtitle; + + /** + * A description of this card's rewardType + */ + @Getter + private String description; + + /** + * The large texture to display in the center of this card + */ + @Getter + private ResourceLocation typeIcon; + + /** + * The texture of the smaller icon to display next to the typeIcon Only applies to housing blocks + * and vanity suit pieces + */ + @Getter + private ResourceLocation itemIcon; + + /** + * The texture to display behind the item icon Only applies to housing blocks and vanity suit + * pieces + */ + @Getter + private ResourceLocation itemIconBg; + + RewardCard(JsonObject raw) { + if (!validate(raw)) { + this.rarity = CardRarity.ERROR; + return; + } + this.rewardType = RewardType.fromName(raw.get(TYPE_JSON_KEY).getAsString()); + this.rarity = CardRarity.fromName(raw.get(RARITY_JSON_KEY).getAsString()); + if (this.rewardType == RewardType.COINS || rewardType == RewardType.TOKENS) { + this.gameType = GameType.fromName(raw.get(GAMETYPE_JSON_KEY).getAsString()); + } + + setUnformattedTitle(raw); + setUnformattedSubtitle(raw); + setUnformattedDescription(raw); + setTypeIcon(raw); + setItemIcons(raw); + + // Format text + this.title = this.gameType != null + ? I18n.format(this.title, this.gameType.getProperName()) + : I18n.format(this.title); + this.subtitle = I18n.format(this.subtitle); + this.description = this.gameType != null + ? I18n.format(this.description, this.gameType.getProperName()) + : I18n.format(this.description); + } + + /** + * Determines this card's title text (unformatted) + * + * @param raw Raw JSON represented by this card + */ + private void setUnformattedTitle(JsonObject raw) { + if (this.rewardType == RewardType.ADD_VANITY) { + String key = raw.get(VANITYKEY_JSON_KEY).getAsString(); + if (key.contains("suit")) { + this.title = "vanity." + key.replaceAll("_([A-Za-z]+)$", ""); + } else { + this.title = "vanity." + key; + } + } else { + this.title = this.rewardType.getTitle(); + } + } + + /** + * Determines this card's subtitle text (unformatted) + * + * @param raw Raw JSON represented by this card + */ + private void setUnformattedSubtitle(JsonObject raw) { + if (this.rewardType == RewardType.ADD_VANITY) { + String key = raw.get(VANITYKEY_JSON_KEY).getAsString(); + if (key.contains("suit")) { + this.subtitle = "vanity.armor." + key.replaceAll("([A-Za-z]+_)(?!$)", ""); + } else { + this.subtitle = this.title; + } + + } else if (this.rewardType == RewardType.HOUSING_PACKAGE) { + this.subtitle = "housing.skull." + getHousingSkull(raw).name().toLowerCase(); + + } else if (raw.has(INTLIST_JSON_KEY) && !raw.has(AMOUNT_JSON_KEY)) { + this.subtitle = String.valueOf(raw.get(INTLIST_JSON_KEY).getAsJsonArray().size()); + + } else { + this.subtitle = raw.get(AMOUNT_JSON_KEY).getAsString(); + } + } + + /** + * Determines this card's description text (unformatted) + * + * @param raw Raw JSON represented by this card + */ + private void setUnformattedDescription(JsonObject raw) { + if (this.rewardType == RewardType.ADD_VANITY) { + String key = raw.get(VANITYKEY_JSON_KEY).getAsString(); + if (key.contains("suit")) { + description = "vanity.suits"; + } else if (key.contains("emote")) { + description = "vanity.emotes"; + } else if (key.contains("taunt")) { + description = "vanity.gestures"; + } else { + description = "vanity.unknown"; + } + + } else { + description = title; + } + + description += ".description"; + } + + /** + * Determines this card's main reward texture + * + * @param raw Raw JSON represented by this card + */ + private void setTypeIcon(JsonObject raw) { + String textureName; + if (this.rewardType == RewardType.ADD_VANITY) { + String key = raw.get(VANITYKEY_JSON_KEY).getAsString(); + if (key.contains("suit")) { + textureName = "SUIT"; + } else if (key.contains("emote")) { + textureName = "EMOTE"; + } else if (key.contains("taunt")) { + textureName = "GESTURE"; + } else { + textureName = "UNKNOWN"; + } + textureName = "VANITY_" + textureName; + + } else if (this.rewardType == RewardType.HOUSING_PACKAGE) { + textureName = "HOUSING_" + getHousingSkull(raw).getGroup().name(); + + } else if (this.rewardType == RewardType.TOKENS) { + textureName = "TOKENS_" + gameType.name(); + + } else { + textureName = this.rewardType.name(); + } + + this.typeIcon = Mod.getGuiTexture("reward_base/" + textureName + ".png"); + } + + /** + * Determines this card's mini item texture & background + * + * @param raw Raw JSON represented by this card + */ + private void setItemIcons(JsonObject raw) { + if (this.rewardType == RewardType.ADD_VANITY) { + String key = raw.get(VANITYKEY_JSON_KEY).getAsString(); + if (key.contains("suit")) { + this.itemIcon = Mod.getGuiTexture( + "reward_sub/armor/" + key.replaceAll("([A-Za-z]+_)(?!$)", "").toUpperCase() + ".png"); + this.itemIconBg = Mod.getGuiTexture("bg_armor.png"); + } + + } else if (this.rewardType == RewardType.HOUSING_PACKAGE) { + this.itemIcon = getHousingSkull(raw).getResource(); + this.itemIconBg = Mod.getGuiTexture("bg_housing.png"); + } + } + + /** + * Ensure that the data this card represents is valid + * + * @param raw Raw JSON represented by this card + * @return Whether or not the passed data can be properly displayed + */ + private static boolean validate(JsonObject raw) { + if (raw == null) { + return false; + } + if (!raw.has(RARITY_JSON_KEY) || !raw.has(TYPE_JSON_KEY)) { + return false; + } + + CardRarity rarity = CardRarity.fromName(raw.get(RARITY_JSON_KEY).getAsString()); + RewardType rewardType = RewardType.fromName(raw.get(TYPE_JSON_KEY).getAsString()); + if (rarity == null || rewardType == null) { + return false; + } + switch (rewardType) { + case ADD_VANITY: + if (!raw.has(VANITYKEY_JSON_KEY)) { + return false; + } + break; + + case TOKENS: + case COINS: + if (!raw.has(AMOUNT_JSON_KEY)) { + return false; + } + if (!raw.has(GAMETYPE_JSON_KEY)) { + return false; + } + if (GameType.fromName(raw.get(GAMETYPE_JSON_KEY).getAsString()) == null) { + return false; + } + break; + + case HOUSING_PACKAGE: + if (!raw.has(HOUSINGPKG_JSON_KEY)) { + return false; + } + if (getHousingSkull(raw) == null) { + return false; + } + break; + + default: + if (!raw.has(AMOUNT_JSON_KEY) && !raw.has(INTLIST_JSON_KEY)) { + return false; + } + } + + return true; + } + + /** + * Utility method to get a housing skull type from a reward object + * + * @param raw Raw reward object to get the skull from + * @return The raw reward's housing skull, or null if there was no skull with that name + */ + private static HousingSkull getHousingSkull(JsonObject raw) { + return HousingSkull.fromName( + raw.get(HOUSINGPKG_JSON_KEY).getAsString() + .replaceAll("specialoccasion_reward_card_skull_|'", "")); + } +} diff --git a/src/main/java/me/dancedog/rewardclaim/model/RewardSession.java b/src/main/java/me/dancedog/rewardclaim/model/RewardSession.java index 8f98d61..d575eb2 100644 --- a/src/main/java/me/dancedog/rewardclaim/model/RewardSession.java +++ b/src/main/java/me/dancedog/rewardclaim/model/RewardSession.java @@ -1,10 +1,12 @@ package me.dancedog.rewardclaim.model; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; -import lombok.Data; +import lombok.Getter; import me.dancedog.rewardclaim.Mod; import me.dancedog.rewardclaim.fetch.Request; import me.dancedog.rewardclaim.fetch.Request.Method; @@ -13,14 +15,55 @@ /** * Created by DanceDog / Ben on 3/22/20 @ 8:52 PM */ -@Data public class RewardSession { + @Getter + String error; + @Getter private String id; + @Getter + private List cards; + @Getter private String csrfToken; - private String adVideoId; - private List rewards = new ArrayList<>(); - private String cookies; + @Getter + private String cookie; + + /** + * Create a new reward session object from the session json (rewards, ad, streak, etc), the + * session's csrf token and the session's cookie + * + * @param raw The session's raw json representation + * @param cookie The cookie received from the original reward request + */ + public RewardSession(JsonObject raw, String cookie) { + if (!validateSessionData(raw)) { + if (raw != null && raw.has("error")) { + this.error = raw.get("error").getAsString(); + } else { + this.error = "Invalid reward session data"; + } + return; + } + + this.id = raw.get("id").getAsString(); + this.cards = new ArrayList<>(); + for (JsonElement rewardElement : raw.get("rewards").getAsJsonArray()) { + this.cards + .add(new RewardCard(rewardElement != null ? rewardElement.getAsJsonObject() : null)); + } + this.csrfToken = raw.get("_csrf").getAsString(); + this.cookie = cookie; + } + + private static boolean validateSessionData(JsonObject raw) { + return raw != null + && raw.has("id") + && raw.has("activeAd") + && raw.has("ad") + && raw.has("skippable") + && raw.has("rewards") + && raw.get("rewards").getAsJsonArray().size() == 3; + } public void claimReward(int option) { new Thread(() -> { @@ -34,7 +77,7 @@ public void claimReward(int option) { + "&watchedFallback=false"; URL url = new URL(urlStr); - Response response = new Request(url, Method.POST, this.cookies).execute(); + Response response = new Request(url, Method.POST, this.cookie).execute(); if (response.getStatusCode() >= 200 && response.getStatusCode() < 300) { Mod.getLogger().info("Successfully claimed reward"); } else { diff --git a/src/main/java/me/dancedog/rewardclaim/types/CardRarity.java b/src/main/java/me/dancedog/rewardclaim/types/CardRarity.java index 2d6c95d..df215b8 100644 --- a/src/main/java/me/dancedog/rewardclaim/types/CardRarity.java +++ b/src/main/java/me/dancedog/rewardclaim/types/CardRarity.java @@ -15,7 +15,9 @@ public enum CardRarity { COMMON("rarity.common", 0xff9b4e, EnumChatFormatting.YELLOW), RARE("rarity.rare", 0x62e2de, EnumChatFormatting.AQUA), EPIC("rarity.epic", 0xc633e8, EnumChatFormatting.DARK_PURPLE), - LEGENDARY("rarity.legendary", 0xe2b751, EnumChatFormatting.GOLD); + LEGENDARY("rarity.legendary", 0xe2b751, EnumChatFormatting.GOLD), + + ERROR(null, 0, EnumChatFormatting.DARK_RED); @Getter private final String displayName; @@ -42,14 +44,13 @@ public enum CardRarity { public static CardRarity fromName(String name) { if (name == null || name.isEmpty()) { - return COMMON; + return null; } - try { return valueOf(name.toUpperCase()); } catch (IllegalArgumentException e) { e.printStackTrace(); - return COMMON; + return null; } } } diff --git a/src/main/java/me/dancedog/rewardclaim/types/GameType.java b/src/main/java/me/dancedog/rewardclaim/types/GameType.java index 703b064..bbf10d8 100644 --- a/src/main/java/me/dancedog/rewardclaim/types/GameType.java +++ b/src/main/java/me/dancedog/rewardclaim/types/GameType.java @@ -11,9 +11,6 @@ */ @SuppressWarnings("unused") public enum GameType { - // Fallback - UNKNOWN("Unknown Game"), - // Possible reward games QUAKECRAFT("Quakecraft"), WALLS("Walls"), @@ -56,14 +53,13 @@ public enum GameType { public static GameType fromName(String name) { if (name == null || name.isEmpty()) { - return UNKNOWN; + return null; } - try { return valueOf(name.toUpperCase()); } catch (IllegalArgumentException e) { e.printStackTrace(); - return UNKNOWN; + return null; } } } diff --git a/src/main/java/me/dancedog/rewardclaim/types/HousingSkullType.java b/src/main/java/me/dancedog/rewardclaim/types/HousingSkull.java similarity index 92% rename from src/main/java/me/dancedog/rewardclaim/types/HousingSkullType.java rename to src/main/java/me/dancedog/rewardclaim/types/HousingSkull.java index 072555b..194c32c 100644 --- a/src/main/java/me/dancedog/rewardclaim/types/HousingSkullType.java +++ b/src/main/java/me/dancedog/rewardclaim/types/HousingSkull.java @@ -10,7 +10,7 @@ * Created by DanceDog / Ben on 3/23/20 @ 4:50 PM */ @SuppressWarnings("unused") -public enum HousingSkullType { +public enum HousingSkull { // Fallback UNKNOWN(HousingSkullGroup.RED), @@ -43,12 +43,12 @@ public enum HousingSkullType { @Getter private final ResourceLocation resource; - HousingSkullType(HousingSkullGroup group) { + HousingSkull(HousingSkullGroup group) { this.group = group; this.resource = Mod.getGuiTexture("reward_sub/housing_skull/" + name().toUpperCase() + ".png"); } - public static HousingSkullType fromName(String name) { + public static HousingSkull fromName(String name) { if (name == null || name.isEmpty()) { return UNKNOWN; } diff --git a/src/main/java/me/dancedog/rewardclaim/types/RewardType.java b/src/main/java/me/dancedog/rewardclaim/types/RewardType.java index 2c33baf..ad62de6 100644 --- a/src/main/java/me/dancedog/rewardclaim/types/RewardType.java +++ b/src/main/java/me/dancedog/rewardclaim/types/RewardType.java @@ -11,9 +11,6 @@ */ @SuppressWarnings("unused") public enum RewardType { - // Fallback - UNKNOWN("type.unknown", "UNKNOWN", false), - // Generic rewards DUST("type.dust", "DUST"), EXPERIENCE("type.experience", "EXPERIENCE"), @@ -29,7 +26,7 @@ public enum RewardType { ADD_VANITY("type.add_vanity", null, false); @Getter - private final String titleKey; + private final String title; @Getter private ResourceLocation icon; private final boolean hasAmount; @@ -42,7 +39,7 @@ public enum RewardType { } RewardType(String title, String iconName, boolean hasAmount) { - this.titleKey = title; + this.title = title; this.hasAmount = hasAmount; if (iconName != null) { @@ -56,14 +53,13 @@ public boolean hasAmount() { public static RewardType fromName(String name) { if (name == null || name.isEmpty()) { - return UNKNOWN; + return null; } - try { return valueOf(name.toUpperCase()); } catch (IllegalArgumentException e) { e.printStackTrace(); - return UNKNOWN; + return null; } } } diff --git a/src/main/java/me/dancedog/rewardclaim/ui/GuiRewardCard.java b/src/main/java/me/dancedog/rewardclaim/ui/GuiRewardCard.java index f57fd66..ea132ea 100644 --- a/src/main/java/me/dancedog/rewardclaim/ui/GuiRewardCard.java +++ b/src/main/java/me/dancedog/rewardclaim/ui/GuiRewardCard.java @@ -5,7 +5,7 @@ import lombok.Getter; import lombok.Setter; import me.dancedog.rewardclaim.Mod; -import me.dancedog.rewardclaim.model.Reward; +import me.dancedog.rewardclaim.model.RewardCard; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.Gui; @@ -26,9 +26,10 @@ class GuiRewardCard extends Gui { private static final ResourceLocation tooltipTexture = Mod .getGuiTexture("cards/card_tooltip.png"); - private final Reward cardInfo; - private final int posX; - private final int posY; + private final RewardCard cardInfo; + private int posX = 0; + private int posY = 0; + @Setter private boolean isFlipped = false; @Setter @@ -38,16 +39,19 @@ class GuiRewardCard extends Gui { @Setter private boolean showTooltip = false; - GuiRewardCard(Reward cardInfo, int posX, int posY) { + GuiRewardCard(RewardCard cardInfo) { this.cardInfo = cardInfo; - this.posX = posX; - this.posY = posY; tooltipLines = new ArrayList<>(); tooltipLines .add(EnumChatFormatting.WHITE + "" + EnumChatFormatting.ITALIC + cardInfo.getDescription()); } + void initGui(int posX, int posY) { + this.posX = posX; + this.posY = posY; + } + void drawRewardCard(int mouseX, int mouseY) { if (isEnabled && isHovered(mouseX, mouseY)) { isFlipped = true; @@ -125,15 +129,15 @@ private void drawCardTextures() { CARD_HEIGHT); // Game icon for coins - if (cardInfo.getGameIcon() != null) { - mc.getTextureManager().bindTexture(cardInfo.getGameIcon()); + if (cardInfo.getGameType() != null) { + mc.getTextureManager().bindTexture(cardInfo.getGameType().getResource()); drawModalRectWithCustomSizedTexture(posX + 65, posY + 63, 0, 0, 21, 21, 21, 21); } // Item icon for armor & housing blocks if (cardInfo.getItemIcon() != null) { // Background - mc.getTextureManager().bindTexture(cardInfo.getItemBg()); + mc.getTextureManager().bindTexture(cardInfo.getItemIconBg()); drawModalRectWithCustomSizedTexture(posX + 64, posY + 63, 0, 0, 28, 28, 28, 28); // Draw the item inside the background diff --git a/src/main/java/me/dancedog/rewardclaim/ui/GuiScreenRewardSession.java b/src/main/java/me/dancedog/rewardclaim/ui/GuiScreenRewardSession.java index 1219ddf..2314998 100644 --- a/src/main/java/me/dancedog/rewardclaim/ui/GuiScreenRewardSession.java +++ b/src/main/java/me/dancedog/rewardclaim/ui/GuiScreenRewardSession.java @@ -2,6 +2,7 @@ import java.io.IOException; import lombok.Getter; +import me.dancedog.rewardclaim.Mod; import me.dancedog.rewardclaim.model.RewardSession; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; @@ -18,6 +19,7 @@ public class GuiScreenRewardSession extends GuiScreen { private State guiState = State.INITIAL; + private int chosenCard = -1; private RewardSession session; private GuiRewardCard[] cards = new GuiRewardCard[3]; @@ -26,15 +28,16 @@ public class GuiScreenRewardSession extends GuiScreen { public GuiScreenRewardSession(RewardSession session) { this.session = session; + for (int i = 0; i < 3; i++) { + this.cards[i] = new GuiRewardCard(session.getCards().get(i)); + } } @Override public void initGui() { - guiState = State.INITIAL; - - int middleCardX = width / 2 - (GuiRewardCard.CARD_WIDTH - / 2); // used with spacing to offset first and last cards - int cardY = height / 2 - (GuiRewardCard.CARD_HEIGHT / 2); + // Determine card position and spacing + int middleCardX = width / 2 - (GuiRewardCard.CARD_WIDTH / 2); + int posY = height / 2 - (GuiRewardCard.CARD_HEIGHT / 2); int cardSpacing = 20; // Reward cards @@ -53,11 +56,7 @@ public void initGui() { default: posX = 0; } - this.cards[i] = new GuiRewardCard( - session.getRewards().get(i), - posX, - cardY - ); + this.cards[i].initGui(posX, posY); } // Close button ("X") @@ -80,6 +79,8 @@ public void initGui() { this.buttonList.add(closeButton); this.buttonList.add(activationButton); + + refreshState(); } @Override @@ -88,6 +89,13 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { this.drawGradientRect(0, 0, this.width, this.height, -1072689136, -804253680); super.drawScreen(mouseX, mouseY, partialTicks); + // Header + drawCenteredString(fontRendererObj, + EnumChatFormatting.GOLD + "" + EnumChatFormatting.BOLD + guiState.titleMessage, + width / 2, + (height / 2 - (GuiRewardCard.CARD_HEIGHT / 2)) / 2 - 5, + 0); + // Determine tooltip states if (guiState != State.INITIAL) { for (GuiRewardCard rewardCard : cards) { @@ -100,12 +108,7 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { rewardCard.drawRewardCard(mouseX, mouseY); } - drawCenteredString(fontRendererObj, - EnumChatFormatting.GOLD + "" + EnumChatFormatting.BOLD + guiState.titleMessage, - width / 2, - (height / 2 - (GuiRewardCard.CARD_HEIGHT / 2)) / 2 - 5, - 0); - + // Clickable text for reward page drawString(fontRendererObj, EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "Reward ID: " + session .getId(), @@ -144,14 +147,10 @@ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOEx if (cards[i].isHovered(mouseX, mouseY)) { guiState = State.FINAL; + this.chosenCard = i; + refreshState(); - for (GuiRewardCard rewardCard : cards) { - rewardCard.setFlipped(true); - rewardCard.setEnabled(false); - } - - // Re-enable the selected card & claim its reward - cards[i].setEnabled(true); + Mod.getLogger().debug("Card {} was claimed", i); this.session.claimReward(i); } } @@ -165,12 +164,30 @@ protected void actionPerformed(GuiButton button) { this.mc.setIngameFocus(); } else if (button == activationButton) { - this.activationButton.enabled = false; this.guiState = State.CHOOSING; + refreshState(); + } + } + + /** + * Updates all elements according to the GUI's current state This prevents the GUI from resetting + * when the window gets resized + */ + private void refreshState() { + if (this.guiState != State.INITIAL) { + this.activationButton.enabled = false; for (GuiRewardCard rewardCard : cards) { rewardCard.setEnabled(true); } } + + if (this.guiState == State.FINAL) { + for (GuiRewardCard rewardCard : cards) { + rewardCard.setFlipped(true); + rewardCard.setEnabled(false); + } + cards[chosenCard].setEnabled(true); + } } @Override diff --git a/src/main/resources/assets/rewardclaim/lang/en_US.lang b/src/main/resources/assets/rewardclaim/lang/en_US.lang index 32b988f..1f3ab5c 100644 --- a/src/main/resources/assets/rewardclaim/lang/en_US.lang +++ b/src/main/resources/assets/rewardclaim/lang/en_US.lang @@ -47,12 +47,11 @@ type.tokens.description=In-game tokens for %s # Lobby Cosmetics type.add_vanity=Lobby Cosmetics -type.add_vanity.description=Unknown Cosmetic vanity.suits.description=1 of 4 unique cosmetic suit parts vanity.emotes.description=A unique animated Emote item vanity.gestures.description=A unique animated Gesture item -vanity.unknown.description=Unknown cosmetic +vanity.unknown.description=An unknown lobby cosmetic vanity.suit_treasure=Treasure Hunter Suit vanity.emote_moustache=Moustache Emote @@ -88,10 +87,4 @@ housing.skull.jewelery_box=Jewelery Box housing.skull.crown=Crown housing.skull.molten_core=Molten Core housing.skull.mana_potion=Mana Potion -housing.skull.unknown=Unknown Block - -# Fallback - -type.unknown=Unknown -type.unknown.description=Unknown Reward -type.unknown.amount=Unknown Amount \ No newline at end of file +housing.skull.unknown=Unknown Block \ No newline at end of file diff --git a/src/main/resources/assets/rewardclaim/textures/gui/cards/cardback_error.png b/src/main/resources/assets/rewardclaim/textures/gui/cards/cardback_error.png new file mode 100644 index 0000000000000000000000000000000000000000..fc77622400a155c68427a63155854f823bbd9977 GIT binary patch literal 114006 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⪑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 z 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 Be+&Qs literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/rewardclaim/textures/gui/cards/cardfront_error.png b/src/main/resources/assets/rewardclaim/textures/gui/cards/cardfront_error.png new file mode 100644 index 0000000000000000000000000000000000000000..cf19daf99f78015b84df5cd1b840801987b9ea87 GIT binary patch literal 89085 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 z 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 Y2Dt*jb!