diff options
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/SavedStat.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/SavedStat.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/net/uomc/mineshaft/SavedStat.java b/src/main/java/net/uomc/mineshaft/SavedStat.java new file mode 100644 index 0000000..01718d5 --- /dev/null +++ b/src/main/java/net/uomc/mineshaft/SavedStat.java @@ -0,0 +1,81 @@ +package net.uomc.mineshaft; + +import java.sql.SQLException; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import com.mouldycheerio.dbot.util.DatabaseUtils; + +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; + +public class SavedStat { + private long defaultValue = 0l; + private String dbPath; + private String tableName; + + public SavedStat(String dbPath, String tableName) { + this.dbPath = dbPath; + this.tableName = tableName; + createTable(); + } + + private void createTable() { + try { + DatabaseUtils.createSimpleKVtable(dbPath, tableName); + } catch (SQLException e) { + } + } + + public void set(Member member, long value) { + try { + DatabaseUtils.putInKVtable(dbPath, tableName, member.getId() + ":" + member.getGuild().getId(), value); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public long get(String member, String guild) { + try { + return DatabaseUtils.getInKVtable(dbPath, tableName, member + ":" + guild); + } catch (SQLException e) { + e.printStackTrace(); + } + return defaultValue; + } + + public long get(Member member) { + return get(member.getId(), member.getGuild().getId()); + } + + 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()); + } + + public List<String> getMembersGuilds() { + try { + return DatabaseUtils.listKeys(dbPath, tableName); + } catch (SQLException e) { + e.printStackTrace(); + } + return Collections.emptyList(); + } + + public long getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(long defaultValue) { + this.defaultValue = defaultValue; + } + + public void increment(Member member, long amount) { + set(member, get(member) + amount); + } + + public void increment(Member member) { + set(member, get(member) + 1); + } + +} |
