Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. package com.mcme.mcmeproject.data;
  2.  
  3. import com.mcmiddleearth.pluginutil.region.CuboidRegion;
  4. import com.mcmiddleearth.pluginutil.region.PrismoidRegion;
  5. import com.mcmiddleearth.pluginutil.region.Region;
  6. import com.mcmiddleearth.pluginutil.region.SphericalRegion;
  7. import java.io.File;
  8. import java.io.FileNotFoundException;
  9. import java.io.IOException;
  10. import static java.lang.Integer.parseInt;
  11. import java.util.Calendar;
  12. import java.util.Collection;
  13. import java.util.HashMap;
  14. import java.util.Iterator;
  15. import java.util.List;
  16. import java.util.ListIterator;
  17. import java.util.Map;
  18. import java.util.UUID;
  19. import lombok.Getter;
  20. import org.bukkit.Bukkit;
  21. import org.bukkit.Location;
  22. import org.bukkit.configuration.ConfigurationSection;
  23. import org.bukkit.configuration.InvalidConfigurationException;
  24. import org.bukkit.configuration.file.YamlConfiguration;
  25.  
  26. /**
  27. *
  28. * @author Fraspace5
  29. */
  30. public class ProjectData {
  31.  
  32. @Getter
  33. public String name;
  34.  
  35. public String description;
  36.  
  37. public Double minutes;
  38.  
  39. public UUID head;
  40.  
  41. public Long updated;
  42.  
  43. public Long time;
  44.  
  45. public Double percentage;
  46.  
  47. public String link;
  48.  
  49. protected HashMap<String, Region> regions;
  50.  
  51. public HashMap<String, Location> warps;
  52.  
  53. public List<String> people;
  54.  
  55. public List<String> managers;
  56.  
  57. public ProjectData( String namem) {
  58.  
  59.  
  60. name = namem;
  61.  
  62. /*
  63. name = ((String) config.get("name"));
  64. description = (String) config.get("description");
  65. minutes = ((Double) config.getDouble("minutes"));
  66. head = ((UUID) config.get("head"));
  67. time = ((Long) config.getLong("time"));
  68. percentage = ((Double) config.getDouble("percentage"));
  69. link = ((String) config.get("link"));
  70. people = ((List<String>) config.getList("people"));
  71. managers = ((List<String>) config.getList("managers"));
  72. updated = ((Long) config.getLong("updated"));
  73. */
  74. }
  75.  
  76. public void save(File file) throws IOException {
  77.  
  78. YamlConfiguration config = new YamlConfiguration();
  79.  
  80. config.set("minutes", minutes);
  81. config.set("name", name);
  82. config.set("managers", managers);
  83. config.set("head", head);
  84. config.set("time", time);
  85. config.set("percentage", percentage);
  86. config.set("link", link);
  87. config.set("people", people);
  88. config.set("updated", updated);
  89.  
  90. ConfigurationSection regionSection = config.createSection("regions");
  91. ConfigurationSection warpSection = config.createSection("warps");
  92. for (Map.Entry region : regions.entrySet()) {
  93.  
  94. ConfigurationSection section = regionSection.createSection(region.getKey().toString());
  95. Region r = (Region) region;
  96. r.save(section);
  97.  
  98. }
  99. for (Map.Entry warp : warps.entrySet()) {
  100. ConfigurationSection section = warpSection.createSection(warp.getKey().toString());
  101. Location loc = (Location) warp.getValue();
  102. section.set("x", loc.getX());
  103. section.set("y", loc.getY());
  104. section.set("z", loc.getZ());
  105. section.set("world", loc.getWorld());
  106.  
  107. }
  108.  
  109. config.save(file);
  110. }
  111.  
  112. public Location getLocation(String i) {
  113. return regions.get(i).getLocation();
  114. }
  115.  
  116. public boolean isInside(Location loc, String i) {
  117.  
  118. return regions.get(i).isInside(loc);
  119.  
  120. }
  121.  
  122. public ProjectData(File file) throws IOException, FileNotFoundException, InvalidConfigurationException {
  123. YamlConfiguration config = new YamlConfiguration();
  124.  
  125. config.load(file);
  126. warps.clear();
  127. regions.clear();
  128. name = (String) config.get("name", 0);
  129. description = (String) config.get("description", "No description");
  130. minutes = (Double) config.get("minutes", 0);
  131. head = (UUID) config.get("head", 0);
  132. time = (Long) config.get("time", 0);
  133. percentage = (Double) config.get("percentage", 0);
  134. link = (String) config.get("link", 0);
  135. updated = (Long) config.get("updated", 0);
  136.  
  137. managers = (List<String>) config.getStringList("managers");
  138. people = (List<String>) config.getStringList("people");
  139.  
  140. ConfigurationSection regionSection = config.getConfigurationSection("regions");
  141. ConfigurationSection warpSection = config.getConfigurationSection("warp");
  142. for (String key : regionSection.getKeys(false)) {
  143. ConfigurationSection section = regionSection.getConfigurationSection(key);
  144.  
  145.  
  146. if(SphericalRegion.isValidConfig(config)) {
  147. regions.put(key,
  148. CuboidRegion.load(section));
  149. }
  150. else if(PrismoidRegion.isValidConfig(config)) {
  151. regions.put(key,
  152. PrismoidRegion.load(section));
  153. }
  154. else if(CuboidRegion.isValidConfig(config) || config.contains("xSize")) { // xSize is to notice old data format
  155. regions.put(key,
  156. CuboidRegion.load(section));
  157. }
  158. }
  159. for (String name : warpSection.getKeys(false)) {
  160. ConfigurationSection section = warpSection.getConfigurationSection(name);
  161. Location loc = new Location(Bukkit.getWorld(section.getString("world")), section.getDouble("x"),section.getDouble("y"),section.getDouble("z"));
  162. warps.put(name, loc);
  163.  
  164. }
  165.  
  166. }
  167.  
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement