Function bodies 82 total
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_positcreate 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 MoModConfig 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(Blocregister 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 MloadFromDisk 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("fortuneBonudeleteSavedSession 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 ›