diff --git a/gen-stats.rb b/gen-stats.rb index 32360e1..74869fc 100755 --- a/gen-stats.rb +++ b/gen-stats.rb @@ -61,8 +61,10 @@ class GenStats "Play Time" => {}, "Achievements" => {}, "Unexplored Biomes" => {}, - "Mob Kills" => {}, "Deaths" => {}, + "Damage Dealt" => {}, + "Damage Taken" => {}, + "Mob Kills" => {}, "Killed" => {}, "Killed By" => {}, "Items Broken" => {}, @@ -84,12 +86,14 @@ class GenStats else $1 end - stats = JSON.load(File.read(stats_fname)) + stats_file = JSON.load(File.read(stats_fname)) + stats = stats_file["stats"] || {} + stats["minecraft:custom"] ||= {} @all_stats["Play Time"][user_name] = begin # stat is actually in ticks apparently - minutes = stats["stat.playOneMinute"] / 20 / 60 + minutes = (stats["minecraft:custom"]["minecraft:play_one_minute"] || 0) / 20 / 60 hours = (minutes / 60).floor minutes -= (hours * 60) days = (hours / 24).floor @@ -97,42 +101,46 @@ class GenStats "#{days}d #{hours}h #{minutes}m" end - @all_stats["Achievements"][user_name] = - stats.find_all do |stat_name, stat_value| - stat_name.start_with?("achievement.") and (stat_value.is_a?(Integer) or (stat_value.is_a?(Hash) and stat_value["value"] and stat_value["value"] > 0)) - end.size +# @all_stats["Achievements"][user_name] = +# stats.find_all do |stat_name, stat_value| +# stat_name.start_with?("achievement.") and (stat_value.is_a?(Integer) or (stat_value.is_a?(Hash) and stat_value["value"] and stat_value["value"] > 0)) +# end.size - @all_stats["Unexplored Biomes"][user_name] = - if stats["achievement.exploreAllBiomes"] - explored_biomes = stats["achievement.exploreAllBiomes"]["progress"] - unexplored_biomes = ADVENTURE_BIOMES - explored_biomes - @all_explored_biomes += explored_biomes - unexplored_biomes.sort.join(", ") - end +# @all_stats["Unexplored Biomes"][user_name] = +# if stats["achievement.exploreAllBiomes"] +# explored_biomes = stats["achievement.exploreAllBiomes"]["progress"] +# unexplored_biomes = ADVENTURE_BIOMES - explored_biomes +# @all_explored_biomes += explored_biomes +# unexplored_biomes.sort.join(", ") +# end - @all_stats["Mob Kills"][user_name] = stats["stat.mobKills"] + @all_stats["Deaths"][user_name] = stats["minecraft:custom"]["minecraft:deaths"] || 0 - @all_stats["Deaths"][user_name] = stats["stat.deaths"] + @all_stats["Damage Dealt"][user_name] = stats["minecraft:custom"]["minecraft:damage_dealt"] || 0 + + @all_stats["Damage Taken"][user_name] = stats["minecraft:custom"]["minecraft:damage_taken"] || 0 + + @all_stats["Mob Kills"][user_name] = stats["minecraft:custom"]["minecraft:mob_kills"] || 0 @all_stats["Killed"][user_name] = - stats.reduce({}) do |result, (stat_name, stat_value)| - if stat_name =~ /^stat\.killEntity\.(\w+)$/ + (stats["minecraft:killed"] || {}).reduce({}) do |result, (stat_name, stat_value)| + if stat_name =~ /^minecraft:(\w+)$/ result[$1] = stat_value end result end @all_stats["Killed By"][user_name] = - stats.reduce({}) do |result, (stat_name, stat_value)| - if stat_name =~ /^stat\.entityKilledBy\.(\w+)$/ + (stats["minecraft:killed_by"] || {}).reduce({}) do |result, (stat_name, stat_value)| + if stat_name =~ /^minecraft:(\w+)$/ result[$1] = stat_value end result end @all_stats["Items Broken"][user_name] = - stats.reduce({}) do |result, (stat_name, stat_value)| - if stat_name =~ /^stat\.breakItem\.minecraft\.(\w+)$/ + (stats["minecraft:broken"] || {}).reduce({}) do |result, (stat_name, stat_value)| + if stat_name =~ /^minecraft:(\w+)$/ result[$1] = stat_value end result