1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

WorldGuard und dessen Flags

Dieses Thema im Forum "Programmierung" wurde erstellt von Pappi, 16. April 2014.

  1. Pappi
    Offline

    Pappi Gesperrt

    Registriert seit:
    28. Oktober 2012
    Beiträge:
    141
    Ort:
    H.a.S/NRW/Germany
    Minecraft:
    Pappi / PapaHarni
    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.

    Code (Text):
    1.  
    2. HashMap<String, Location> tmp = new HashMap<>();
    3. for(World w: Bukkit.getWorlds()) {
    4.   RegionManager rm = wg.getGlobalRegionManager().get(w);
    5.   for (Map.Entry<String, ProtectedRegion> e : rm.getRegions().entrySet()) {
    6.     //Prüfe ob Region mit dem angegebenen String startet.
    7.     if(!e.getKey().startsWith(args[0]))
    8.       continue;
    9.                    
    10.     ProtectedRegion pr = e.getValue();
    11.     //Prüfe ob Region schon Member oder Owner hat
    12.     if(pr.hasMembersOrOwners())
    13.       continue;
    14.  
    15.     //Hole Object aus Flag DefaultFlag.TELE_LOC
    16.     Object o = rm.getApplicableRegions(pr).getFlag(DefaultFlag.TELE_LOC);
    17.     if(o == null)
    18.       continue;
    19.    
    20.     //Prüfe ob Object o keine Location              
    21.     if(!(o instanceof Location))
    22.       continue;
    23.  
    24.     //Cast Object zu Location
    25.     Location loc = (Location) o;
    26.     tmp.put(e.getKey(), loc);
    27. }
    28.  
    29. //Arbeite weiter mit tmp....
    30.  
    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 (Text):
    1. HashMap<String, Location> tmp = new HashMap<>();
    2. for(World w: Bukkit.getWorlds()) {
    3.   RegionManager rm = wg.getGlobalRegionManager().get(w);
    4.   for (Map.Entry<String, ProtectedRegion> e : rm.getRegions().entrySet()) {
    5.     //Prüfe ob Region mit dem angegebenen String startet.
    6.     if(!e.getKey().startsWith(args[0]))
    7.       continue;
    8.  
    9.     ProtectedRegion pr = e.getValue();
    10.     //Prüfe ob Region schon Member oder Owner hat
    11.     if(pr.hasMembersOrOwners())
    12.       continue;
    13.  
    14.     //Hole Object aus Flag DefaultFlag.TELE_LOC
    15.     Object o = rm.getApplicableRegions(pr).getFlag(DefaultFlag.TELE_LOC);
    16.     if(o == null)
    17.       continue;
    18.  
    19.     //Prüfe ob Object o keine Location
    20.     if(!(o instanceof com.sk89q.worldedit.Location))
    21.       continue;
    22.  
    23.     com.sk89q.worldedit.Location loc = (com.sk89q.worldedit.Location) o;
    24.     Location l = new Location(Bukkit.getWorld(loc.getWorld().getName()), loc.getPosition().getX(), loc.getPosition().getY(), loc.getPosition().getZ(), loc.getYaw(), loc.getPitch());
    25.     tmp.put(e.getKey(), l);
    26.   }
    27. }
     
    #1
  2. Werbung
    Online

    Werbung

  3. games6471
    Online

    games6471

    Zunächst einmal der Hinweis, dass du nicht wirklich den Typ der Rückgabe bei getFlag() überprüfen musst. Du wirst sowieso ein Location-Objekt bekommen (oder null), da Generics verwendet wurden.

    Könntest du bitte angeben, wie du den Command eingeben hast, da ich gerade deinen Code getestet habe und er einwandfrei funktioniert hat.
     
    #2
  4. Pappi
    Offline

    Pappi Gesperrt

    Registriert seit:
    28. Oktober 2012
    Beiträge:
    141
    Ort:
    H.a.S/NRW/Germany
    Minecraft:
    Pappi / PapaHarni
    Ja danke das Edit sollte nichts anderes heissen als das man es nun weiss und der 2te Code sollte nur die Lösung sein. ;-)
    Da man nun einmal bei Fragen zu einem Problem auch die Lösung des Problemes reinstellt sobald man eine hat. ;-)



    EDIT :
    #close
     
    #3