Claim.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package me.lethunderhawk.clans.claim;
  2. import org.bukkit.Location;
  3. import java.util.Map;
  4. import java.util.UUID;
  5. public class Claim {
  6. private final UUID clanId; // or clan name if you don’t have IDs
  7. private final String world;
  8. private final int minX, maxX;
  9. private final int minZ, maxZ;
  10. public Claim(UUID clanId, String world, int x1, int x2, int z1, int z2) {
  11. this.clanId = clanId;
  12. this.world = world;
  13. this.minX = Math.min(x1, x2);
  14. this.maxX = Math.max(x1, x2);
  15. this.minZ = Math.min(z1, z2);
  16. this.maxZ = Math.max(z1, z2);
  17. }
  18. public static Claim fromMap(UUID clanId, Map<?, ?> map) {
  19. String world = (String) map.get("world");
  20. if (world == null) return null;
  21. int minX = ((Number) map.get("minX")).intValue();
  22. int maxX = ((Number) map.get("maxX")).intValue();
  23. int minZ = ((Number) map.get("minZ")).intValue();
  24. int maxZ = ((Number) map.get("maxZ")).intValue();
  25. return new Claim(clanId, world, minX, maxX, minZ, maxZ);
  26. }
  27. public boolean contains(Location loc) {
  28. if (!loc.getWorld().getName().equals(world)) return false;
  29. int x = loc.getBlockX();
  30. int z = loc.getBlockZ();
  31. return x >= minX && x <= maxX
  32. && z >= minZ && z <= maxZ;
  33. }
  34. public int getVolume() {
  35. return (maxX - minX + 1)
  36. * (maxZ - minZ + 1);
  37. }
  38. public UUID getClanId(){
  39. return clanId;
  40. }
  41. public String getWorld() {
  42. return world;
  43. }
  44. public int getMinX() {
  45. return minX;
  46. }
  47. public int getMinZ() {
  48. return minZ;
  49. }
  50. public int getMaxX() {
  51. return maxX;
  52. }
  53. public int getMaxZ() {
  54. return maxZ;
  55. }
  56. }