← back to dennisthegamer__MiningStats

Function bodies 82 total

All specs Real LLM only Function bodies
ConfigScreen class · java · L13-L127 (115 LOC)
src/main/java/com/miningstats/config/ConfigScreen.java
public class ConfigScreen {

    public static Screen create(Screen parent) {
        ModConfig config = ModConfig.getInstance();
        ModConfig defaults = new ModConfig();

        ConfigBuilder builder = ConfigBuilder.create()
                .setParentScreen(parent)
                .setTitle(Text.translatable("config.miningstats.title"))
                .setSavingRunnable(config::save);

        ConfigEntryBuilder entry = builder.entryBuilder();

        // === HUD Settings ===
        ConfigCategory hud = builder.getOrCreateCategory(
                Text.translatable("config.miningstats.category.hud"));

        hud.addEntry(entry.startSelector(
                        Text.translatable("config.miningstats.hud_position"),
                        new String[]{"TOP_LEFT", "TOP_RIGHT", "BOTTOM_LEFT", "BOTTOM_RIGHT"},
                        config.hudPosition)
                .setDefaultValue("BOTTOM_LEFT")
                .setTooltip(Text.translatable("config.miningstats.hud_posit
create method · java · L15-L126 (112 LOC)
src/main/java/com/miningstats/config/ConfigScreen.java
    public static Screen create(Screen parent) {
        ModConfig config = ModConfig.getInstance();
        ModConfig defaults = new ModConfig();

        ConfigBuilder builder = ConfigBuilder.create()
                .setParentScreen(parent)
                .setTitle(Text.translatable("config.miningstats.title"))
                .setSavingRunnable(config::save);

        ConfigEntryBuilder entry = builder.entryBuilder();

        // === HUD Settings ===
        ConfigCategory hud = builder.getOrCreateCategory(
                Text.translatable("config.miningstats.category.hud"));

        hud.addEntry(entry.startSelector(
                        Text.translatable("config.miningstats.hud_position"),
                        new String[]{"TOP_LEFT", "TOP_RIGHT", "BOTTOM_LEFT", "BOTTOM_RIGHT"},
                        config.hudPosition)
                .setDefaultValue("BOTTOM_LEFT")
                .setTooltip(Text.translatable("config.miningstats.hud_position.tooltip"))
              
ModConfig class · java · L17-L100 (84 LOC)
src/main/java/com/miningstats/config/ModConfig.java
public class ModConfig {

    private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
    private static final File CONFIG_FILE = new File(
            FabricLoader.getInstance().getConfigDir().toFile(),
            "miningstats.json"
    );

    private static ModConfig INSTANCE = null;

    // HUD Settings
    public String hudPosition = "BOTTOM_LEFT";
    public boolean hudVisibleAlways = false;
    public float hudOpacity = 0.6f;

    // Session Settings
    public boolean showSessionSummary = true;
    public boolean persistSessions = false;

    // Tracking Settings
    public boolean mergeDeepslate = true;
    public List<String> trackedOres = new ArrayList<>();

    // Milestone Settings
    public Map<String, Integer> milestones = new HashMap<>();

    public ModConfig() {
        // Default milestones
        milestones.put("diamond", 100);
        milestones.put("emerald", 50);
        milestones.put("ancient_debris", 25);
    }

    public static Mo
ModConfig method · java · L43-L48 (6 LOC)
src/main/java/com/miningstats/config/ModConfig.java
    public ModConfig() {
        // Default milestones
        milestones.put("diamond", 100);
        milestones.put("emerald", 50);
        milestones.put("ancient_debris", 25);
    }
getInstance method · java · L50-L55 (6 LOC)
src/main/java/com/miningstats/config/ModConfig.java
    public static ModConfig getInstance() {
        if (INSTANCE == null) {
            INSTANCE = load();
        }
        return INSTANCE;
    }
load method · java · L57-L71 (15 LOC)
src/main/java/com/miningstats/config/ModConfig.java
    public static ModConfig load() {
        if (CONFIG_FILE.exists()) {
            try (FileReader reader = new FileReader(CONFIG_FILE)) {
                ModConfig config = GSON.fromJson(reader, ModConfig.class);
                if (config != null) {
                    return config;
                }
            } catch (IOException e) {
                System.err.println("Failed to load MiningStats config: " + e.getMessage());
            }
        }
        ModConfig config = new ModConfig();
        config.save();
        return config;
    }
save method · java · L73-L82 (10 LOC)
src/main/java/com/miningstats/config/ModConfig.java
    public void save() {
        try {
            CONFIG_FILE.getParentFile().mkdirs();
            try (FileWriter writer = new FileWriter(CONFIG_FILE)) {
                GSON.toJson(this, writer);
            }
        } catch (IOException e) {
            System.err.println("Failed to save MiningStats config: " + e.getMessage());
        }
    }
Repobility · open methodology · https://repobility.com/research/
getMilestoneThreshold method · java · L84-L87 (4 LOC)
src/main/java/com/miningstats/config/ModConfig.java
    public int getMilestoneThreshold(OreType type) {
        String key = type.name().toLowerCase();
        return milestones.getOrDefault(key, 0);
    }
getHudPosition method · java · L89-L95 (7 LOC)
src/main/java/com/miningstats/config/ModConfig.java
    public HudPosition getHudPosition() {
        try {
            return HudPosition.valueOf(hudPosition);
        } catch (IllegalArgumentException e) {
            return HudPosition.BOTTOM_LEFT;
        }
    }
ModMenuIntegration class · java · L6-L12 (7 LOC)
src/main/java/com/miningstats/config/ModMenuIntegration.java
public class ModMenuIntegration implements ModMenuApi {

    @Override
    public ConfigScreenFactory<?> getModConfigScreenFactory() {
        return ConfigScreen::create;
    }
}
getModConfigScreenFactory method · java · L9-L11 (3 LOC)
src/main/java/com/miningstats/config/ModMenuIntegration.java
    public ConfigScreenFactory<?> getModConfigScreenFactory() {
        return ConfigScreen::create;
    }
OreRegistry class · java · L13-L66 (54 LOC)
src/main/java/com/miningstats/data/OreRegistry.java
public class OreRegistry {

    private static final Map<Block, OreType> BLOCK_TO_ORE = new HashMap<>();
    private static final Map<Identifier, OreType> CUSTOM_ORES = new HashMap<>();

    static {
        // Normal ores
        register(Blocks.COAL_ORE, OreType.COAL);
        register(Blocks.IRON_ORE, OreType.IRON);
        register(Blocks.GOLD_ORE, OreType.GOLD);
        register(Blocks.NETHER_GOLD_ORE, OreType.GOLD);
        register(Blocks.DIAMOND_ORE, OreType.DIAMOND);
        register(Blocks.EMERALD_ORE, OreType.EMERALD);
        register(Blocks.LAPIS_ORE, OreType.LAPIS);
        register(Blocks.REDSTONE_ORE, OreType.REDSTONE);
        register(Blocks.COPPER_ORE, OreType.COPPER);
        register(Blocks.NETHER_QUARTZ_ORE, OreType.QUARTZ);
        register(Blocks.ANCIENT_DEBRIS, OreType.ANCIENT_DEBRIS);

        // Deepslate variants (tracked separately, merged at display level via config)
        register(Blocks.DEEPSLATE_COAL_ORE, OreType.DEEPSLATE_COAL);
        register(Bloc
register method · java · L43-L45 (3 LOC)
src/main/java/com/miningstats/data/OreRegistry.java
    private static void register(Block block, OreType type) {
        BLOCK_TO_ORE.put(block, type);
    }
getOreType method · java · L47-L55 (9 LOC)
src/main/java/com/miningstats/data/OreRegistry.java
    public static Optional<OreType> getOreType(Block block) {
        OreType type = BLOCK_TO_ORE.get(block);
        if (type != null) {
            return Optional.of(type);
        }
        Identifier id = Registries.BLOCK.getId(block);
        type = CUSTOM_ORES.get(id);
        return Optional.ofNullable(type);
    }
loadCustomOres method · java · L57-L65 (9 LOC)
src/main/java/com/miningstats/data/OreRegistry.java
    public static void loadCustomOres(List<String> oreIds) {
        CUSTOM_ORES.clear();
        for (String oreId : oreIds) {
            Identifier id = Identifier.tryParse(oreId);
            if (id != null) {
                CUSTOM_ORES.put(id, OreType.COAL);
            }
        }
    }
Repobility — same analyzer, your code, free for public repos · /scan/
OreType method · java · L33-L38 (6 LOC)
src/main/java/com/miningstats/data/OreType.java
    OreType(String displayName, int baseDrop, Item dropItem, OreType baseType) {
        this.displayName = displayName;
        this.baseDrop = baseDrop;
        this.dropItem = dropItem;
        this.baseType = baseType;
    }
getDisplayName method · java · L51-L53 (3 LOC)
src/main/java/com/miningstats/data/OreType.java
    public String getDisplayName() {
        return displayName;
    }
getBaseDrop method · java · L55-L57 (3 LOC)
src/main/java/com/miningstats/data/OreType.java
    public int getBaseDrop() {
        return baseDrop;
    }
getDropItem method · java · L59-L61 (3 LOC)
src/main/java/com/miningstats/data/OreType.java
    public Item getDropItem() {
        return dropItem;
    }
hasFortuneEffect method · java · L63-L65 (3 LOC)
src/main/java/com/miningstats/data/OreType.java
    public boolean hasFortuneEffect() {
        return this != ANCIENT_DEBRIS;
    }
isDeepslate method · java · L67-L69 (3 LOC)
src/main/java/com/miningstats/data/OreType.java
    public boolean isDeepslate() {
        return baseType != null;
    }
getBaseType method · java · L71-L73 (3 LOC)
src/main/java/com/miningstats/data/OreType.java
    public OreType getBaseType() {
        return baseType != null ? baseType : this;
    }
SessionData class · java · L18-L237 (220 LOC)
src/main/java/com/miningstats/data/SessionData.java
public class SessionData {

    private static final SessionData INSTANCE = new SessionData();

    private final Map<OreType, Integer> oreCounts = new EnumMap<>(OreType.class);
    private final Map<OreType, Integer> fortuneBonus = new EnumMap<>(OreType.class);
    private long sessionStartTime;
    private boolean active = false;
    private long pausedDurationMillis = 0;
    private long pauseStartTime = 0;

    private SessionData() {
        reset();
    }

    public static SessionData getInstance() {
        return INSTANCE;
    }

    public void reset() {
        oreCounts.clear();
        fortuneBonus.clear();
        sessionStartTime = System.currentTimeMillis();
        active = false;
        pausedDurationMillis = 0;
        pauseStartTime = 0;
    }

    public void start() {
        if (!active) {
            if (sessionStartTime == 0 || getTotalOres() == 0) {
                sessionStartTime = System.currentTimeMillis();
                pausedDurationMillis = 0;
      
Citation: Repobility (2026). State of AI-Generated Code. https://repobility.com/research/
SessionData method · java · L29-L31 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    private SessionData() {
        reset();
    }
getInstance method · java · L33-L35 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public static SessionData getInstance() {
        return INSTANCE;
    }
reset method · java · L37-L44 (8 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void reset() {
        oreCounts.clear();
        fortuneBonus.clear();
        sessionStartTime = System.currentTimeMillis();
        active = false;
        pausedDurationMillis = 0;
        pauseStartTime = 0;
    }
start method · java · L46-L58 (13 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void start() {
        if (!active) {
            if (sessionStartTime == 0 || getTotalOres() == 0) {
                sessionStartTime = System.currentTimeMillis();
                pausedDurationMillis = 0;
            }
            if (pauseStartTime > 0) {
                pausedDurationMillis += System.currentTimeMillis() - pauseStartTime;
                pauseStartTime = 0;
            }
            active = true;
        }
    }
pause method · java · L60-L65 (6 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void pause() {
        if (active) {
            active = false;
            pauseStartTime = System.currentTimeMillis();
        }
    }
isActive method · java · L67-L69 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public boolean isActive() {
        return active;
    }
incrementOreCount method · java · L71-L73 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void incrementOreCount(OreType type) {
        oreCounts.merge(type, 1, Integer::sum);
    }
addFortuneBonus method · java · L75-L79 (5 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void addFortuneBonus(OreType type, int bonus) {
        if (bonus > 0) {
            fortuneBonus.merge(type, bonus, Integer::sum);
        }
    }
Powered by Repobility — scan your code at https://repobility.com
getOreCount method · java · L81-L83 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public int getOreCount(OreType type) {
        return oreCounts.getOrDefault(type, 0);
    }
getFortuneBonus method · java · L85-L87 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public int getFortuneBonus(OreType type) {
        return fortuneBonus.getOrDefault(type, 0);
    }
getOreCounts method · java · L89-L91 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public Map<OreType, Integer> getOreCounts() {
        return oreCounts;
    }
getTotalOres method · java · L93-L95 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public int getTotalOres() {
        return oreCounts.values().stream().mapToInt(Integer::intValue).sum();
    }
getTotalFortuneBonus method · java · L97-L99 (3 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public int getTotalFortuneBonus() {
        return fortuneBonus.values().stream().mapToInt(Integer::intValue).sum();
    }
getSessionDurationMillis method · java · L101-L108 (8 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public long getSessionDurationMillis() {
        long elapsed = System.currentTimeMillis() - sessionStartTime;
        long paused = pausedDurationMillis;
        if (!active && pauseStartTime > 0) {
            paused += System.currentTimeMillis() - pauseStartTime;
        }
        return elapsed - paused;
    }
getMergedOreCounts method · java · L110-L119 (10 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public Map<OreType, Integer> getMergedOreCounts() {
        Map<OreType, Integer> merged = new LinkedHashMap<>();
        for (OreType type : OreType.values()) {
            int count = getOreCount(type);
            if (count <= 0) continue;
            OreType base = type.getBaseType();
            merged.merge(base, count, Integer::sum);
        }
        return merged;
    }
getMergedFortuneBonuses method · java · L121-L130 (10 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public Map<OreType, Integer> getMergedFortuneBonuses() {
        Map<OreType, Integer> merged = new LinkedHashMap<>();
        for (OreType type : OreType.values()) {
            int bonus = getFortuneBonus(type);
            if (bonus <= 0) continue;
            OreType base = type.getBaseType();
            merged.merge(base, bonus, Integer::sum);
        }
        return merged;
    }
Repobility · open methodology · https://repobility.com/research/
getMergedOreCount method · java · L132-L140 (9 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public int getMergedOreCount(OreType baseType) {
        int count = getOreCount(baseType);
        for (OreType type : OreType.values()) {
            if (type.isDeepslate() && type.getBaseType() == baseType) {
                count += getOreCount(type);
            }
        }
        return count;
    }
getFormattedDuration method · java · L142-L148 (7 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public String getFormattedDuration() {
        long totalSeconds = getSessionDurationMillis() / 1000;
        long hours = totalSeconds / 3600;
        long minutes = (totalSeconds % 3600) / 60;
        long seconds = totalSeconds % 60;
        return String.format("%02d:%02d:%02d", hours, minutes, seconds);
    }
saveToDisk method · java · L158-L183 (26 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void saveToDisk() {
        try {
            Map<String, Object> data = new HashMap<>();

            Map<String, Integer> oreData = new HashMap<>();
            for (Map.Entry<OreType, Integer> e : oreCounts.entrySet()) {
                if (e.getValue() > 0) oreData.put(e.getKey().name(), e.getValue());
            }
            data.put("oreCounts", oreData);

            Map<String, Integer> fortuneData = new HashMap<>();
            for (Map.Entry<OreType, Integer> e : fortuneBonus.entrySet()) {
                if (e.getValue() > 0) fortuneData.put(e.getKey().name(), e.getValue());
            }
            data.put("fortuneBonus", fortuneData);

            data.put("durationMillis", getSessionDurationMillis());

            SESSION_FILE.getParentFile().mkdirs();
            try (FileWriter writer = new FileWriter(SESSION_FILE)) {
                GSON.toJson(data, writer);
            }
        } catch (IOException e) {
            System.err.println("Failed to save M
loadFromDisk method · java · L185-L230 (46 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public boolean loadFromDisk() {
        if (!SESSION_FILE.exists()) return false;
        try (FileReader reader = new FileReader(SESSION_FILE)) {
            Type mapType = new TypeToken<Map<String, Object>>() {}.getType();
            Map<String, Object> data = GSON.fromJson(reader, mapType);
            if (data == null) return false;

            reset();

            @SuppressWarnings("unchecked")
            Map<String, Double> oreData = (Map<String, Double>) data.get("oreCounts");
            if (oreData != null) {
                for (Map.Entry<String, Double> e : oreData.entrySet()) {
                    try {
                        OreType type = OreType.valueOf(e.getKey());
                        oreCounts.put(type, e.getValue().intValue());
                    } catch (IllegalArgumentException ignored) {}
                }
            }

            @SuppressWarnings("unchecked")
            Map<String, Double> fortuneData = (Map<String, Double>) data.get("fortuneBonu
deleteSavedSession method · java · L232-L236 (5 LOC)
src/main/java/com/miningstats/data/SessionData.java
    public void deleteSavedSession() {
        if (SESSION_FILE.exists()) {
            SESSION_FILE.delete();
        }
    }
HudEffects class · java · L3-L35 (33 LOC)
src/main/java/com/miningstats/hud/HudEffects.java
public class HudEffects {

    private static int flashTicksRemaining = 0;
    private static int resetMessageTicksRemaining = 0;

    private static final int FLASH_DURATION = 10;  // 0.5 seconds
    private static final int RESET_MESSAGE_DURATION = 40;  // 2 seconds

    public static void triggerFlash() {
        flashTicksRemaining = FLASH_DURATION;
    }

    public static void triggerResetMessage() {
        resetMessageTicksRemaining = RESET_MESSAGE_DURATION;
    }

    public static void tick() {
        if (flashTicksRemaining > 0) flashTicksRemaining--;
        if (resetMessageTicksRemaining > 0) resetMessageTicksRemaining--;
    }

    public static boolean isFlashing() {
        return flashTicksRemaining > 0;
    }

    public static float getFlashAlpha() {
        return (float) flashTicksRemaining / FLASH_DURATION;
    }

    public static boolean isShowingResetMessage() {
        return resetMessageTicksRemaining > 0;
    }
}
triggerFlash method · java · L11-L13 (3 LOC)
src/main/java/com/miningstats/hud/HudEffects.java
    public static void triggerFlash() {
        flashTicksRemaining = FLASH_DURATION;
    }
triggerResetMessage method · java · L15-L17 (3 LOC)
src/main/java/com/miningstats/hud/HudEffects.java
    public static void triggerResetMessage() {
        resetMessageTicksRemaining = RESET_MESSAGE_DURATION;
    }
Repobility — same analyzer, your code, free for public repos · /scan/
tick method · java · L19-L22 (4 LOC)
src/main/java/com/miningstats/hud/HudEffects.java
    public static void tick() {
        if (flashTicksRemaining > 0) flashTicksRemaining--;
        if (resetMessageTicksRemaining > 0) resetMessageTicksRemaining--;
    }
isFlashing method · java · L24-L26 (3 LOC)
src/main/java/com/miningstats/hud/HudEffects.java
    public static boolean isFlashing() {
        return flashTicksRemaining > 0;
    }
getFlashAlpha method · java · L28-L30 (3 LOC)
src/main/java/com/miningstats/hud/HudEffects.java
    public static float getFlashAlpha() {
        return (float) flashTicksRemaining / FLASH_DURATION;
    }
page 1 / 2next ›