Advertisement
JackOUT

Untitled

Jan 8th, 2022
536
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.55 KB | None | 0 0
  1. package games.coob.core.block;
  2.  
  3. import lombok.Getter;
  4. import org.bukkit.Location;
  5. import org.mineacademy.fo.SerializeUtil;
  6. import org.mineacademy.fo.collection.SerializedMap;
  7. import org.mineacademy.fo.model.ConfigSerializable;
  8. import org.mineacademy.fo.remain.CompMaterial;
  9.  
  10. @Getter
  11. public class BlockData implements ConfigSerializable {
  12.    
  13.     private Location location;
  14.  
  15.     private CompMaterial material;
  16.  
  17.     private int level;
  18.  
  19.     public void setLevel(final int level) {
  20.         this.level = level;
  21.     }
  22.  
  23.     public void increaseLevel() {
  24.         level++;
  25.     }
  26.  
  27.     public void setLocation(final Location location) {
  28.         this.location = location;
  29.     }
  30.  
  31.     public void setMaterial(final CompMaterial material) {
  32.         this.material = material;
  33.     }
  34.  
  35.     private String toHash(final Location location, final CompMaterial material) {
  36.         return SerializeUtil.serializeLoc(location) + " | " + material;
  37.     }
  38.  
  39.     @Override
  40.     public SerializedMap serialize() {
  41.         return SerializedMap.ofArray(
  42.                 "hash", toHash(this.location, this.material),
  43.                 "Level", this.level);
  44.     }
  45.  
  46.     public static BlockData deserialize(final SerializedMap map) {
  47.         final String hash = map.getString("hash");
  48.         final int level = map.getInteger("Level");
  49.  
  50.         final String[] split = hash.split(" \\| ");
  51.         final Location location = SerializeUtil.deserializeLocation(split[0]);
  52.         final CompMaterial material = CompMaterial.valueOf(split[1]);
  53.  
  54.         final BlockData blockData = new BlockData();
  55.  
  56.         blockData.setMaterial(material);
  57.         blockData.setLocation(location);
  58.         blockData.setLevel(level);
  59.  
  60.         return blockData;
  61.     }
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement