Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,40 @@
*/
public enum HypixelBedWarsMode {

SOLOS("eight_one_"),
DOUBLES("eight_two_"),
TRIOS("four_three_"),
FOURS("four_four_"),
SOLOS("eight_one"),
DOUBLES("eight_two"),
TRIOS("four_three"),
FOURS("four_four"),

FOUR_VS_FOUR("two_four_"),
FOUR_VS_FOUR("two_four"),

RUSH_SOLOS("eight_one_rush_"),
RUSH_DOUBLES("eight_two_rush_"),
RUSH_FOURS("four_four_rush_"),
RUSH_SOLOS("eight_one_rush"),
RUSH_DOUBLES("eight_two_rush"),
RUSH_FOURS("four_four_rush"),

ULTIMATE_DOUBLES("eight_two_ultimate_"),
ULTIMATE_FOURS("four_four_ultimate_"),
ULTIMATE_DOUBLES("eight_two_ultimate"),
ULTIMATE_FOURS("four_four_ultimate"),

LUCKY_DOUBLES("eight_two_lucky_"),
LUCKY_FOURS("four_four_lucky_"),
LUCKY_DOUBLES("eight_two_lucky"),
LUCKY_FOURS("four_four_lucky"),

ARMED_DOUBLES("eight_two_armed_"),
ARMED_FOURS("four_four_armed_"),
ARMED_DOUBLES("eight_two_armed"),
ARMED_FOURS("four_four_armed"),

CASTLE("castle_"),
CASTLE("castle"),

VOIDLESS_DOUBLES("eight_two_voidless_"),
VOIDLESS_FOURS("four_four_voidless_"),
VOIDLESS_DOUBLES("eight_two_voidless"),
VOIDLESS_FOURS("four_four_voidless"),

UNDERWORLD_DOUBLES("eight_two_underworld_"),
UNDERWORLD_FOURS("four_four_underworld_"),
UNDERWORLD_DOUBLES("eight_two_underworld"),
UNDERWORLD_FOURS("four_four_underworld"),

SWAP_DOUBLES("eight_two_swap_"),
SWAP_FOURS("four_four_swap_"),
SWAP_DOUBLES("eight_two_swap"),
SWAP_FOURS("four_four_swap"),

OVERALL("");

String statsPrefix;
final String statsPrefix;

HypixelBedWarsMode(String statsPrefix) {
this.statsPrefix = statsPrefix;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ public boolean isRemoved() {
* @return The player's stats for that {@code mode}.
*/
public HypixelBedWars getMode(HypixelBedWarsMode mode) {
return new HypixelBedWars(
jsonHandler.getThisJSONHandlerWithStatsPrefix(mode.getStatsPrefix()));
JSONHandler jsonHandler = this.jsonHandler.getCopy();
jsonHandler.setStatsPrefix(mode.getStatsPrefix());
return new HypixelBedWars(jsonHandler);
}

/**
Expand Down
41 changes: 29 additions & 12 deletions src/main/java/io/github/neopixel/wrapper/games/uhc/HypixelUHC.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,43 @@
package io.github.neopixel.wrapper.games.uhc;

import io.github.neopixel.wrapper.games.HypixelGame;
import io.github.neopixel.wrapper.games.bedwars.BedWarsKillCause;
import io.github.neopixel.wrapper.util.JSONHandler;

public class HypixelUHC extends HypixelGame {
public class HypixelUHC {

private final JSONHandler jsonHandler;

protected HypixelUHC(JSONHandler jsonHandler) {
super(jsonHandler);
this.jsonHandler = jsonHandler;
}


public int getWins() {
return jsonHandler.getSafeInt("wins");
}

public int getHeadsEaten() {
return jsonHandler.getSafeInt("heads_eaten");
}

@Override
public String getGameID() {
return "UHC";
public int getKills() {
return jsonHandler.getSafeInt("kills");
}

@Override
public String getGameName() {
return "UHC Champions";
public int getDeaths() {
return jsonHandler.getSafeInt("deaths");
}

@Override
public boolean isRemoved() {
return false;
public int getKillToDeathRatio() {
return getKills() / Math.max(getDeaths(), 1);
}

public int getUltimatesCrafted() {
return jsonHandler.getSafeInt("ultimates_crafted");
}

public int getExtraUltimatesCrafted() {
return jsonHandler.getSafeInt("extra_ultimates_crafted");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package io.github.neopixel.wrapper.games.uhc;

public enum HypixelUHCMode {

SOLOS("solo"),
TEAMS(""),

SOLO_BRAWL("solo_brawl"),
DUO_BRAWL("duo_brawl"),

NO_DIAMONDS("no_diamonds"),

RED_vs_BLUE("red_vs_blue");

final String statsPrefix;

HypixelUHCMode(String statsPrefix) {
this.statsPrefix = statsPrefix;
}

public String getStatsSuffix() {
return statsPrefix;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package io.github.neopixel.wrapper.games.uhc;

import io.github.neopixel.wrapper.games.HypixelGame;
import io.github.neopixel.wrapper.games.bedwars.HypixelBedWars;
import io.github.neopixel.wrapper.util.JSONHandler;

public class HypixelUHCStats extends HypixelGame {

protected HypixelUHCStats(JSONHandler jsonHandler) {
super(jsonHandler);
}

@Override
public String getGameID() {
return "UHC";
}

@Override
public String getGameName() {
return "UHC Champions";
}

@Override
public boolean isRemoved() {
return false;
}

public int getCoins() {
return jsonHandler.getSafeInt("coins");
}

public boolean isTeammateDamage() {
return jsonHandler.getSafeBoolean("teammate_damage");
}

public HypixelUHC getMode(HypixelUHCMode mode) {
JSONHandler jsonHandler = this.jsonHandler.getCopy();
jsonHandler.setStatsPrefix(mode.getStatsSuffix());
return new HypixelUHC(jsonHandler);
}
}
33 changes: 25 additions & 8 deletions src/main/java/io/github/neopixel/wrapper/util/JSONHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,23 @@
public class JSONHandler {

private final JSONObject stats;
private final String statsPrefix;
private String statsPrefix;
private String statsSuffix;


public JSONHandler(JSONObject stats) {
this.stats = stats;
this.statsPrefix = "";
}

public JSONHandler(JSONObject stats, String statsPrefix) {
this.stats = stats;
public void setStatsPrefix(String statsPrefix) {
this.statsPrefix = statsPrefix;
}

public void setStatsSuffix(String statsSuffix) {
this.statsSuffix = statsSuffix;
}


public JSONArray getSafeJSONArray(String key) {
if (stats.has(statsPrefix + key)) {
Object object = this.get(key);
Expand Down Expand Up @@ -114,7 +118,13 @@ public UUID getSafeUUID(String key) {
}

public Object get(String key) {
return stats.get(statsPrefix + key);
if(statsPrefix != null) {
return stats.get(statsPrefix + "_" + key);
} else if(statsSuffix != null) {
return stats.get(key + "_" + statsSuffix);
} else {
return stats.get(key);
}
}

public Iterator<String> getKeys() {
Expand All @@ -123,13 +133,20 @@ public Iterator<String> getKeys() {

public JSONHandler getJSONHandler(String key) {
if (stats.has(key)) {
return new JSONHandler(stats.getJSONObject(key));
JSONHandler handler = new JSONHandler(stats.getJSONObject(key));
handler.setStatsPrefix(statsPrefix);
handler.setStatsSuffix(statsSuffix);
return handler;
} else {
return null;
}
}

public JSONHandler getThisJSONHandlerWithStatsPrefix(String statsPrefix) {
return new JSONHandler(stats, statsPrefix);
public JSONHandler getCopy() {
JSONHandler handler = new JSONHandler(stats);
handler.setStatsPrefix(statsPrefix);
handler.setStatsSuffix(statsSuffix);
return handler;
}

}