save item when modified
This commit is contained in:
parent
d52fc0d9eb
commit
0edce64ab3
3 changed files with 91 additions and 50 deletions
|
@ -4,12 +4,14 @@ import com.google.gson.Gson;
|
|||
import com.google.gson.GsonBuilder;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import me.unurled.sacredrealms.sr.SR;
|
||||
import me.unurled.sacredrealms.sr.data.DataHandler;
|
||||
import me.unurled.sacredrealms.sr.data.DataManager;
|
||||
import me.unurled.sacredrealms.sr.managers.Manager;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ItemManager extends Manager {
|
||||
public static final NamespacedKey ID = new NamespacedKey("sr", "id");
|
||||
|
@ -27,8 +29,7 @@ public class ItemManager extends Manager {
|
|||
DataManager dm = Manager.getInstance(DataManager.class);
|
||||
DataHandler dh = dm.getDataHandler();
|
||||
|
||||
Gson gson =
|
||||
new GsonBuilder().registerTypeAdapter(Item.class, new ItemStackSerializer()).create();
|
||||
Gson gson = new GsonBuilder().registerTypeAdapter(Item.class, new ItemSerializer()).create();
|
||||
|
||||
items.forEach((id, item) -> dh.set("sr.items." + id, gson.toJson(item)));
|
||||
}
|
||||
|
@ -39,6 +40,11 @@ public class ItemManager extends Manager {
|
|||
DataManager dm = Manager.getInstance(DataManager.class);
|
||||
DataHandler dh = dm.getDataHandler();
|
||||
|
||||
if (dh == null) {
|
||||
SR.getInstance().getLogger().severe("DataHandler is null in ItemManager.loadData()!");
|
||||
return;
|
||||
}
|
||||
|
||||
Gson gson = new GsonBuilder().registerTypeAdapter(Item.class, new ItemDeserializer()).create();
|
||||
|
||||
dh.getKeysAll("sr.items")
|
||||
|
@ -49,6 +55,15 @@ public class ItemManager extends Manager {
|
|||
});
|
||||
}
|
||||
|
||||
public void saveItem(@NotNull Item item) {
|
||||
DataManager dm = Manager.getInstance(DataManager.class);
|
||||
DataHandler dh = dm.getDataHandler();
|
||||
|
||||
Gson gson = new GsonBuilder().registerTypeAdapter(Item.class, new ItemSerializer()).create();
|
||||
|
||||
dh.set("sr.items." + item.getId(), gson.toJson(item));
|
||||
}
|
||||
|
||||
public void addItem(Item item) {
|
||||
items.put(item.getId(), item);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue