update for 1.13 stats format
This commit is contained in:
parent
494386fa8c
commit
31343d42d0
52
gen-stats.rb
52
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user