diff options
| author | Cow <cow@volloeko.de> | 2021-02-01 15:05:49 +0100 |
|---|---|---|
| committer | Cow <cow@volloeko.de> | 2021-02-01 15:05:49 +0100 |
| commit | 50113a57f593d0aec94d8627826d95024085345c (patch) | |
| tree | ecf4f711fe48fa7f6c71d5f3e6e6302e0301d38b /src/main/java/de/cowtipper/cowlection/data | |
| parent | 4dd979c42bd48d71edd3dd4a81b934c1784fc60f (diff) | |
| download | Cowlection-50113a57f593d0aec94d8627826d95024085345c.tar.gz Cowlection-50113a57f593d0aec94d8627826d95024085345c.tar.bz2 Cowlection-50113a57f593d0aec94d8627826d95024085345c.zip | |
Changelection
- `/moo stalkskyblock` additions: last profile save; Enchanting/Farming/Mining 51-60; Runecrafting 25
- Refined the comma representation of abbreviated numbers
- Fixed issue with 'no dung class selected'
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/data')
3 files changed, 42 insertions, 6 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java b/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java index 5a7c168..feca6ba 100644 --- a/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java +++ b/src/main/java/de/cowtipper/cowlection/data/HyPlayerData.java @@ -16,6 +16,7 @@ public class HyPlayerData { private long lastLogin; private long lastLogout; private String mostRecentGameType; + @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") private Map<String, Integer> achievements; /** diff --git a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java index b65e48c..fb9fcff 100644 --- a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java +++ b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java @@ -126,6 +126,7 @@ public class HySkyBlockStats { private double experience_skill_taming = -1; private Map<String, SlayerBossDetails> slayer_bosses; private List<Pet> pets; + private JacobData jacob2; private Dungeons dungeons; /** @@ -138,6 +139,10 @@ public class HySkyBlockStats { return Utils.getDurationAsWords(first_join); } + public Pair<String, String> getFancyLastSave() { + return Utils.getDurationAsWords(last_save); + } + public double getCoinPurse() { return coin_purse; } @@ -149,10 +154,10 @@ public class HySkyBlockStats { public Map<XpTables.Skill, Integer> getSkills() { Map<XpTables.Skill, Integer> skills = new TreeMap<>(); if (experience_skill_farming >= 0) { - skills.put(XpTables.Skill.FARMING, XpTables.Skill.FARMING.getLevel(experience_skill_farming)); + skills.put(XpTables.Skill.FARMING, XpTables.Skill.FARMING.getLevel(experience_skill_farming, getMaxFarmingLevel())); } if (experience_skill_mining >= 0) { - skills.put(XpTables.Skill.MINING, XpTables.Skill.MINING.getLevel(experience_skill_mining)); + skills.put(XpTables.Skill.MINING, XpTables.Skill.MINING.getLevel(experience_skill_mining, 60)); } if (experience_skill_combat >= 0) { skills.put(XpTables.Skill.COMBAT, XpTables.Skill.COMBAT.getLevel(experience_skill_combat)); @@ -164,7 +169,7 @@ public class HySkyBlockStats { skills.put(XpTables.Skill.FISHING, XpTables.Skill.FISHING.getLevel(experience_skill_fishing)); } if (experience_skill_enchanting >= 0) { - skills.put(XpTables.Skill.ENCHANTING, XpTables.Skill.ENCHANTING.getLevel(experience_skill_enchanting)); + skills.put(XpTables.Skill.ENCHANTING, XpTables.Skill.ENCHANTING.getLevel(experience_skill_enchanting, 60)); } if (experience_skill_alchemy >= 0) { skills.put(XpTables.Skill.ALCHEMY, XpTables.Skill.ALCHEMY.getLevel(experience_skill_alchemy)); @@ -209,6 +214,14 @@ public class HySkyBlockStats { return null; } + public int getMaxFarmingLevel() { + int farmingLevelCap = 50; + if (jacob2 != null && jacob2.perks != null) { + farmingLevelCap += jacob2.perks.getOrDefault("farming_level_cap", 0); + } + return farmingLevelCap; + } + public List<String> getArmor() { NBTTagCompound nbt = inv_armor.getDecodedData(); List<String> armorList = new ArrayList<>(); @@ -270,6 +283,10 @@ public class HySkyBlockStats { } } + private static class JacobData { + private Map<String, Integer> perks; + } + public static class Dungeons { private Map<String, Type> dungeon_types; private Map<DataHelper.DungeonClass, ClassDetails> player_classes; diff --git a/src/main/java/de/cowtipper/cowlection/data/XpTables.java b/src/main/java/de/cowtipper/cowlection/data/XpTables.java index 158fb66..efa576a 100644 --- a/src/main/java/de/cowtipper/cowlection/data/XpTables.java +++ b/src/main/java/de/cowtipper/cowlection/data/XpTables.java @@ -62,6 +62,16 @@ public class XpTables { XP_TO_LEVEL.put(47472425, 48); XP_TO_LEVEL.put(51172425, 49); XP_TO_LEVEL.put(55172425, 50); + XP_TO_LEVEL.put(59472425, 51); + XP_TO_LEVEL.put(64072425, 52); + XP_TO_LEVEL.put(68972425, 53); + XP_TO_LEVEL.put(74172425, 54); + XP_TO_LEVEL.put(79672425, 55); + XP_TO_LEVEL.put(85472425, 56); + XP_TO_LEVEL.put(91572425, 57); + XP_TO_LEVEL.put(97972425, 58); + XP_TO_LEVEL.put(104672425, 59); + XP_TO_LEVEL.put(111672425, 60); XP_TO_LEVEL_ALTERNATIVE.put(0, 0); XP_TO_LEVEL_ALTERNATIVE.put(50, 1); @@ -88,7 +98,7 @@ public class XpTables { XP_TO_LEVEL_ALTERNATIVE.put(47850, 22); XP_TO_LEVEL_ALTERNATIVE.put(60100, 23); XP_TO_LEVEL_ALTERNATIVE.put(75400, 24); - + XP_TO_LEVEL_ALTERNATIVE.put(94450, 25); } Skill() { @@ -101,9 +111,17 @@ public class XpTables { public int getLevel(double exp) { if (alternativeXpFormula) { - return XP_TO_LEVEL_ALTERNATIVE.floorEntry((int) exp).getValue(); + return getLevel(exp, 25); } else { - return XP_TO_LEVEL.floorEntry((int) exp).getValue(); + return getLevel(exp, 50); + } + } + + public int getLevel(double exp, int maxLevel) { + if (alternativeXpFormula) { + return Math.min(XP_TO_LEVEL_ALTERNATIVE.floorEntry((int) exp).getValue(), maxLevel); + } else { + return Math.min(XP_TO_LEVEL.floorEntry((int) exp).getValue(), maxLevel); } } |
