Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. package fr.mosca421.worldprotector.utils;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. import net.minecraft.nbt.NBTTagCompound;
  7. import net.minecraft.nbt.NBTTagList;
  8. import net.minecraft.util.math.AxisAlignedBB;
  9. import net.minecraft.world.WorldSavedData;
  10. import net.minecraft.world.storage.MapStorage;
  11. import net.minecraftforge.common.util.Constants.NBT;
  12. import net.minecraftforge.common.util.INBTSerializable;
  13. import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
  14.  
  15. public class Saver extends WorldSavedData {
  16. private static Saver INSTANCE;
  17.  
  18. private static final HashMap<String, Region> regions = new HashMap<String, Region>();
  19.  
  20.  
  21. public static void save() {
  22. if (INSTANCE != null) {
  23. INSTANCE.markDirty();
  24. }
  25. }
  26.  
  27. public Saver(String name) {
  28. super(name);
  29. }
  30.  
  31. @Override
  32. public void readFromNBT(NBTTagCompound nbt) {
  33. regions.clear();
  34. NBTTagList regionsList = nbt.getTagList("regions", NBT.TAG_COMPOUND);
  35. for (int i = 0; i < regionsList.tagCount(); i++) {
  36. Region area = new Region();
  37. area.deserializeNBT(regionsList.getCompoundTagAt(i));
  38. regions.put(area.getName(), area);
  39. }
  40. }
  41.  
  42. @Override
  43. public NBTTagCompound writeToNBT(NBTTagCompound compound) {
  44. NBTTagList regionsList = new NBTTagList();
  45. for (Region area : regions.values()) {
  46. regionsList.appendTag(area.serializeNBT());
  47. }
  48. compound.setTag("regions", regionsList);
  49. return compound;
  50. }
  51.  
  52. public static void onServerStarting(FMLServerStartingEvent event) {
  53. if (!event.getServer().getEntityWorld().isRemote) {
  54. MapStorage storage = event.getServer().getEntityWorld().getMapStorage();
  55. Saver data = (Saver) storage.getOrLoadData(Saver.class, "worldprotector");
  56. if (data == null) {
  57. data = new Saver("worldprotector");
  58. storage.setData("worldprotector", data);
  59. }
  60. INSTANCE = data;
  61. }
  62. }
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement