/
LocationFlagSearchHelper.java
29 lines (25 loc) · 1.24 KB
/
LocationFlagSearchHelper.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.denizenscript.denizen.utilities.flags;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.NamespacedKey;
import org.bukkit.persistence.PersistentDataContainer;
import java.util.List;
import java.util.function.Consumer;
public class LocationFlagSearchHelper {
public static void getFlaggedLocations(Chunk chunk, String flagName, Consumer<Location> handleLocation) {
PersistentDataContainer container = chunk.getPersistentDataContainer();
Location ref = new Location(chunk.getWorld(), 0, 0, 0);
for (NamespacedKey key : container.getKeys()) {
if (key.getNamespace().equals("denizen") && key.getKey().startsWith("flag_tracker_") && key.getKey().endsWith(flagName)) {
List<String> split = CoreUtilities.split(key.getKey(), '_', 6);
if (split.size() == 6 && split.get(5).equals(flagName)) {
ref.setX(Integer.parseInt(split.get(2)));
ref.setY(Integer.parseInt(split.get(3)));
ref.setZ(Integer.parseInt(split.get(4)));
handleLocation.accept(ref);
}
}
}
}
}