summaryrefslogtreecommitdiff
path: root/src/main/java/net/uomc/mineshaft/farm/Farm.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/farm/Farm.java')
-rw-r--r--src/main/java/net/uomc/mineshaft/farm/Farm.java109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/main/java/net/uomc/mineshaft/farm/Farm.java b/src/main/java/net/uomc/mineshaft/farm/Farm.java
new file mode 100644
index 0000000..d990216
--- /dev/null
+++ b/src/main/java/net/uomc/mineshaft/farm/Farm.java
@@ -0,0 +1,109 @@
+package net.uomc.mineshaft.farm;
+
+import java.io.File;
+import java.sql.SQLException;
+
+import com.mouldycheerio.dbot.util.DatabaseUtils;
+
+import net.dv8tion.jda.api.entities.Member;
+import net.uomc.mineshaft.Mineshaft;
+import net.uomc.mineshaft.MineshaftItem;
+
+class Farm{
+
+ private MineshaftItem item;
+
+ private String farmsDbPath;
+ private Mineshaft bot;
+
+ public Farm(Mineshaft bot, MineshaftItem item) {
+ this.item = item;
+ this.farmsDbPath = (new File(bot.getDatadir(), "farms.db")).getPath();
+ this.bot = bot;
+
+ initDB();
+ }
+
+ private void initDB() {
+ try {
+ DatabaseUtils.createSimpleKVtable(farmsDbPath, item.toString() + "_access");
+ } catch (SQLException e) {
+ }
+ try {
+ DatabaseUtils.createSimpleKVtable(farmsDbPath, item.toString() + "_planted");
+ } catch (SQLException e) {
+ }
+ try {
+ DatabaseUtils.createSimpleKVtable(farmsDbPath, item.toString());
+ } catch (SQLException e) {
+ }
+ }
+
+ public void setPlanted(Member member, long value) {
+ try {
+ DatabaseUtils.putInKVtable(farmsDbPath, item.toString() + "_planted", member.getId() + ":" + member.getGuild().getId(), value);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public long getPlanted(Member member) {
+ try {
+ return DatabaseUtils.getInKVtable(farmsDbPath, item.toString() + "_planted", member.getId() + ":" + member.getGuild().getId());
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return 0l;
+ }
+
+ public void setQuantity(Member member, long value) {
+ try {
+ DatabaseUtils.putInKVtable(farmsDbPath, item.toString(), member.getId() + ":" + member.getGuild().getId(), value);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public long getQuantity(Member member) {
+ try {
+ return DatabaseUtils.getInKVtable(farmsDbPath, item.toString(), member.getId() + ":" + member.getGuild().getId());
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return 0l;
+ }
+
+ public void setNextUpdate(Member member, long value) {
+ try {
+ DatabaseUtils.putInKVtable(farmsDbPath, item.toString() + "_access", member.getId() + ":" + member.getGuild().getId(), value);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public long getNextUpdate(Member member) {
+ try {
+ return DatabaseUtils.getInKVtable(farmsDbPath, item.toString() + "_access", member.getId() + ":" + member.getGuild().getId());
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return 0l;
+ }
+
+ public void incrementPlanted(Member member, long d) {
+ long q = getPlanted(member);
+
+ setPlanted(member, q + d);
+ }
+
+ public long extractAll(Member member) {
+ long q = getQuantity(member);
+
+ bot.addItem(member, item, q);
+ return q;
+ }
+
+ public MineshaftItem getItem() {
+ return item;
+ }
+}