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; return 0;
} }
VirtualChest virtualChest = new VirtualChest(chest);
VirtualChest virtualChest = VirtualChest.getOrCreate(chest);
virtualChest.save(); virtualChest.save();
PDC.set(chest, "virtual", virtualChest.getId()); PDC.set(chest, "virtual", virtualChest.getId());

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

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

Loading…
Cancel
Save