after a big rewrite and tons of new features, rc1 for 0.3

This commit is contained in:
2021-06-10 22:50:57 -07:00
parent b2dbf53fd1
commit 4f457764eb
37 changed files with 2947 additions and 444 deletions

View File

@@ -0,0 +1,75 @@
package us.camin.regions.config;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import org.bukkit.Location;
import org.bukkit.block.banner.Pattern;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.DyeColor;
import org.bukkit.Color;
import org.bukkit.OfflinePlayer;
import us.camin.regions.Region;
import java.util.UUID;
public class RegionConfiguration implements ConfigurationSerializable {
public int x;
public int y;
public int z;
public int visits;
public int charges;
public boolean isHub;
public List<Pattern> patterns;
public List<UUID> seenBy;
public DyeColor color = DyeColor.YELLOW;
public RegionConfiguration(Region region) {
Location loc = region.location();
x = loc.getBlockX();
y = loc.getBlockY();
z = loc.getBlockZ();
charges = region.charges();
isHub = region.isHub();
visits = region.visits();
patterns = region.bannerPatterns();
color = region.color();
seenBy = region.seenPlayers();
}
public RegionConfiguration(Map<String, Object> confSection) {
x = (Integer)confSection.get("x");
y = (Integer)confSection.getOrDefault("y", -1);
z = (Integer)confSection.get("z");
isHub = (Boolean)confSection.getOrDefault("isHub", false);
visits = (Integer)confSection.getOrDefault("visits", 0);
charges = (Integer)confSection.getOrDefault("charges", 0);
patterns = (List<Pattern>)confSection.getOrDefault("banner", new ArrayList<Pattern>());
color = DyeColor.valueOf((String)confSection.getOrDefault("color", "YELLOW"));
seenBy = new ArrayList<UUID>();
List<String> strList = (List<String>)confSection.getOrDefault("seenBy", new ArrayList<String>());
for(String s : strList) {
seenBy.add(UUID.fromString(s));
}
}
public Map<String, Object> serialize() {
Map<String, Object> ret = new HashMap<>();
ret.put("x", x);
ret.put("y", y);
ret.put("z", z);
ret.put("visits", visits);
ret.put("charges", charges);
ret.put("banner", patterns);
List<String> strList = new ArrayList<String>();
for(UUID uuid : seenBy) {
strList.add(uuid.toString());
}
ret.put("seenBy", strList);
ret.put("color", color.toString());
ret.put("isHub", isHub);
return ret;
}
}

View File

@@ -0,0 +1,26 @@
package us.camin.regions.config;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
public class WorldConfiguration implements ConfigurationSerializable {
public Map<String, RegionConfiguration> regions = new HashMap<>();
public WorldConfiguration(Map<String, Object> confSection) {
Map<String, Object> regionConfigs = (Map<String, Object>)confSection.get("regions");
for(String regionName : regionConfigs.keySet()) {
regions.put(regionName, new RegionConfiguration((Map<String, Object>)regionConfigs.get(regionName)));
}
}
public Map<String, Object> serialize() {
Map<String, Object> ret = new HashMap<>();
Map<String, Object> regionConfigs = new HashMap<>();
for(String regionName : regions.keySet()) {
regionConfigs.put(regionName, regions.get(regionName).serialize());
}
return ret;
}
}