diff options
| author | davidovski <david@davidovski.xyz> | 2025-10-31 17:49:48 +0000 |
|---|---|---|
| committer | davidovski <david@davidovski.xyz> | 2025-10-31 17:49:48 +0000 |
| commit | 5a008748459e230de0e875afff59e3b92c7aca0c (patch) | |
| tree | 0d09aebd1bb5628237959a6d1b49d1a7772d86a6 /src/main/java/net/uomc/mineshaft/PlayerStats.java | |
| parent | fff63aaea786a5f1c59bbf99c999a2aa7bb810e5 (diff) | |
Work on v0.6
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/PlayerStats.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/PlayerStats.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/main/java/net/uomc/mineshaft/PlayerStats.java b/src/main/java/net/uomc/mineshaft/PlayerStats.java new file mode 100644 index 0000000..40ef349 --- /dev/null +++ b/src/main/java/net/uomc/mineshaft/PlayerStats.java @@ -0,0 +1,80 @@ +package net.uomc.mineshaft; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; +import net.dv8tion.jda.api.entities.Member; + +public class PlayerStats { + + public static final int MAX_PICKAXE_LEVEL = 5; + + public static final String DIMENSION_TABLE = "dimension"; + public static final String FARM_LEVEL_TABLE = "farms"; + + private String playersDb; + + private Map<String, SavedStat> stats; + + public PlayerStats(Mineshaft mineshaft) { + File playersDbFile = new File(mineshaft.getDatadir(), "players.db"); + + // migrate old file if exists + if (!playersDbFile.exists()) { + File oldplayersDbFile = new File(mineshaft.getDatadir(), "pickaxes.db"); + if (oldplayersDbFile.exists()) { + oldplayersDbFile.renameTo(playersDbFile); + } + } + + stats = new HashMap<>(); + + playersDb = playersDbFile.getPath(); + initStats(); + } + + private void initStats() { + createStat(DIMENSION_TABLE); + createStat(FARM_LEVEL_TABLE); + } + + public SavedStat createStat(String name) { + SavedStat savedStat = new SavedStat(playersDb, name); + stats.put(name, savedStat); + return savedStat; + } + + + public SavedStat getStat(String name) { + if (stats.containsKey(name)) + return stats.get(name); + + SavedStat savedStat = new SavedStat(playersDb, name); + stats.put(name, savedStat); + return savedStat; + } + + public void setFarmLevel(Member member, long value) { + getStat(FARM_LEVEL_TABLE).set(member, value); + } + + public long getFarmLevel(String member, String guild) { + return getStat(FARM_LEVEL_TABLE).get(member, guild); + } + + public long getFarmLevel(Member member) { + return getFarmLevel(member.getId(), member.getGuild().getId()); + } + + public void setNether(Member member, boolean nether) { + getStat(DIMENSION_TABLE).set(member, nether ? 1 : 0); + } + + public boolean isNether(Member member) { + return getStat(DIMENSION_TABLE).get(member) == 1; + } + + public String getDbPath() { + return playersDb; + } +} |
