mirror of
https://github.com/amalthea-mc/ShopChest.git
synced 2024-11-12 13:41:06 +00:00
Change get(...) to getShop(...) in database
This commit is contained in:
parent
4f894ddac7
commit
73f5d0f79e
@ -108,7 +108,7 @@ public abstract class Database {
|
|||||||
public int getNextFreeID() {
|
public int getNextFreeID() {
|
||||||
int highestId = getHighestID();
|
int highestId = getHighestID();
|
||||||
for (int i = 1; i <= highestId + 1; i++) {
|
for (int i = 1; i <= highestId + 1; i++) {
|
||||||
if (get(i, ShopInfo.X) == null) {
|
if (!isShop(i)) {
|
||||||
plugin.debug("Next free id: " + i);
|
plugin.debug("Next free id: " + i);
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
@ -173,10 +173,9 @@ public abstract class Database {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param id ID of the shop
|
* @param id ID of the shop
|
||||||
* @param shopInfo What to get
|
* @return Whether a shop with the given ID exists
|
||||||
* @return Value you wanted to get. This needs to be casted to the right type!
|
|
||||||
*/
|
*/
|
||||||
public Object get(int id, ShopInfo shopInfo) {
|
public boolean isShop(int id) {
|
||||||
PreparedStatement ps = null;
|
PreparedStatement ps = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
|
|
||||||
@ -186,88 +185,65 @@ public abstract class Database {
|
|||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
if (rs.getInt("id") == id) {
|
if (rs.getInt("id") == id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
plugin.getLogger().severe("Failed to access database");
|
||||||
|
plugin.debug("Failed to check if shop with ID exists (#" + id + ")");
|
||||||
|
plugin.debug(ex);
|
||||||
|
} finally {
|
||||||
|
close(ps, rs);
|
||||||
|
}
|
||||||
|
|
||||||
switch (shopInfo) {
|
return false;
|
||||||
case SHOP:
|
}
|
||||||
plugin.debug("Getting Shop... (#" + id + ")");
|
|
||||||
|
|
||||||
Shop shop = plugin.getShopUtils().getShop((Location) get(id, ShopInfo.LOCATION));
|
/**
|
||||||
if (shop != null) {
|
* @param id ID of the shop
|
||||||
plugin.debug("Shop already exists, returning existing one (#" + id + ").");
|
* @return Shop with the given ID
|
||||||
return shop;
|
*/
|
||||||
} else {
|
public Shop getShop(int id) {
|
||||||
plugin.debug("Creating new shop... (#" + id + ")");
|
PreparedStatement ps = null;
|
||||||
return new Shop(id, plugin,
|
ResultSet rs = null;
|
||||||
(OfflinePlayer) get(id, ShopInfo.VENDOR),
|
|
||||||
(ItemStack) get(id, ShopInfo.PRODUCT),
|
|
||||||
(Location) get(id, ShopInfo.LOCATION),
|
|
||||||
(double) get(id, ShopInfo.BUYPRICE),
|
|
||||||
(double) get(id, ShopInfo.SELLPRICE),
|
|
||||||
(ShopType) get(id, ShopInfo.SHOPTYPE));
|
|
||||||
}
|
|
||||||
case VENDOR:
|
|
||||||
String vendor = rs.getString("vendor");
|
|
||||||
plugin.debug("Getting vendor: " + vendor + " (#" + id + ")");
|
|
||||||
return Bukkit.getOfflinePlayer(UUID.fromString(vendor));
|
|
||||||
case PRODUCT:
|
|
||||||
String product = rs.getString("product");
|
|
||||||
plugin.debug("Getting product: " + product + " (#" + id + ")");
|
|
||||||
return Utils.decode(product);
|
|
||||||
case WORLD:
|
|
||||||
String world = rs.getString("world");
|
|
||||||
plugin.debug("Getting world: " + world + " (#" + id + ")");
|
|
||||||
return Bukkit.getWorld(world);
|
|
||||||
case X:
|
|
||||||
int x = rs.getInt("x");
|
|
||||||
plugin.debug("Getting x: " + x + " (#" + id + ")");
|
|
||||||
return x;
|
|
||||||
case Y:
|
|
||||||
int y = rs.getInt("y");
|
|
||||||
plugin.debug("Getting y: " + y + " (#" + id + ")");
|
|
||||||
return y;
|
|
||||||
case Z:
|
|
||||||
int z = rs.getInt("z");
|
|
||||||
plugin.debug("Getting z: " + z + " (#" + id + ")");
|
|
||||||
return z;
|
|
||||||
case LOCATION:
|
|
||||||
plugin.debug("Getting location... (#" + id + ")");
|
|
||||||
return new Location((World) get(id, ShopInfo.WORLD), (int) get(id, ShopInfo.X), (int) get(id, ShopInfo.Y), (int) get(id, ShopInfo.Z));
|
|
||||||
case BUYPRICE:
|
|
||||||
double buyprice = rs.getDouble("buyprice");
|
|
||||||
plugin.debug("Getting buyprice: " + buyprice + " (#" + id + ")");
|
|
||||||
return buyprice;
|
|
||||||
case SELLPRICE:
|
|
||||||
double sellprice = rs.getDouble("sellprice");
|
|
||||||
plugin.debug("Getting sellprice: " + sellprice + " (#" + id + ")");
|
|
||||||
return sellprice;
|
|
||||||
case SHOPTYPE:
|
|
||||||
String shoptype = rs.getString("shoptype");
|
|
||||||
plugin.debug("Getting shoptype: " + shoptype + " (#" + id + ")");
|
|
||||||
|
|
||||||
if (shoptype.equals("INFINITE")) {
|
try {
|
||||||
|
ps = connection.prepareStatement("SELECT * FROM shop_list WHERE id = " + id + ";");
|
||||||
|
rs = ps.executeQuery();
|
||||||
|
|
||||||
Shop newShop = new Shop(id, plugin,
|
while (rs.next()) {
|
||||||
(OfflinePlayer) get(id, ShopInfo.VENDOR),
|
if (rs.getInt("id") == id) {
|
||||||
(ItemStack) get(id, ShopInfo.PRODUCT),
|
plugin.debug("Getting Shop... (#" + id + ")");
|
||||||
(Location) get(id, ShopInfo.LOCATION),
|
|
||||||
(double) get(id, ShopInfo.BUYPRICE),
|
|
||||||
(double) get(id, ShopInfo.SELLPRICE),
|
|
||||||
ShopType.ADMIN);
|
|
||||||
|
|
||||||
addShop(newShop);
|
World world = Bukkit.getWorld(rs.getString("world"));
|
||||||
|
int x = rs.getInt("x");
|
||||||
|
int y = rs.getInt("y");
|
||||||
|
int z = rs.getInt("z");
|
||||||
|
|
||||||
return ShopType.ADMIN;
|
Location location = new Location(world, x, y, z);
|
||||||
}
|
|
||||||
return ShopType.valueOf(shoptype);
|
Shop shop = plugin.getShopUtils().getShop(location);
|
||||||
|
if (shop != null) {
|
||||||
|
plugin.debug("Shop already exists, returning existing one (#" + id + ").");
|
||||||
|
return shop;
|
||||||
|
} else {
|
||||||
|
plugin.debug("Creating new shop... (#" + id + ")");
|
||||||
|
|
||||||
|
OfflinePlayer vendor = Bukkit.getOfflinePlayer(UUID.fromString(rs.getString("vendor")));
|
||||||
|
ItemStack product = Utils.decode(rs.getString("product"));
|
||||||
|
double buyPrice = rs.getDouble("buyprice");
|
||||||
|
double sellPrice = rs.getDouble("sellprice");
|
||||||
|
ShopType shopType = ShopType.valueOf(rs.getString("shoptype"));
|
||||||
|
|
||||||
|
return new Shop(id, plugin, vendor, product, location, buyPrice, sellPrice, shopType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin.debug("Shop with ID not found, returning null. (#" + id + ")");
|
plugin.debug("Shop with ID not found, returning null. (#" + id + ")");
|
||||||
|
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
plugin.getLogger().severe("Failed to access database");
|
plugin.getLogger().severe("Failed to access database");
|
||||||
plugin.debug("Failed to get shop info " + shopInfo.toString() + "(#" + id + ")");
|
plugin.debug("Failed to get shop (#" + id + ")");
|
||||||
plugin.debug(ex);
|
plugin.debug(ex);
|
||||||
} finally {
|
} finally {
|
||||||
close(ps, rs);
|
close(ps, rs);
|
||||||
@ -402,20 +378,6 @@ public abstract class Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ShopInfo {
|
|
||||||
SHOP,
|
|
||||||
VENDOR,
|
|
||||||
PRODUCT,
|
|
||||||
WORLD,
|
|
||||||
X,
|
|
||||||
Y,
|
|
||||||
Z,
|
|
||||||
LOCATION,
|
|
||||||
BUYPRICE,
|
|
||||||
SELLPRICE,
|
|
||||||
SHOPTYPE
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum DatabaseType {
|
public enum DatabaseType {
|
||||||
SQLite,
|
SQLite,
|
||||||
MySQL
|
MySQL
|
||||||
|
@ -193,7 +193,7 @@ public class ShopUtils {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
plugin.debug("Trying to add shop. (#" + id + ")");
|
plugin.debug("Trying to add shop. (#" + id + ")");
|
||||||
Shop shop = (Shop) plugin.getShopDatabase().get(id, Database.ShopInfo.SHOP);
|
Shop shop = plugin.getShopDatabase().getShop(id);
|
||||||
addShop(shop, false);
|
addShop(shop, false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.debug("Error while adding shop (#" + id + "):");
|
plugin.debug("Error while adding shop (#" + id + "):");
|
||||||
|
Loading…
Reference in New Issue
Block a user