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; public 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 System.currentTimeMillis(); } 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 Mineshaft getBot() { return bot; } public MineshaftItem getItem() { return item; } }