Hallo zusammen,
ich möchte gerne aus den WorldGuard Regionen die Teleport Flag auslesen um diese zu verwenden soweit wie vorhanden.
Hab mir den Code nun wie folgt zusammen gestellt , allerdings scheint die Flag abfrage nicht zu Funktionieren da immer nur kommt das keine GS vorhanden sind.
Weiss jemand wie ich die Flags abrufe so das diese auch anerkannt werden?
Leider bleibt tmp leer.
EDIT:
Ok bei dem Objekt handelt es sich um die WorldEdit Location.
Somit schaut es so aus :
ich möchte gerne aus den WorldGuard Regionen die Teleport Flag auslesen um diese zu verwenden soweit wie vorhanden.
Hab mir den Code nun wie folgt zusammen gestellt , allerdings scheint die Flag abfrage nicht zu Funktionieren da immer nur kommt das keine GS vorhanden sind.
Code:
HashMap<String, Location> tmp = new HashMap<>();
for(World w: Bukkit.getWorlds()) {
RegionManager rm = wg.getGlobalRegionManager().get(w);
for (Map.Entry<String, ProtectedRegion> e : rm.getRegions().entrySet()) {
//Prüfe ob Region mit dem angegebenen String startet.
if(!e.getKey().startsWith(args[0]))
continue;
ProtectedRegion pr = e.getValue();
//Prüfe ob Region schon Member oder Owner hat
if(pr.hasMembersOrOwners())
continue;
//Hole Object aus Flag DefaultFlag.TELE_LOC
Object o = rm.getApplicableRegions(pr).getFlag(DefaultFlag.TELE_LOC);
if(o == null)
continue;
//Prüfe ob Object o keine Location
if(!(o instanceof Location))
continue;
//Cast Object zu Location
Location loc = (Location) o;
tmp.put(e.getKey(), loc);
}
//Arbeite weiter mit tmp....
Weiss jemand wie ich die Flags abrufe so das diese auch anerkannt werden?
Leider bleibt tmp leer.
EDIT:
Ok bei dem Objekt handelt es sich um die WorldEdit Location.
Somit schaut es so aus :
Code:
HashMap<String, Location> tmp = new HashMap<>();
for(World w: Bukkit.getWorlds()) {
RegionManager rm = wg.getGlobalRegionManager().get(w);
for (Map.Entry<String, ProtectedRegion> e : rm.getRegions().entrySet()) {
//Prüfe ob Region mit dem angegebenen String startet.
if(!e.getKey().startsWith(args[0]))
continue;
ProtectedRegion pr = e.getValue();
//Prüfe ob Region schon Member oder Owner hat
if(pr.hasMembersOrOwners())
continue;
//Hole Object aus Flag DefaultFlag.TELE_LOC
Object o = rm.getApplicableRegions(pr).getFlag(DefaultFlag.TELE_LOC);
if(o == null)
continue;
//Prüfe ob Object o keine Location
if(!(o instanceof com.sk89q.worldedit.Location))
continue;
com.sk89q.worldedit.Location loc = (com.sk89q.worldedit.Location) o;
Location l = new Location(Bukkit.getWorld(loc.getWorld().getName()), loc.getPosition().getX(), loc.getPosition().getY(), loc.getPosition().getZ(), loc.getYaw(), loc.getPitch());
tmp.put(e.getKey(), l);
}
}
Zuletzt bearbeitet: