diff options
| author | davidovski <david@davidovski.xyz> | 2025-10-15 04:01:15 +0100 |
|---|---|---|
| committer | davidovski <david@davidovski.xyz> | 2025-10-15 04:01:15 +0100 |
| commit | dc825ad776f9fe9f763267874f6fa70c4870fc46 (patch) | |
| tree | d8d2bcf26b180f2c1abbab4e0dc1929dd88e05ab /src/main/java/net/uomc/mineshaft/Pickaxes.java | |
| parent | 10b327e9f6441a8863227ce3e075a5a587654065 (diff) | |
v5
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/Pickaxes.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/Pickaxes.java | 122 |
1 files changed, 115 insertions, 7 deletions
diff --git a/src/main/java/net/uomc/mineshaft/Pickaxes.java b/src/main/java/net/uomc/mineshaft/Pickaxes.java index 42a1f92..16d6958 100644 --- a/src/main/java/net/uomc/mineshaft/Pickaxes.java +++ b/src/main/java/net/uomc/mineshaft/Pickaxes.java @@ -3,20 +3,27 @@ package net.uomc.mineshaft; import java.io.File; import java.sql.SQLException; import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; import org.json.JSONObject; import com.mouldycheerio.dbot.util.DatabaseUtils; import com.mouldycheerio.dbot.util.PeelingUtils; +import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; -class Pickaxes { +public class Pickaxes { private static final int MAX_PICKAXE_LEVEL = 5; private static final String LEVEL_TABLE = "levels"; private static final String FORTUNE_TABLE = "ench_fortune"; + private static final String EFFICIENCY_TABLE = "ench_efficiency"; + private static final String DIMENSION_TABLE = "dimension"; + + private static final String FARM_LEVEL_TABLE = "farm"; private String pickaxesDb; @@ -27,11 +34,45 @@ class Pickaxes { private void initDB() { try { - DatabaseUtils.createSimpleKVtable(pickaxesDb, LEVEL_TABLE); DatabaseUtils.createSimpleKVtable(pickaxesDb, FORTUNE_TABLE); } catch (SQLException e) { - // e.printStackTrace(); } + try { + DatabaseUtils.createSimpleKVtable(pickaxesDb, DIMENSION_TABLE); + } catch (SQLException e) { + } + try { + DatabaseUtils.createSimpleKVtable(pickaxesDb, EFFICIENCY_TABLE); + } catch (SQLException e) { + } + try { + DatabaseUtils.createSimpleKVtable(pickaxesDb, LEVEL_TABLE); + } catch (SQLException e) { + } + try { + DatabaseUtils.createSimpleKVtable(pickaxesDb, FARM_LEVEL_TABLE); + } catch (SQLException e) { + } + } + + public void setFarmLevel(Member member, long value) { + try { + DatabaseUtils.putInKVtable(pickaxesDb, FARM_LEVEL_TABLE, member.getId() + ":" + member.getGuild().getId(), value); + } catch (SQLException e) { + e.printStackTrace(); + } + } + public long getFarmLevel(String member, String guild) { + try { + return DatabaseUtils.getInKVtable(pickaxesDb, FARM_LEVEL_TABLE, member + ":" + guild); + } catch (SQLException e) { + e.printStackTrace(); + } + return 0l; + } + + public long getFarmLevel(Member member) { + return getFarmLevel(member.getId(), member.getGuild().getId()); } public void setLevel(Member member, long value) { @@ -42,15 +83,52 @@ class Pickaxes { } } + public long getLevel(String member, String guild) { + try { + return DatabaseUtils.getInKVtable(pickaxesDb, LEVEL_TABLE, member + ":" + guild); + } catch (SQLException e) { + e.printStackTrace(); + } + return 0l; + } + public long getLevel(Member member) { + return getLevel(member.getId(), member.getGuild().getId()); + } + public List<String> getMembersGuilds() { + try { + return DatabaseUtils.listKeys(pickaxesDb, LEVEL_TABLE); + } catch (SQLException e) { + e.printStackTrace(); + } + return Collections.emptyList(); + } + + public List<String> getMembers(Guild guild) { + return getMembersGuilds().stream().filter(m -> guild.getId().equals(m.split(":")[1])).map(m -> m.split(":")[0]).collect(Collectors.toList()); + } + + private void setEfficiency(Member member, long value) { try { - return DatabaseUtils.getInKVtable(pickaxesDb, LEVEL_TABLE, member.getId() + ":" + member.getGuild().getId()); + DatabaseUtils.putInKVtable(pickaxesDb, EFFICIENCY_TABLE, member.getId() + ":" + member.getGuild().getId(), value); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public long getEfficiency(String member, String guild) { + try { + return DatabaseUtils.getInKVtable(pickaxesDb, EFFICIENCY_TABLE, member + ":" + guild); } catch (SQLException e) { e.printStackTrace(); } return 0l; } + public long getEfficiency(Member member) { + return getEfficiency(member.getId(), member.getGuild().getId()); + } + private void setFortune(Member member, long value) { try { DatabaseUtils.putInKVtable(pickaxesDb, FORTUNE_TABLE, member.getId() + ":" + member.getGuild().getId(), value); @@ -59,15 +137,36 @@ class Pickaxes { } } - private long getFortune(Member member) { + public long getFortune(String member, String guild) { try { - return DatabaseUtils.getInKVtable(pickaxesDb, FORTUNE_TABLE, member.getId() + ":" + member.getGuild().getId()); + return DatabaseUtils.getInKVtable(pickaxesDb, FORTUNE_TABLE, member + ":" + guild); } catch (SQLException e) { e.printStackTrace(); } return 0l; } + public long getFortune(Member member) { + return getFortune(member.getId(), member.getGuild().getId()); + } + + public void setNether(Member member, boolean nether) { + try { + DatabaseUtils.putInKVtable(pickaxesDb, DIMENSION_TABLE, member.getId() + ":" + member.getGuild().getId(), nether ? 1: 0); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public boolean isNether(Member member) { + try { + return DatabaseUtils.getInKVtable(pickaxesDb, DIMENSION_TABLE, member.getId() + ":" + member.getGuild().getId()) == 1; + } catch (SQLException e) { + e.printStackTrace(); + } + return false; + } + public boolean isEnchanted(Member member) { long fortune = getFortune(member); return fortune > 0; @@ -85,7 +184,7 @@ class Pickaxes { return pickaxeLevelToName(level); } - private static String pickaxeLevelToName(long level) { + public static String pickaxeLevelToName(long level) { switch ((int) level) { case 0: return "Stone"; @@ -144,11 +243,20 @@ class Pickaxes { return (int) getFortune(member); } + public int getPickaxeEfficiency(Member member) { + return (int) getEfficiency(member); + } + public int incrementFortune(Member member) { setFortune(member, getFortune(member) + 1); return (int) getFortune(member); } + public int incrementEfficiency(Member member) { + setEfficiency(member, getEfficiency(member) + 1); + return (int) getEfficiency(member); + } + public static String getRomanNumber(int number) { return String.join("", Collections.nCopies(number, "I")) .replace("IIIII", "V") |
