def create_ore_stat(oreIds, minVersion=0): readers = [] for ore in oreIds: readers.append( mcstats.StatReader(['minecraft:mined', 'minecraft:' + ore])) mcstats.registry.append( mcstats.MinecraftStat('mine_' + oreIds[0], { 'unit': 'int', }, mcstats.StatSumReader(readers), minVersion))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'collect_shroom', { 'title': 'Fun Guy', 'desc': 'Mushrooms collected', 'unit': 'int', }, # subtract placed from mined mcstats.StatSumReader([ mcstats.StatReader( ['minecraft:picked_up', 'minecraft:red_mushroom']), mcstats.StatReader( ['minecraft:picked_up', 'minecraft:brown_mushroom']), mcstats.StatReader( ['minecraft:picked_up', 'minecraft:crimson_fungus']), mcstats.StatReader( ['minecraft:picked_up', 'minecraft:warped_fungus']), ]), ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'craft_glowstone', { 'title': 'Eclairage naturel', 'desc': 'Glowstone craftés', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:crafted', 'minecraft:glowstone']), mcstats.StatReader(['minecraft:mined', 'minecraft:glowstone']), ])))
mcstats.registry.append( mcstats.MinecraftStat( 'craft_mineral_block', { 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:crafted', 'minecraft:coal_block']), mcstats.StatReader(['minecraft:crafted', 'minecraft:copper_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:diamond_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:emerald_block']), mcstats.StatReader(['minecraft:crafted', 'minecraft:gold_block']), mcstats.StatReader(['minecraft:crafted', 'minecraft:iron_block']), mcstats.StatReader(['minecraft:crafted', 'minecraft:lapis_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:netherite_block']), mcstats.StatReader(['minecraft:crafted', 'minecraft:quartz_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:raw_copper_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:raw_gold_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:raw_iron_block']), mcstats.StatReader( ['minecraft:crafted', 'minecraft:redstone_block']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'eat_soup', { 'title': 'Soupy Caspar', 'desc': 'Soups and stews eaten', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:mushroom_stew']), mcstats.StatReader(['minecraft:used', 'minecraft:beetroot_soup']), mcstats.StatReader(['minecraft:used', 'minecraft:rabbit_stew']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'place_torch', { 'title': 'Enlightened', 'desc': 'Torches placed', 'unit': 'int', }, # subtract mined from placed mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:torch']), mcstats.StatReader(['minecraft:used', 'minecraft:soul_torch']), ])))
create_kill_stat('turtle', 'Super Mario', 'Turtles', 1467) # added in 18w07a create_kill_stat('villager', 'Bully', 'Villagers') create_kill_stat('wandering_trader', 'Trade Sanctions', 'Wandering Traders', 1930) # added in 19w05a create_kill_stat('wolf', 'Bad Dog!', 'Wolves and Dogs') # Cats (including ozelots) mcstats.registry.append( mcstats.MinecraftStat( 'kill_ocelot', { 'title': 'Kitty Killer', 'desc': 'Ocelots and Cats killed', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:killed', 'minecraft:cat']), mcstats.StatReader(['minecraft:killed', 'minecraft:ocelot']), ]))) # Llamas (including trader llamas) mcstats.registry.append( mcstats.MinecraftStat( 'kill_llama', { 'title': 'Caravan Bandit', 'desc': 'LLamas killed', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:killed', 'minecraft:llama']), mcstats.StatReader(['minecraft:killed', 'minecraft:trader_llama']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'craft_turtle_helmet', { 'title': 'Turtlehead', 'desc': 'Turtle Helmets crafted', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader( ['minecraft:crafted', 'minecraft:turtle_helmet']), ]), 1467 # turtle helmets introduced in 18w07a ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'eat_rawmeat', { 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:porkchop']), mcstats.StatReader(['minecraft:used', 'minecraft:beef']), mcstats.StatReader(['minecraft:used', 'minecraft:chicken']), mcstats.StatReader(['minecraft:used', 'minecraft:mutton']), mcstats.StatReader(['minecraft:used', 'minecraft:rabbit']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_kelp', { 'title': '海帶農', 'desc': '挖過的海帶數量', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:kelp']), mcstats.StatReader(['minecraft:mined', 'minecraft:kelp_plant']), ]), 1467 # kelp added in 18w07a ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'craft_bread', { 'title': '烘培師', 'desc': '製造的麵包、蛋糕、餅乾數量', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:crafted', 'minecraft:bread']), mcstats.StatReader(['minecraft:crafted', 'minecraft:cake']), mcstats.StatReader(['minecraft:crafted', 'minecraft:cookie']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'use_dirt', { 'title': 'Dirtbag', 'desc': 'Dirt blocks placed', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:dirt']), mcstats.StatReader(['minecraft:used', 'minecraft:rooted_dirt']) ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_nether_foliage', { 'title': 'Nether Mower', 'desc': 'Nether sprouts & roots removed', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:crimson_roots']), mcstats.StatReader(['minecraft:mined', 'minecraft:warped_roots']), mcstats.StatReader(['minecraft:mined', 'minecraft:nether_sprouts']), ]), 2504 # added in 20w06a ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_wood', { 'title': 'Bûcheron', 'desc': 'Bûches coupées', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatSumMatchReader(['minecraft:mined'], ['minecraft:.+_log']), mcstats.StatSumMatchReader(['minecraft:mined'], ['minecraft:.+_wood']) ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_stone', { 'title': 'Stonemason', 'desc': 'Stone mined', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:stone']), mcstats.StatReader(['minecraft:mined', 'minecraft:andesite']), mcstats.StatReader(['minecraft:mined', 'minecraft:blackstone']), mcstats.StatReader(['minecraft:mined', 'minecraft:basalt']), mcstats.StatReader(['minecraft:mined', 'minecraft:calcite']), mcstats.StatReader(['minecraft:mined', 'minecraft:deepslate']), mcstats.StatReader(['minecraft:mined', 'minecraft:diorite']), mcstats.StatReader(['minecraft:mined', 'minecraft:dripstone']), mcstats.StatReader(['minecraft:mined', 'minecraft:granite']), mcstats.StatReader(['minecraft:mined', 'minecraft:smooth_basalt']), mcstats.StatReader(['minecraft:mined', 'minecraft:tuff']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'open_container', { 'title': 'Warehouse', 'desc': 'Containers opened', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:custom','minecraft:open_chest']), mcstats.StatReader(['minecraft:custom','minecraft:open_shulker_box']), mcstats.StatReader(['minecraft:custom','minecraft:open_enderchest']), mcstats.StatReader(['minecraft:custom','minecraft:trigger_trapped_chest']), ]) ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'eat_veggie', { 'title': 'Végétarien', 'desc': 'Légumes mangés', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used','minecraft:golden_carrot']), mcstats.StatReader(['minecraft:used','minecraft:golden_apple']), mcstats.StatReader(['minecraft:used','minecraft:carrot']), mcstats.StatReader(['minecraft:used','minecraft:potato']), mcstats.StatReader(['minecraft:used','minecraft:baked_potato']), mcstats.StatReader(['minecraft:used','minecraft:beetroot']), mcstats.StatReader(['minecraft:used','minecraft:apple']), mcstats.StatReader(['minecraft:used','minecraft:pumpkin_pie']), mcstats.StatReader(['minecraft:used','minecraft:chorus_fruit']), mcstats.StatReader(['minecraft:used','minecraft:melon']), mcstats.StatReader(['minecraft:used','minecraft:cookie']), mcstats.StatReader(['minecraft:used','minecraft:cake']), mcstats.StatReader(['minecraft:used','minecraft:bread']), mcstats.StatReader(['minecraft:used','minecraft:mushroom_stew']), mcstats.StatReader(['minecraft:used','minecraft:beetroot_soup']), mcstats.StatReader(['minecraft:used','minecraft:sweet_berries']), ]) ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_ice', { 'title': 'Brise-glace', 'desc': 'Blocs de glaces minés', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined','minecraft:ice']), mcstats.StatReader(['minecraft:mined','minecraft:packed_ice']), mcstats.StatReader(['minecraft:mined','minecraft:blue_ice']), mcstats.StatReader(['minecraft:mined','minecraft:frosted_ice']), ]) ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_ground', { 'title': 'Excavator', 'desc': 'Dirt, sand and gravel mined', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:dirt']), mcstats.StatReader(['minecraft:mined', 'minecraft:gravel']), mcstats.StatReader(['minecraft:mined', 'minecraft:sand']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_ground', { 'title': 'Excavateur', 'desc': 'Terre, sable, etc ... minés', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:dirt']), mcstats.StatReader(['minecraft:mined', 'minecraft:coarse_dirt']), mcstats.StatReader(['minecraft:mined', 'minecraft:farmland']), mcstats.StatReader(['minecraft:mined', 'minecraft:grass']), mcstats.StatReader(['minecraft:mined', 'minecraft:grass_path']), mcstats.StatReader(['minecraft:mined', 'minecraft:gravel']), mcstats.StatReader(['minecraft:mined', 'minecraft:mycelium']), mcstats.StatReader(['minecraft:mined', 'minecraft:podzol']), mcstats.StatReader(['minecraft:mined', 'minecraft:red_sand']), mcstats.StatReader(['minecraft:mined', 'minecraft:sand']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_stone', { 'title': 'Stonemason', 'desc': 'Stone mined', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:stone']), mcstats.StatReader(['minecraft:mined', 'minecraft:diorite']), mcstats.StatReader(['minecraft:mined', 'minecraft:andesite']), mcstats.StatReader(['minecraft:mined', 'minecraft:granite']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'eat_meat', { 'title': '肉食動物', 'desc': '吃過的肉的數量', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used','minecraft:cooked_porkchop']), mcstats.StatReader(['minecraft:used','minecraft:cooked_beef']), mcstats.StatReader(['minecraft:used','minecraft:cooked_chicken']), mcstats.StatReader(['minecraft:used','minecraft:cooked_mutton']), mcstats.StatReader(['minecraft:used','minecraft:cooked_rabbit']), mcstats.StatReader(['minecraft:used','minecraft:porkchop']), mcstats.StatReader(['minecraft:used','minecraft:beef']), mcstats.StatReader(['minecraft:used','minecraft:chicken']), mcstats.StatReader(['minecraft:used','minecraft:mutton']), mcstats.StatReader(['minecraft:used','minecraft:rabbit']), mcstats.StatReader(['minecraft:used','minecraft:rabbit_stew']), ]) ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_snow', { 'title': 'Snow Pusher', 'desc': 'Snow removed', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:snow']), mcstats.StatReader(['minecraft:mined', 'minecraft:snow_block']), mcstats.StatReader(['minecraft:mined', 'minecraft:powder_snow']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'use_potion', { 'title': 'Alchemist', 'desc': 'Potions used', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader( ['minecraft:used', 'minecraft:lingering_potion']), mcstats.StatReader(['minecraft:used', 'minecraft:potion']), mcstats.StatReader(['minecraft:used', 'minecraft:splash_potion']) ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'craft_respawn_anchor', { 'title': 'Respawn', 'desc': 'Respawn Anchors crafted', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader( ['minecraft:crafted', 'minecraft:respawn_anchor']), ]), 2515 # introduced in 20w12a ))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'eat_fish', { 'title': 'Fish Gourmet', 'desc': 'Fish eaten', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:cooked_salmon']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_cod']), mcstats.StatReader(['minecraft:used', 'minecraft:salmon']), mcstats.StatReader(['minecraft:used', 'minecraft:cod']), mcstats.StatReader(['minecraft:used', 'minecraft:clownfish']), mcstats.StatReader(['minecraft:used', 'minecraft:tropical_fish']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'eat_junkfood', { 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:rotten_flesh']), mcstats.StatReader(['minecraft:used', 'minecraft:spider_eye']), mcstats.StatReader( ['minecraft:used', 'minecraft:poisonous_potato']), ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'noteblock', { 'title': '音樂家', 'desc': '音階箱調音次數', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader( ['minecraft:custom', 'minecraft:tune_noteblock']), mcstats.StatReader( ['minecraft:custom', 'minecraft:play_noteblock']) ])))
from mcstats import mcstats mcstats.registry.append( mcstats.MinecraftStat( 'mine_grass', { 'title': 'Tondeuse à gazon', 'desc': 'Hautes-herbes tondues', 'unit': 'int', }, mcstats.StatSumReader([ mcstats.StatReader(['minecraft:mined', 'minecraft:grass']), mcstats.StatReader(['minecraft:mined', 'minecraft:tall_grass']), ])))
mcstats.StatSumReader([ mcstats.StatReader(['minecraft:used', 'minecraft:rotten_flesh']), mcstats.StatReader(['minecraft:used', 'minecraft:spider_eye']), mcstats.StatReader( ['minecraft:used', 'minecraft:poisonous_potato']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_porkchop']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_beef']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_chicken']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_mutton']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_rabbit']), mcstats.StatReader(['minecraft:used', 'minecraft:porkchop']), mcstats.StatReader(['minecraft:used', 'minecraft:beef']), mcstats.StatReader(['minecraft:used', 'minecraft:chicken']), mcstats.StatReader(['minecraft:used', 'minecraft:mutton']), mcstats.StatReader(['minecraft:used', 'minecraft:rabbit']), mcstats.StatReader(['minecraft:used', 'minecraft:rabbit_stew']), mcstats.StatReader(['minecraft:used', 'minecraft:mushroom_stew']), mcstats.StatReader(['minecraft:used', 'minecraft:beetroot_soup']), mcstats.StatReader(['minecraft:used', 'minecraft:suspicious_stew']), mcstats.StatReader(['minecraft:used', 'minecraft:golden_carrot']), mcstats.StatReader(['minecraft:used', 'minecraft:golden_apple']), mcstats.StatReader(['minecraft:used', 'minecraft:carrot']), mcstats.StatReader(['minecraft:used', 'minecraft:potato']), mcstats.StatReader(['minecraft:used', 'minecraft:baked_potato']), mcstats.StatReader(['minecraft:used', 'minecraft:beetroot']), mcstats.StatReader(['minecraft:used', 'minecraft:apple']), mcstats.StatReader(['minecraft:used', 'minecraft:pumpkin_pie']), mcstats.StatReader(['minecraft:used', 'minecraft:chorus_fruit']), mcstats.StatReader(['minecraft:used', 'minecraft:melon_slice']), mcstats.StatReader(['minecraft:used', 'minecraft:cookie']), mcstats.StatReader(['minecraft:used', 'minecraft:cake']), mcstats.StatReader(['minecraft:used', 'minecraft:bread']), mcstats.StatReader(['minecraft:used', 'minecraft:sweet_berries']), mcstats.StatReader(['minecraft:used', 'minecraft:dried_kelp']), mcstats.StatReader(['minecraft:used', 'minecraft:cookie']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_salmon']), mcstats.StatReader(['minecraft:used', 'minecraft:cooked_cod']), mcstats.StatReader(['minecraft:used', 'minecraft:salmon']), mcstats.StatReader(['minecraft:used', 'minecraft:cod']), mcstats.StatReader(['minecraft:used', 'minecraft:clownfish']), mcstats.StatReader(['minecraft:used', 'minecraft:tropical_fish']), mcstats.StatReader(['minecraft:used', 'minecraft:honey_bottle']), ])))