diff options
Diffstat (limited to 'src/main/java/net/uomc/mineshaft/farm/Farm.java')
| -rw-r--r-- | src/main/java/net/uomc/mineshaft/farm/Farm.java | 109 |
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; + } +} |
