1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
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;
}
}
|