PDC Upgrade

pull/6/head
= 10 months ago
parent 9ad62e89a9
commit f34706c235
  1. 3
      src/main/java/xyz/soukup/ecoCraftCore/commands/ShopCommand.java
  2. 10
      src/main/java/xyz/soukup/ecoCraftCore/objects/Shop.java
  3. 26
      src/main/java/xyz/soukup/ecoCraftCore/objects/VirtualChest.java

@ -75,7 +75,8 @@ public class ShopCommand {
return 0;
}
VirtualChest virtualChest = new VirtualChest(chest);
VirtualChest virtualChest = VirtualChest.getOrCreate(chest);
virtualChest.save();
PDC.set(chest, "virtual", virtualChest.getId());

@ -32,7 +32,7 @@ public class Shop {
private String itemName;
@DatabaseField(canBeNull = false, columnName = "itemstack")
private String itemStackJson;
private String itemStackString;
@DatabaseField(canBeNull = false)
private int amount;
@ -65,7 +65,7 @@ public class Shop {
public Shop(Player player, ItemStack itemStack, int stock, int freeSpace, int amount, float priceBuy, float priceSell, int virtualChestID) {
this.ownerType = "player";
this.owner = player.getName();
this.itemStackJson = Converter.toString(itemStack);
this.itemStackString = Converter.toString(itemStack);
this.itemName = itemStack.getType().toString();
this.stock = stock;
this.freeSpace = freeSpace;
@ -79,8 +79,8 @@ public class Shop {
this.itemName = itemName;
}
public void setItemStackJson(String itemStackJson) {
this.itemStackJson = itemStackJson;
public void setItemStackString(String itemStackString) {
this.itemStackString = itemStackString;
}
public void setAmount(int amount) {
@ -116,7 +116,7 @@ public class Shop {
}
public ItemStack getItemStack() {
return Converter.itemstackFromString(this.itemStackJson);
return Converter.itemstackFromString(this.itemStackString);
}
public void writeIntoSign(Sign sign){

@ -7,6 +7,7 @@ import org.bukkit.block.Chest;
import org.bukkit.inventory.Inventory;
import xyz.soukup.ecoCraftCore.utilities.DaoRegistry;
import xyz.soukup.ecoCraftCore.utilities.Converter;
import xyz.soukup.ecoCraftCore.utilities.PDC;
import java.sql.SQLException;
@ -17,7 +18,7 @@ public class VirtualChest {
private int id;
@DatabaseField(columnName = "inventory", dataType = DataType.LONG_STRING)
private String inventoryJson;
private String inventoryString;
@DatabaseField(columnName = "active_on_server")
private String activeServer;
@ -32,10 +33,27 @@ public class VirtualChest {
}
public VirtualChest(Chest chest){
Inventory inventory = chest.getSnapshotInventory();
this.inventoryJson = Converter.toString(inventory);
this.inventoryString = Converter.toString(inventory);
}
public static VirtualChest getOrCreate(Chest chest){
Integer id = PDC.getInteger(chest, "virtual");
if (id == null){
return new VirtualChest(chest);
}
VirtualChest virtualChest = findById(id);
if (virtualChest == null){
return new VirtualChest(chest);
}
return virtualChest;
}
public static VirtualChest findById(int id) {
@ -48,7 +66,7 @@ public class VirtualChest {
public void save(){
if (this.inventory != null){
this.inventoryJson = Converter.toString(this.inventory);
this.inventoryString = Converter.toString(this.inventory);
}
try {
DaoRegistry.getVirtualChestDao().createOrUpdate(this);
@ -59,7 +77,7 @@ public class VirtualChest {
public Inventory getInventory(){
if (this.inventory == null){
this.inventory = Converter.inventoryFromString(this.inventoryJson);
this.inventory = Converter.inventoryFromString(this.inventoryString);
}
return this.inventory;
}

Loading…
Cancel
Save