update for 1.13 stats format

This commit is contained in:
Josh Holtrop 2018-09-05 15:33:22 -04:00
parent 494386fa8c
commit 31343d42d0

View File

@ -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