Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package games.coob.core.block;
- import lombok.Getter;
- import org.bukkit.Location;
- import org.mineacademy.fo.SerializeUtil;
- import org.mineacademy.fo.collection.SerializedMap;
- import org.mineacademy.fo.model.ConfigSerializable;
- import org.mineacademy.fo.remain.CompMaterial;
- @Getter
- public class BlockData implements ConfigSerializable {
- @Getter
- private static final BlockData instance = new BlockData();
- private Location location;
- private CompMaterial material;
- private int level;
- public void setLevel(final int level) {
- this.level = level;
- }
- public void increaseLevel() {
- level++;
- }
- public void setLocation(final Location location) {
- this.location = location;
- }
- public void setMaterial(final CompMaterial material) {
- this.material = material;
- }
- private String toHash(final Location location, final CompMaterial material) {
- return SerializeUtil.serializeLoc(location) + " | " + material;
- }
- @Override
- public SerializedMap serialize() {
- return SerializedMap.ofArray(
- "hash", toHash(this.location, this.material),
- "Level", this.level);
- }
- static BlockData deserialize(final SerializedMap map) {
- final String hash = map.getString("hash");
- final int level = map.getInteger("Level");
- final String[] split = hash.split(" \\| ");
- final Location location = SerializeUtil.deserializeLocation(split[0]);
- final CompMaterial material = CompMaterial.valueOf(split[1]);
- final BlockData blockData = new BlockData();
- blockData.setMaterial(material);
- blockData.setLocation(location);
- blockData.setLevel(level);
- return blockData;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement