diff --git a/PlotSquared/pom.xml b/PlotSquared/pom.xml index ec123e849..0151f0af6 100644 --- a/PlotSquared/pom.xml +++ b/PlotSquared/pom.xml @@ -6,7 +6,7 @@ com.intellectualcrafters PlotSquared - 2.3.8 + 2.4.0 PlotSquared jar diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java index 2757bf3ae..9e9da3ab9 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java @@ -38,6 +38,7 @@ import com.intellectualcrafters.plot.listeners.*; import com.intellectualcrafters.plot.object.*; import com.intellectualcrafters.plot.util.*; import com.intellectualcrafters.plot.util.Logger.LogLevel; +import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper; import com.intellectualcrafters.plot.uuid.PlotUUIDSaver; import com.intellectualcrafters.plot.uuid.UUIDSaver; import com.sk89q.worldedit.bukkit.WorldEditPlugin; diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/UUIDHandler.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/UUIDHandler.java index 9b328ab08..8a7a0eedb 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/UUIDHandler.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/UUIDHandler.java @@ -27,9 +27,13 @@ import com.google.common.collect.HashBiMap; import com.intellectualcrafters.plot.PlotMain; import com.intellectualcrafters.plot.config.Settings; import com.intellectualcrafters.plot.object.StringWrapper; +import com.intellectualcrafters.plot.uuid.DefaultUUIDWrapper; import com.intellectualcrafters.plot.uuid.NameFetcher; +import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper; import com.intellectualcrafters.plot.uuid.UUIDFetcher; import com.intellectualcrafters.plot.uuid.UUIDSaver; +import com.intellectualcrafters.plot.uuid.UUIDWrapper; + import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/DefaultUUIDWrapper.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/DefaultUUIDWrapper.java new file mode 100644 index 000000000..f5be0b554 --- /dev/null +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/DefaultUUIDWrapper.java @@ -0,0 +1,31 @@ +package com.intellectualcrafters.plot.uuid; + +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +public class DefaultUUIDWrapper extends UUIDWrapper { + + @Override + public UUID getUUID(Player player) { + return player.getUniqueId(); + } + + @Override + public UUID getUUID(OfflinePlayer player) { + return player.getUniqueId(); + } + + @Override + public OfflinePlayer getOfflinePlayer(UUID uuid) { + return Bukkit.getOfflinePlayer(uuid); + } + + @Override + public Player getPlayer(UUID uuid) { + return Bukkit.getPlayer(uuid); + } + +} diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/OfflineUUIDWrapper.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/OfflineUUIDWrapper.java new file mode 100644 index 000000000..d4c4a3eb0 --- /dev/null +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/OfflineUUIDWrapper.java @@ -0,0 +1,55 @@ +package com.intellectualcrafters.plot.uuid; + +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +import com.google.common.base.Charsets; +import com.google.common.collect.BiMap; +import com.intellectualcrafters.plot.object.StringWrapper; +import com.intellectualcrafters.plot.util.UUIDHandler; + +public class OfflineUUIDWrapper extends UUIDWrapper { + + @Override + public UUID getUUID(Player player) { + return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8)); + } + + @Override + public UUID getUUID(OfflinePlayer player) { + return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8)); + } + + @Override + public OfflinePlayer getOfflinePlayer(UUID uuid) { + BiMap map = UUIDHandler.getUuidMap().inverse(); + String name = map.get(uuid).value; + if (name != null) { + return Bukkit.getOfflinePlayer(name); + } + else { + for (OfflinePlayer player : Bukkit.getOfflinePlayers()) { + if (getUUID(player).equals(uuid)) { + return player; + } + } + } + return Bukkit.getOfflinePlayer(uuid.toString()); + } + + @Override + public Player getPlayer(UUID uuid) { + for (Player player : Bukkit.getOnlinePlayers()) { + if (getUUID(player).equals(uuid)) { + return player; + } + } + return null; + } + + + +} diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/UUIDWrapper.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/UUIDWrapper.java new file mode 100644 index 000000000..454e9343f --- /dev/null +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/uuid/UUIDWrapper.java @@ -0,0 +1,16 @@ +package com.intellectualcrafters.plot.uuid; + +import java.util.UUID; + +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +public abstract class UUIDWrapper { + public abstract UUID getUUID(Player player); + + public abstract UUID getUUID(OfflinePlayer player); + + public abstract OfflinePlayer getOfflinePlayer(UUID uuid); + + public abstract Player getPlayer(UUID uuid); +}