· 7 years ago · Oct 20, 2018, 05:06 PM
1package ru.slimechan.yggdrasilbot.sql;
2
3import java.util.concurrent.CompletableFuture;
4
5import com.zaxxer.hikari.HikariConfig;
6
7import ru.slimechan.yggdrasilbot.logger.Logger;
8import ru.slimechan.yggdrasilbot.objects.Player;
9
10public class SQLite extends Engine<SQLite> {
11 private String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS player_data (id INT, name TEXT, level INT, exp FLOAT, energy INT, coins INT, boxes INT, inventory TEXT)";
12 private String GET_PLAYER = "SELECT name, level, exp, energy, coins, boxes, inventory FROM player_data WHERE id=?";
13 private String ADD_PLAYER = "INSERT INTO player_data (id, name, level, exp, energy, coins, boxes, inventory) VALUES (?,?,?,?,?,?,?,?)";
14 private String SAVE_PLAYER = "UPDATE player_data SET name=?,level=?,exp=?,energy=?,coins=?,boxes=?,inventory=? WHERE id=?";
15
16
17
18 public SQLite(String database){
19
20 hikariConfig = new HikariConfig();
21 hikariConfig.setDriverClassName("org.sqlite.JDBC");
22 hikariConfig.setJdbcUrl("jdbc:sqlite:" + database+".db");
23 hikariConfig.setMaximumPoolSize(1);
24 hikariConfig.setConnectionTimeout(3000);
25 Logger.Instance.Log("SQL connected!");
26 open();
27
28 executeUpdate(CREATE_TABLE);
29 }
30
31 public void addPlayer(Player pl) {
32 UpdateResult queryResult = executeUpdate(ADD_PLAYER, pl.getName(), pl.getLevel(), pl.getExp(), pl.getEnergy(), pl.getCoins(), pl.getBoxes(), pl.getInvToSave(), pl.getId()).join();
33 }
34 public void savePlayer(Player pl) {
35 UpdateResult queryResult = executeUpdate(SAVE_PLAYER, pl.getName(), pl.getLevel(), pl.getExp(), pl.getEnergy(), pl.getCoins(), pl.getBoxes(), pl.getInvToSave(), pl.getId()).join();
36 }
37
38 public static final SQLite Instance = new SQLite("Yggdrasil");
39
40 @Override
41 protected SQLite get() {
42 return this;
43 }
44}