From 57075ee7e645208428bf213759299efcb2df0e90 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Wed, 3 Dec 2014 22:29:51 -0600 Subject: [PATCH] Add handling for UUID owners and members --- .../worldguard/DynmapWorldGuardPlugin.java | 52 +++++++++++++++---- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/dynmap/worldguard/DynmapWorldGuardPlugin.java b/src/main/java/org/dynmap/worldguard/DynmapWorldGuardPlugin.java index 8f68c6f..a8074f8 100644 --- a/src/main/java/org/dynmap/worldguard/DynmapWorldGuardPlugin.java +++ b/src/main/java/org/dynmap/worldguard/DynmapWorldGuardPlugin.java @@ -7,6 +7,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; @@ -30,12 +31,15 @@ import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.BlockVector2D; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.domains.DefaultDomain; +import com.sk89q.worldguard.domains.PlayerDomain; import com.sk89q.worldguard.protection.flags.BooleanFlag; import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.RegionType; +import com.sk89q.worldguard.util.profile.Profile; +import com.sk89q.worldguard.util.profile.cache.ProfileCache; public class DynmapWorldGuardPlugin extends JavaPlugin { private static Logger log; @@ -47,6 +51,7 @@ public class DynmapWorldGuardPlugin extends JavaPlugin { WorldGuardPlugin wg; BooleanFlag boost_flag; int updatesPerTick = 20; + ProfileCache pc; FileConfiguration cfg; MarkerSet set; @@ -108,9 +113,9 @@ public class DynmapWorldGuardPlugin extends JavaPlugin { private String formatInfoWindow(ProtectedRegion region, AreaMarker m) { String v = "
"+infowindow+"
"; v = v.replace("%regionname%", m.getLabel()); - v = v.replace("%playerowners%", region.getOwners().toPlayersString()); + v = v.replace("%playerowners%", region.getOwners().toPlayersString(pc)); v = v.replace("%groupowners%", region.getOwners().toGroupsString()); - v = v.replace("%playermembers%", region.getMembers().toPlayersString()); + v = v.replace("%playermembers%", region.getMembers().toPlayersString(pc)); v = v.replace("%groupmembers%", region.getMembers().toGroupsString()); if(region.getParent() != null) v = v.replace("%parent%", region.getParent().getId()); @@ -157,19 +162,37 @@ public class DynmapWorldGuardPlugin extends JavaPlugin { if(as == null) { /* Check for owner style matches */ if(ownerstyle.isEmpty() != true) { DefaultDomain dd = region.getOwners(); - Set play = dd.getPlayers(); - if(play != null) { - for(String p : play) { + PlayerDomain pd = dd.getPlayerDomain(); + if(pd != null) { + for(String p : pd.getPlayers()) { if(as == null) { as = ownerstyle.get(p.toLowerCase()); + if (as != null) break; + } + } + if (as == null) { + for(UUID uuid : pd.getUniqueIds()) { + as = ownerstyle.get(uuid.toString()); + if (as != null) break; + } + } + if (as == null) { + for(UUID uuid : pd.getUniqueIds()) { + String p = resolveUUID(uuid); + if (p != null) { + as = ownerstyle.get(p.toLowerCase()); + if (as != null) break; + } } } } - Set grp = dd.getGroups(); - if(grp != null) { - for(String p : grp) { - if(as == null) + if (as == null) { + Set grp = dd.getGroups(); + if(grp != null) { + for(String p : grp) { as = ownerstyle.get(p.toLowerCase()); + if (as != null) break; + } } } } @@ -203,6 +226,14 @@ public class DynmapWorldGuardPlugin extends JavaPlugin { } } + private String resolveUUID(UUID uuid) { + Profile p = pc.getIfPresent(uuid); + if (p != null) { + return p.getName(); + } + return null; + } + /* Handle specific region */ private void handleRegion(World world, ProtectedRegion region, Map newmap) { String name = region.getId(); @@ -353,7 +384,8 @@ public class DynmapWorldGuardPlugin extends JavaPlugin { return; } wg = (WorldGuardPlugin)p; - + pc = wg.getProfileCache(); + getServer().getPluginManager().registerEvents(new OurServerListener(), this); registerCustomFlags();