3
3
import cat .nyaa .HamsterEcoHelper .HamsterEcoHelper ;
4
4
import cat .nyaa .HamsterEcoHelper .signshop .ShopMode ;
5
5
import cat .nyaa .nyaacore .database .DatabaseUtils ;
6
- import cat .nyaa .nyaacore .database .RelationalDB ;
7
- import cat .nyaa .nyaacore .database .TransactionalQuery ;
6
+ import cat .nyaa .nyaacore .database .relational . RelationalDB ;
7
+ import cat .nyaa .nyaacore .database .relational . SynchronizedQuery ;
8
8
import org .bukkit .OfflinePlayer ;
9
9
import org .bukkit .block .Block ;
10
10
import org .bukkit .configuration .InvalidConfigurationException ;
@@ -22,9 +22,8 @@ public class Database implements Cloneable {
22
22
private final HamsterEcoHelper plugin ;
23
23
24
24
public Database (HamsterEcoHelper plugin ) {
25
- database = DatabaseUtils .get ();
25
+ database = DatabaseUtils .get (RelationalDB . class );
26
26
this .plugin = plugin ;
27
- database .connect ();
28
27
int newDatabaseVersion = DatabaseUpdater .updateDatabase (Database .this , plugin .config .database_version );
29
28
if (newDatabaseVersion != plugin .config .database_version ) {
30
29
plugin .config .database_version = newDatabaseVersion ;
@@ -33,7 +32,7 @@ public Database(HamsterEcoHelper plugin) {
33
32
}
34
33
35
34
public List <ItemStack > getTemporaryStorage (OfflinePlayer player ) {
36
- try (TransactionalQuery <TempStorageRepo > result = database .transaction (TempStorageRepo .class ).whereEq ("player_id" , player .getUniqueId ().toString ())) {
35
+ try (SynchronizedQuery <TempStorageRepo > result = database .queryTransactional (TempStorageRepo .class ).whereEq ("player_id" , player .getUniqueId ().toString ())) {
37
36
if (result .count () == 0 ) return Collections .emptyList ();
38
37
YamlConfiguration cfg = new YamlConfiguration ();
39
38
try {
@@ -51,7 +50,7 @@ public List<ItemStack> getTemporaryStorage(OfflinePlayer player) {
51
50
}
52
51
53
52
public void addTemporaryStorage (OfflinePlayer player , ItemStack item ) {
54
- try (TransactionalQuery <TempStorageRepo > result = database .transaction (TempStorageRepo .class ).whereEq ("player_id" , player .getUniqueId ().toString ())) {
53
+ try (SynchronizedQuery <TempStorageRepo > result = database .queryTransactional (TempStorageRepo .class ).whereEq ("player_id" , player .getUniqueId ().toString ())) {
55
54
YamlConfiguration cfg = new YamlConfiguration ();
56
55
boolean update ;
57
56
if (result .count () == 0 ) {
@@ -90,7 +89,7 @@ public void addTemporaryStorage(OfflinePlayer player, ItemStack item) {
90
89
}
91
90
92
91
public void clearTemporaryStorage (OfflinePlayer player ) {
93
- try (TransactionalQuery <TempStorageRepo > query = database .transaction (TempStorageRepo .class ).whereEq ("player_id" , player .getUniqueId ().toString ())) {
92
+ try (SynchronizedQuery <TempStorageRepo > query = database .queryTransactional (TempStorageRepo .class ).whereEq ("player_id" , player .getUniqueId ().toString ())) {
94
93
if (query .count () != 0 ) {
95
94
query .delete ();
96
95
}
@@ -99,10 +98,10 @@ public void clearTemporaryStorage(OfflinePlayer player) {
99
98
100
99
public List <MarketItem > getMarketItems (int offset , int limit , UUID seller ) {
101
100
ArrayList <MarketItem > list = new ArrayList <>();
102
- try (TransactionalQuery <MarketItem > result =
101
+ try (SynchronizedQuery <MarketItem > result =
103
102
seller == null ?
104
- database .transaction (MarketItem .class ).where ("amount" , ">" , 0 ) :
105
- database .transaction (MarketItem .class ).where ("amount" , ">" , 0 ).whereEq ("player_id" , seller .toString ())) {
103
+ database .queryTransactional (MarketItem .class ).where ("amount" , ">" , 0 ) :
104
+ database .queryTransactional (MarketItem .class ).where ("amount" , ">" , 0 ).whereEq ("player_id" , seller .toString ())) {
106
105
if (result .count () > 0 ) {
107
106
List <MarketItem > tmp = result .select ();
108
107
Collections .reverse (tmp );
@@ -126,7 +125,7 @@ public long marketOffer(Player player, ItemStack itemStack, double unit_price) {
126
125
item .playerId = player .getUniqueId ();
127
126
item .unitPrice = unit_price ;
128
127
long id = 1 ;
129
- try (TransactionalQuery <MarketItem > query = database .transaction (MarketItem .class )) {
128
+ try (SynchronizedQuery <MarketItem > query = database .queryTransactional (MarketItem .class )) {
130
129
for (MarketItem marketItem : query .select ()) {
131
130
if (marketItem .id >= id ) {
132
131
id = marketItem .id + 1 ;
@@ -139,7 +138,7 @@ public long marketOffer(Player player, ItemStack itemStack, double unit_price) {
139
138
}
140
139
141
140
public void marketBuy (Player player , long itemId , int amount ) {
142
- try (TransactionalQuery <MarketItem > query = database .transaction (MarketItem .class ).whereEq ("id" , itemId )) {
141
+ try (SynchronizedQuery <MarketItem > query = database .queryTransactional (MarketItem .class ).whereEq ("id" , itemId )) {
143
142
if (query .count () != 0 ) {
144
143
MarketItem mItem = query .selectUnique ();
145
144
mItem .amount = mItem .amount - amount ;
@@ -150,7 +149,7 @@ public void marketBuy(Player player, long itemId, int amount) {
150
149
}
151
150
152
151
public int getMarketPlayerItemCount (OfflinePlayer player ) {
153
- try (TransactionalQuery <MarketItem > query = database .transaction (MarketItem .class ).whereEq ("player_id" , player .getUniqueId ().toString ()).where ("amount" , ">" , 0 )) {
152
+ try (SynchronizedQuery <MarketItem > query = database .queryTransactional (MarketItem .class ).whereEq ("player_id" , player .getUniqueId ().toString ()).where ("amount" , ">" , 0 )) {
154
153
if (query .count () > 0 ) {
155
154
return query .count ();
156
155
}
@@ -159,7 +158,7 @@ public int getMarketPlayerItemCount(OfflinePlayer player) {
159
158
}
160
159
161
160
public int getMarketItemCount () {
162
- try (TransactionalQuery <MarketItem > query = database .transaction (MarketItem .class ).where ("amount" , ">" , 0 )) {
161
+ try (SynchronizedQuery <MarketItem > query = database .queryTransactional (MarketItem .class ).where ("amount" , ">" , 0 )) {
163
162
if (query .count () != 0 ) {
164
163
return query .count ();
165
164
}
@@ -168,7 +167,7 @@ public int getMarketItemCount() {
168
167
}
169
168
170
169
public MarketItem getMarketItem (long id ) {
171
- try (TransactionalQuery <MarketItem > query = database .transaction (MarketItem .class ).whereEq ("id" , id )) {
170
+ try (SynchronizedQuery <MarketItem > query = database .queryTransactional (MarketItem .class ).whereEq ("id" , id )) {
172
171
if (query .count () != 0 ) {
173
172
return query .selectUnique ();
174
173
}
@@ -178,7 +177,7 @@ public MarketItem getMarketItem(long id) {
178
177
179
178
180
179
public ItemLog getItemLog (long id ) {
181
- try (TransactionalQuery <ItemLog > log = database .transaction (ItemLog .class ).whereEq ("id" , id )) {
180
+ try (SynchronizedQuery <ItemLog > log = database .queryTransactional (ItemLog .class ).whereEq ("id" , id )) {
182
181
if (log != null && log .count () != 0 ) {
183
182
return log .selectUnique ();
184
183
}
@@ -193,7 +192,7 @@ public long addItemLog(OfflinePlayer player, ItemStack item, double price, int a
193
192
i .price = price ;
194
193
i .amount = amount ;
195
194
long id = 1 ;
196
- try (TransactionalQuery <ItemLog > query = database .transaction (ItemLog .class )) {
195
+ try (SynchronizedQuery <ItemLog > query = database .queryTransactional (ItemLog .class )) {
197
196
for (ItemLog log : query .select ()) {
198
197
if (log .id >= id ) {
199
198
id = log .id + 1 ;
@@ -206,15 +205,15 @@ public long addItemLog(OfflinePlayer player, ItemStack item, double price, int a
206
205
}
207
206
208
207
public List <Sign > getShopSigns () {
209
- return database .auto (Sign .class ).select ();
208
+ return database .query (Sign .class ).select ();
210
209
}
211
210
212
211
public Sign createShopSign (OfflinePlayer player , Block block , ShopMode mode ) {
213
212
Sign shopLocation = new Sign ();
214
213
shopLocation .owner = player .getUniqueId ();
215
214
shopLocation .setLocation (block .getLocation ());
216
215
shopLocation .shopMode = mode ;
217
- try (TransactionalQuery <Sign > sign = database .transaction (Sign .class ).whereEq ("id" , shopLocation .id )) {
216
+ try (SynchronizedQuery <Sign > sign = database .queryTransactional (Sign .class ).whereEq ("id" , shopLocation .id )) {
218
217
sign .delete ();
219
218
sign .insert (shopLocation );
220
219
}
@@ -227,7 +226,7 @@ public Sign createLottoSign(OfflinePlayer player, Block block, ShopMode mode, do
227
226
shopLocation .setLocation (block .getLocation ());
228
227
shopLocation .shopMode = mode ;
229
228
shopLocation .lotto_price = price ;
230
- try (TransactionalQuery <Sign > sign = database .transaction (Sign .class ).whereEq ("id" , shopLocation .id )) {
229
+ try (SynchronizedQuery <Sign > sign = database .queryTransactional (Sign .class ).whereEq ("id" , shopLocation .id )) {
231
230
if (sign != null ) {
232
231
sign .delete ();
233
232
sign .insert (shopLocation );
@@ -239,7 +238,7 @@ public Sign createLottoSign(OfflinePlayer player, Block block, ShopMode mode, do
239
238
public boolean removeShopSign (Block block ) {
240
239
Sign shopLocation = new Sign ();
241
240
shopLocation .setLocation (block .getLocation ());
242
- try (TransactionalQuery <Sign > sign = database .transaction (Sign .class ).whereEq ("id" , shopLocation .id )) {
241
+ try (SynchronizedQuery <Sign > sign = database .queryTransactional (Sign .class ).whereEq ("id" , shopLocation .id )) {
243
242
if (sign != null ) {
244
243
sign .delete ();
245
244
return true ;
@@ -251,7 +250,7 @@ public boolean removeShopSign(Block block) {
251
250
public boolean removeShopSign (String world , int x , int y , int z ) {
252
251
Sign shopLocation = new Sign ();
253
252
shopLocation .setLocation (world , x , y , z );
254
- try (TransactionalQuery <Sign > sign = database .transaction (Sign .class ).whereEq ("id" , shopLocation .id )) {
253
+ try (SynchronizedQuery <Sign > sign = database .queryTransactional (Sign .class ).whereEq ("id" , shopLocation .id )) {
255
254
if (sign != null ) {
256
255
sign .delete ();
257
256
return true ;
@@ -261,11 +260,11 @@ public boolean removeShopSign(String world, int x, int y, int z) {
261
260
}
262
261
263
262
public List <SignShop > getSignShops () {
264
- return database .auto (SignShop .class ).select ();
263
+ return database .query (SignShop .class ).select ();
265
264
}
266
265
267
266
public SignShop getSignShop (UUID owner ) {
268
- try (TransactionalQuery <SignShop > shop = database .transaction (SignShop .class ).whereEq ("id" , owner .toString ())) {
267
+ try (SynchronizedQuery <SignShop > shop = database .queryTransactional (SignShop .class ).whereEq ("id" , owner .toString ())) {
269
268
if (shop != null && shop .count () == 1 ) {
270
269
return shop .selectUnique ();
271
270
}
@@ -276,30 +275,30 @@ public SignShop getSignShop(UUID owner) {
276
275
}
277
276
278
277
public void setSignShop (UUID owner , SignShop shop ) {
279
- try (TransactionalQuery <SignShop > s = database .transaction (SignShop .class ).whereEq ("id" , owner .toString ())) {
278
+ try (SynchronizedQuery <SignShop > s = database .queryTransactional (SignShop .class ).whereEq ("id" , owner .toString ())) {
280
279
s .delete ();
281
280
s .insert (shop );
282
281
}
283
282
}
284
283
285
284
public ShopStorageLocation getChestLocation (UUID owner ) {
286
- return database .auto (ShopStorageLocation .class ).whereEq ("owner" , owner .toString ()).selectUniqueUnchecked ();
285
+ return database .query (ShopStorageLocation .class ).whereEq ("owner" , owner .toString ()).selectUniqueUnchecked ();
287
286
}
288
287
289
288
public void setChestLocation (UUID owner , ShopStorageLocation location ) {
290
- try (TransactionalQuery <ShopStorageLocation > s = database .transaction (ShopStorageLocation .class ).whereEq ("owner" , owner .toString ())) {
289
+ try (SynchronizedQuery <ShopStorageLocation > s = database .queryTransactional (ShopStorageLocation .class ).whereEq ("owner" , owner .toString ())) {
291
290
s .delete ();
292
291
s .insert (location );
293
292
}
294
293
295
294
}
296
295
297
296
public LottoStorageLocation getLottoStorageLocation (UUID owner ) {
298
- return database .auto (LottoStorageLocation .class ).whereEq ("owner" , owner .toString ()).selectUniqueUnchecked ();
297
+ return database .query (LottoStorageLocation .class ).whereEq ("owner" , owner .toString ()).selectUniqueUnchecked ();
299
298
}
300
299
301
300
public void setLottoStorageLocation (UUID owner , LottoStorageLocation location ) {
302
- try (TransactionalQuery <LottoStorageLocation > s = database .transaction (LottoStorageLocation .class ).whereEq ("owner" , owner .toString ())) {
301
+ try (SynchronizedQuery <LottoStorageLocation > s = database .queryTransactional (LottoStorageLocation .class ).whereEq ("owner" , owner .toString ())) {
303
302
s .delete ();
304
303
s .insert (location );
305
304
}
0 commit comments