This commit is contained in:
boy0001 2015-02-21 23:52:50 +11:00
parent 406ae58391
commit dc025839f5
29 changed files with 167 additions and 111 deletions

View File

@ -57,7 +57,7 @@ public class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
@EventHandler @EventHandler
public static void worldLoad(final WorldLoadEvent event) { public static void worldLoad(final WorldLoadEvent event) {
UUIDHandler.cacheAll(); UUIDHandler.cacheAll(event.getWorld().getName());
} }
public static boolean checkVersion(final int major, final int minor, final int minor2) { public static boolean checkVersion(final int major, final int minor, final int minor2) {

View File

@ -32,6 +32,7 @@ import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.ClusterManager; import com.intellectualcrafters.plot.util.ClusterManager;
import com.intellectualcrafters.plot.util.EconHandler;
import com.intellectualcrafters.plot.util.MainUtil; import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.Permissions; import com.intellectualcrafters.plot.util.Permissions;
@ -138,7 +139,7 @@ public class Auto extends SubCommand {
sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + cost); sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + cost);
return true; return true;
} }
EconHandler.withdrawPlayer(plr.getName(), cost); EconHandler.withdrawPlayer(plr, cost);
sendMessage(plr, C.REMOVED_BALANCE, cost + ""); sendMessage(plr, C.REMOVED_BALANCE, cost + "");
} }
} }

View File

@ -70,13 +70,14 @@ public class Buy extends SubCommand {
if (plot == null) { if (plot == null) {
return sendMessage(plr, C.NOT_IN_PLOT); return sendMessage(plr, C.NOT_IN_PLOT);
} }
if (BukkitPlayerFunctions.getPlayerPlotCount(world, plr) >= BukkitPlayerFunctions.getAllowedPlots(plr)) { int currentPlots = MainUtil.getPlayerPlotCount(world, plr);
if (currentPlots >= MainUtil.getAllowedPlots(plr, currentPlots)) {
return sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS); return sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
} }
if (!plot.hasOwner()) { if (!plot.hasOwner()) {
return sendMessage(plr, C.PLOT_UNOWNED); return sendMessage(plr, C.PLOT_UNOWNED);
} }
if (plot.owner.equals(UUIDHandler.getUUID(plr))) { if (plot.owner.equals(plr.getUUID())) {
return sendMessage(plr, C.CANNOT_BUY_OWN); return sendMessage(plr, C.CANNOT_BUY_OWN);
} }
final Flag flag = FlagManager.getPlotFlag(plot, "price"); final Flag flag = FlagManager.getPlotFlag(plot, "price");
@ -86,8 +87,8 @@ public class Buy extends SubCommand {
double initPrice = (double) flag.getValue(); double initPrice = (double) flag.getValue();
double price = initPrice; double price = initPrice;
final PlotId id = plot.id; final PlotId id = plot.id;
final PlotId id2 = BukkitPlayerFunctions.getTopPlot(world, plot).id; final PlotId id2 = MainUtil.getTopPlot(world, plot).id;
final int size = BukkitPlayerFunctions.getPlotSelectionIds(id, id2).size(); final int size = MainUtil.getPlotSelectionIds(id, id2).size();
final PlotWorld plotworld = PlotSquared.getPlotWorld(world); final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
if (plotworld.USE_ECONOMY) { if (plotworld.USE_ECONOMY) {
price += plotworld.PLOT_PRICE * size; price += plotworld.PLOT_PRICE * size;
@ -100,14 +101,14 @@ public class Buy extends SubCommand {
} }
EconHandler.withdrawPlayer(plr, price); EconHandler.withdrawPlayer(plr, price);
sendMessage(plr, C.REMOVED_BALANCE, price + ""); sendMessage(plr, C.REMOVED_BALANCE, price + "");
economy.depositPlayer(UUIDHandler.uuidWrapper.getOfflinePlayer(plot.owner), initPrice); EconHandler.depositPlayer(UUIDHandler.uuidWrapper.getOfflinePlayer(plot.owner), initPrice);
final Player owner = UUIDHandler.uuidWrapper.getPlayer(plot.owner); final Player owner = UUIDHandler.uuidWrapper.getPlayer(plot.owner);
if (owner != null) { if (owner != null) {
sendMessage(plr, C.PLOT_SOLD, plot.id + "", plr.getName(), initPrice + ""); sendMessage(plr, C.PLOT_SOLD, plot.id + "", plr.getName(), initPrice + "");
} }
FlagManager.removePlotFlag(plot, "price"); FlagManager.removePlotFlag(plot, "price");
} }
plot.owner = UUIDHandler.getUUID(plr); plot.owner = plr.getUUID();
DBFunc.setOwner(plot, plot.owner); DBFunc.setOwner(plot, plot.owner);
MainUtil.sendMessage(plr, C.CLAIMED); MainUtil.sendMessage(plr, C.CLAIMED);
return true; return true;

View File

@ -67,7 +67,7 @@ public class Clear extends SubCommand {
return sendMessage(plr, C.NOT_IN_PLOT); return sendMessage(plr, C.NOT_IN_PLOT);
} }
final Plot plot = MainUtil.getPlot(loc); final Plot plot = MainUtil.getPlot(loc);
if (!BukkitPlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (!MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
return sendMessage(plr, C.UNLINK_REQUIRED); return sendMessage(plr, C.UNLINK_REQUIRED);
} }
if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.clear")) { if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.clear")) {

View File

@ -97,7 +97,7 @@ public class DebugClaimTest extends SubCommand {
final PlotManager manager = PlotSquared.getPlotManager(world); final PlotManager manager = PlotSquared.getPlotManager(world);
final PlotWorld plotworld = PlotSquared.getPlotWorld(world); final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
final ArrayList<Plot> plots = new ArrayList<>(); final ArrayList<Plot> plots = new ArrayList<>();
for (final PlotId id : BukkitPlayerFunctions.getPlotSelectionIds(min, max)) { for (final PlotId id : MainUtil.getPlotSelectionIds(min, max)) {
final Plot plot = MainUtil.getPlot(world, id); final Plot plot = MainUtil.getPlot(world, id);
final boolean contains = PlotSquared.getPlots(world).containsKey(plot.id); final boolean contains = PlotSquared.getPlots(world).containsKey(plot.id);
if (contains) { if (contains) {

View File

@ -85,7 +85,7 @@ public class DebugClear extends SubCommand {
return sendMessage(plr, C.NOT_IN_PLOT); return sendMessage(plr, C.NOT_IN_PLOT);
} }
final Plot plot = MainUtil.getPlot(loc); final Plot plot = MainUtil.getPlot(loc);
if (!BukkitPlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (!MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
return sendMessage(plr, C.UNLINK_REQUIRED); return sendMessage(plr, C.UNLINK_REQUIRED);
} }
if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.debugclear")) { if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.debugclear")) {

View File

@ -43,7 +43,7 @@ public class Delete extends SubCommand {
return !sendMessage(plr, C.NOT_IN_PLOT); return !sendMessage(plr, C.NOT_IN_PLOT);
} }
final Plot plot = MainUtil.getPlot(loc); final Plot plot = MainUtil.getPlot(loc);
if (!BukkitPlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (!MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
return !sendMessage(plr, C.UNLINK_REQUIRED); return !sendMessage(plr, C.UNLINK_REQUIRED);
} }
if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.uuidWrapper.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.delete")) { if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.uuidWrapper.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.delete")) {

View File

@ -163,8 +163,8 @@ public class Info extends SubCommand {
private String format(String info, final World world, final Plot plot, final Player player) { private String format(String info, final World world, final Plot plot, final Player player) {
final PlotId id = plot.id; final PlotId id = plot.id;
final PlotId id2 = BukkitPlayerFunctions.getTopPlot(world, plot).id; final PlotId id2 = MainUtil.getTopPlot(world, plot).id;
final int num = BukkitPlayerFunctions.getPlotSelectionIds(id, id2).size(); final int num = MainUtil.getPlotSelectionIds(id, id2).size();
final String alias = plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : "none"; final String alias = plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : "none";
final String biome = getBiomeAt(plot).toString(); final String biome = getBiomeAt(plot).toString();
final String helpers = getPlayerList(plot.helpers); final String helpers = getPlayerList(plot.helpers);

View File

@ -107,7 +107,7 @@ public class Merge extends SubCommand {
} }
final World world = plr.getWorld(); final World world = plr.getWorld();
PlotId bot = BukkitPlayerFunctions.getBottomPlot(world, plot).id; PlotId bot = BukkitPlayerFunctions.getBottomPlot(world, plot).id;
PlotId top = BukkitPlayerFunctions.getTopPlot(world, plot).id; PlotId top = MainUtil.getTopPlot(world, plot).id;
ArrayList<PlotId> plots; ArrayList<PlotId> plots;
switch (direction) { switch (direction) {
case 0: // north = -y case 0: // north = -y
@ -129,8 +129,8 @@ public class Merge extends SubCommand {
final PlotId topId = plots.get(plots.size() - 1); final PlotId topId = plots.get(plots.size() - 1);
final PlotId bot1 = BukkitPlayerFunctions.getBottomPlot(world, MainUtil.getPlot(world, botId)).id; final PlotId bot1 = BukkitPlayerFunctions.getBottomPlot(world, MainUtil.getPlot(world, botId)).id;
final PlotId bot2 = BukkitPlayerFunctions.getBottomPlot(world, MainUtil.getPlot(world, topId)).id; final PlotId bot2 = BukkitPlayerFunctions.getBottomPlot(world, MainUtil.getPlot(world, topId)).id;
final PlotId top1 = BukkitPlayerFunctions.getTopPlot(world, MainUtil.getPlot(world, topId)).id; final PlotId top1 = MainUtil.getTopPlot(world, MainUtil.getPlot(world, topId)).id;
final PlotId top2 = BukkitPlayerFunctions.getTopPlot(world, MainUtil.getPlot(world, botId)).id; final PlotId top2 = MainUtil.getTopPlot(world, MainUtil.getPlot(world, botId)).id;
bot = new PlotId(Math.min(bot1.x, bot2.x), Math.min(bot1.y, bot2.y)); bot = new PlotId(Math.min(bot1.x, bot2.x), Math.min(bot1.y, bot2.y));
top = new PlotId(Math.max(top1.x, top2.x), Math.max(top1.y, top2.y)); top = new PlotId(Math.max(top1.x, top2.x), Math.max(top1.y, top2.y));
plots = BukkitPlayerFunctions.getMaxPlotSelectionIds(world, bot, top); plots = BukkitPlayerFunctions.getMaxPlotSelectionIds(world, bot, top);

View File

@ -43,7 +43,7 @@ public class Paste extends SubCommand {
MainUtil.sendMessage(plr, C.NO_PLOT_PERMS); MainUtil.sendMessage(plr, C.NO_PLOT_PERMS);
return false; return false;
} }
if (!BukkitPlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (!MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
MainUtil.sendMessage(plr, C.UNLINK_REQUIRED); MainUtil.sendMessage(plr, C.UNLINK_REQUIRED);
return false; return false;
} }

View File

@ -66,8 +66,8 @@ public class SetOwner extends SubCommand {
} }
final World world = plr.getWorld(); final World world = plr.getWorld();
final PlotId bot = BukkitPlayerFunctions.getBottomPlot(world, plot).id; final PlotId bot = BukkitPlayerFunctions.getBottomPlot(world, plot).id;
final PlotId top = BukkitPlayerFunctions.getTopPlot(world, plot).id; final PlotId top = MainUtil.getTopPlot(world, plot).id;
final ArrayList<PlotId> plots = BukkitPlayerFunctions.getPlotSelectionIds(bot, top); final ArrayList<PlotId> plots = MainUtil.getPlotSelectionIds(bot, top);
for (final PlotId id : plots) { for (final PlotId id : plots) {
final Plot current = PlotSquared.getPlots(world).get(id); final Plot current = PlotSquared.getPlots(world).get(id);
final UUID uuid = getUUID(args[0]); final UUID uuid = getUUID(args[0]);

View File

@ -45,7 +45,7 @@ public class Unclaim extends SubCommand {
return !sendMessage(plr, C.NOT_IN_PLOT); return !sendMessage(plr, C.NOT_IN_PLOT);
} }
final Plot plot = MainUtil.getPlot(loc); final Plot plot = MainUtil.getPlot(loc);
if (!BukkitPlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (!MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
return !sendMessage(plr, C.UNLINK_REQUIRED); return !sendMessage(plr, C.UNLINK_REQUIRED);
} }
if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.unclaim")) { if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.unclaim")) {

View File

@ -58,7 +58,7 @@ public class Unlink extends SubCommand {
if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.unlink")) { if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.unlink")) {
return sendMessage(plr, C.NO_PLOT_PERMS); return sendMessage(plr, C.NO_PLOT_PERMS);
} }
if (BukkitPlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) { if (MainUtil.getTopPlot(plr.getWorld(), plot).equals(BukkitPlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
return sendMessage(plr, C.UNLINK_IMPOSSIBLE); return sendMessage(plr, C.UNLINK_IMPOSSIBLE);
} }
final World world = plr.getWorld(); final World world = plr.getWorld();
@ -82,8 +82,8 @@ public class Unlink extends SubCommand {
public static boolean unlinkPlot(final World world, final Plot plot) { public static boolean unlinkPlot(final World world, final Plot plot) {
final PlotId pos1 = BukkitPlayerFunctions.getBottomPlot(world, plot).id; final PlotId pos1 = BukkitPlayerFunctions.getBottomPlot(world, plot).id;
final PlotId pos2 = BukkitPlayerFunctions.getTopPlot(world, plot).id; final PlotId pos2 = MainUtil.getTopPlot(world, plot).id;
final ArrayList<PlotId> ids = BukkitPlayerFunctions.getPlotSelectionIds(pos1, pos2); final ArrayList<PlotId> ids = MainUtil.getPlotSelectionIds(pos1, pos2);
final PlotUnlinkEvent event = new PlotUnlinkEvent(world, ids); final PlotUnlinkEvent event = new PlotUnlinkEvent(world, ids);
Bukkit.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {

View File

@ -78,14 +78,14 @@ public class WorldEditListener implements Listener {
if ((plot == null) || (plot.owner == null)) { if ((plot == null) || (plot.owner == null)) {
return; return;
} }
final Player player = UUIDHandler.uuidWrapper.getPlayer(plot.owner); final PlotPlayer player = UUIDHandler.getPlayer(plot.owner);
if (player == null) { if (player == null) {
return; return;
} }
if (!world.equals(player.getWorld().getName())) { if (!world.equals(player.getLocation().getWorld())) {
return; return;
} }
if (Permissions.hasPermission(BukkitUtil.getPlayer(player), "plots.worldedit.bypass")) { if (Permissions.hasPermission(player, "plots.worldedit.bypass")) {
return; return;
} }
PWE.setNoMask(player); PWE.setNoMask(player);

View File

@ -0,0 +1,38 @@
package com.intellectualcrafters.plot.object;
import java.util.UUID;
import org.bukkit.OfflinePlayer;
public class BukkitOfflinePlayer implements OfflinePlotPlayer {
public final OfflinePlayer player;
/**
* Please do not use this method. Instead use BukkitUtil.getPlayer(Player), as it caches player objects.
* @param player
*/
public BukkitOfflinePlayer(OfflinePlayer player) {
this.player = player;
}
@Override
public UUID getUUID() {
return player.getUniqueId();
}
@Override
public long getLastPlayed() {
return player.getLastPlayed();
}
@Override
public boolean isOnline() {
return player.isOnline();
}
@Override
public String getName() {
return player.getName();
}
}

View File

@ -33,7 +33,7 @@ public class BukkitPlayer implements PlotPlayer {
@Override @Override
public UUID getUUID() { public UUID getUUID() {
if (this.uuid == null) { if (this.uuid == null) {
this.uuid = UUIDHandler.getUUID(this.player); this.uuid = UUIDHandler.getUUID(this);
} }
return this.uuid; return this.uuid;
} }

View File

@ -13,6 +13,7 @@ import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/** /**
@ -50,7 +51,7 @@ public class InfoInventory implements InventoryHolder {
} }
public InfoInventory build() { public InfoInventory build() {
UUID uuid = UUIDHandler.getUUID(player); UUID uuid = UUIDHandler.getUUID(BukkitUtil.getPlayer(player));
final ItemStack generalInfo = getItem(Material.EMERALD, "&cPlot Info", "&cID: &6" + this.plot.getId().toString(), "&cOwner: &6" + getName(this.plot.getOwner()), "&cAlias: &6" + this.plot.settings.getAlias(), "&cBiome: &6" + this.plot.settings.getBiome().toString().replaceAll("_", "").toLowerCase(), "&cCan Build: &6" + this.plot.isAdded(uuid), "&cIs Denied: &6" + this.plot.isDenied(uuid)); final ItemStack generalInfo = getItem(Material.EMERALD, "&cPlot Info", "&cID: &6" + this.plot.getId().toString(), "&cOwner: &6" + getName(this.plot.getOwner()), "&cAlias: &6" + this.plot.settings.getAlias(), "&cBiome: &6" + this.plot.settings.getBiome().toString().replaceAll("_", "").toLowerCase(), "&cCan Build: &6" + this.plot.isAdded(uuid), "&cIs Denied: &6" + this.plot.isDenied(uuid));
final ItemStack helpers = getItem(Material.EMERALD, "&cHelpers", "&cAmount: &6" + this.plot.helpers.size(), "&8Click to view a list of the plot helpers"); final ItemStack helpers = getItem(Material.EMERALD, "&cHelpers", "&cAmount: &6" + this.plot.helpers.size(), "&8Click to view a list of the plot helpers");
final ItemStack trusted = getItem(Material.EMERALD, "&cTrusted", "&cAmount: &6" + this.plot.trusted.size(), "&8Click to view a list of trusted players"); final ItemStack trusted = getItem(Material.EMERALD, "&cTrusted", "&cAmount: &6" + this.plot.trusted.size(), "&8Click to view a list of trusted players");

View File

@ -0,0 +1,18 @@
package com.intellectualcrafters.plot.object;
import java.util.UUID;
/**
* Created 2015-02-20 for PlotSquared
*
* @author Citymonstret
*/
public interface OfflinePlotPlayer {
public UUID getUUID();
public long getLastPlayed();
public boolean isOnline();
public String getName();
}

View File

@ -147,7 +147,7 @@ public class Plot implements Cloneable {
* @return true if the player is added as a helper or is the owner * @return true if the player is added as a helper or is the owner
*/ */
public boolean isAdded(final UUID uuid) { public boolean isAdded(final UUID uuid) {
return ((this.helpers != null) && this.helpers.contains(DBFunc.everyone)) || ((this.helpers != null) && this.helpers.contains(uuid)) || ((this.owner != null) && this.owner.equals(uuid)) || ((this.owner != null) && (this.trusted != null) && (UUIDHandler.uuidWrapper.getPlayer(this.owner) != null) && (this.trusted.contains(uuid) || this.trusted.contains(DBFunc.everyone))); return ((this.helpers != null) && this.helpers.contains(DBFunc.everyone)) || ((this.helpers != null) && this.helpers.contains(uuid)) || ((this.owner != null) && this.owner.equals(uuid)) || ((this.owner != null) && (this.trusted != null) && (UUIDHandler.getPlayer(this.owner) != null) && (this.trusted.contains(uuid) || this.trusted.contains(DBFunc.everyone)));
} }
/** /**

View File

@ -22,6 +22,7 @@ import com.intellectualcrafters.plot.object.PlotCluster;
import com.intellectualcrafters.plot.object.PlotClusterId; import com.intellectualcrafters.plot.object.PlotClusterId;
import com.intellectualcrafters.plot.object.PlotId; import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotManager; import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil; import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
import com.intellectualcrafters.plot.util.bukkit.SetBlockManager; import com.intellectualcrafters.plot.util.bukkit.SetBlockManager;
@ -258,9 +259,9 @@ public class ClusterManager {
@Override @Override
public void run() { public void run() {
ClusterManager.regenerating.remove(cluster.world + ":" + cluster.getName()); ClusterManager.regenerating.remove(cluster.world + ":" + cluster.getName());
final Player owner = UUIDHandler.uuidWrapper.getPlayer(cluster.owner); final PlotPlayer owner = UUIDHandler.getPlayer(cluster.owner);
if (owner != null) { if (owner != null) {
MainUtil.sendMessage(BukkitUtil.getPlayer(owner), C.CLEARING_DONE); MainUtil.sendMessage(owner, C.CLEARING_DONE);
} }
} }
}, (interval * chunks.size()) + 20); }, (interval * chunks.size()) + 20);

View File

@ -10,6 +10,10 @@ public class EconHandler {
} }
public static void withdrawPlayer(PlotPlayer player, double amount) { public static void withdrawPlayer(PlotPlayer player, double amount) {
EconHandler.withdrawPlayer(player.getName(), amount); PlotSquared.economy.withdrawPlayer(player.getName(), amount);
}
public static void depositPlayer(PlotPlayer player, double amount) {
PlotSquared.economy.depositPlayer(player.getName(), amount);
} }
} }

View File

@ -19,8 +19,10 @@ import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings; import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.database.DBFunc; import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.events.PlotDeleteEvent; import com.intellectualcrafters.plot.events.PlotDeleteEvent;
import com.intellectualcrafters.plot.object.BukkitOfflinePlayer;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotManager; import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil; import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
@ -86,7 +88,7 @@ public class ExpireManager {
} }
final Plot plot = plots.iterator().next(); final Plot plot = plots.iterator().next();
if (plot.owner != null) { if (plot.owner != null) {
if (UUIDHandler.uuidWrapper.getPlayer(plot.owner) != null) { if (UUIDHandler.getPlayer(plot.owner) != null) {
expiredPlots.get(world).remove(plot); expiredPlots.get(world).remove(plot);
return; return;
} }
@ -102,9 +104,9 @@ public class ExpireManager {
return; return;
} }
for (final UUID helper : plot.helpers) { for (final UUID helper : plot.helpers) {
final Player player = UUIDHandler.uuidWrapper.getPlayer(helper); final PlotPlayer player = UUIDHandler.getPlayer(helper);
if (player != null) { if (player != null) {
MainUtil.sendMessage(BukkitUtil.getPlayer(player), C.PLOT_REMOVED_HELPER, plot.id.toString()); MainUtil.sendMessage(player, C.PLOT_REMOVED_HELPER, plot.id.toString());
} }
} }
final PlotManager manager = PlotSquared.getPlotManager(world); final PlotManager manager = PlotSquared.getPlotManager(world);
@ -165,13 +167,13 @@ public class ExpireManager {
if (keep.contains(uuid)) { if (keep.contains(uuid)) {
continue; continue;
} }
final Player player = UUIDHandler.uuidWrapper.getPlayer(uuid); final PlotPlayer player = UUIDHandler.getPlayer(uuid);
if (player != null) { if (player != null) {
keep.add(uuid); keep.add(uuid);
continue; continue;
} }
final OfflinePlayer op = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid); final BukkitOfflinePlayer op = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid);
if ((op == null) || !op.hasPlayedBefore()) { if ((op == null) || op.getLastPlayed() == 0) {
continue; continue;
} }
long last = op.getLastPlayed(); long last = op.getLastPlayed();
@ -184,7 +186,7 @@ public class ExpireManager {
if (BukkitMain.checkVersion(1, 7, 5)) { if (BukkitMain.checkVersion(1, 7, 5)) {
foldername = "playerdata"; foldername = "playerdata";
try { try {
filename = op.getUniqueId() + ".dat"; filename = op.getUUID() + ".dat";
} catch (final Throwable e) { } catch (final Throwable e) {
filename = uuid.toString() + ".dat"; filename = uuid.toString() + ".dat";
} }

View File

@ -35,6 +35,7 @@ import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId; import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.EconHandler;
import com.intellectualcrafters.plot.util.MainUtil; import com.intellectualcrafters.plot.util.MainUtil;
/** /**
@ -88,7 +89,7 @@ public class BukkitPlayerFunctions {
MainUtil.sendMessage(BukkitUtil.getPlayer(plr), C.CANNOT_AFFORD_MERGE, "" + cost); MainUtil.sendMessage(BukkitUtil.getPlayer(plr), C.CANNOT_AFFORD_MERGE, "" + cost);
return false; return false;
} }
EconHandler.withdrawPlayer(plr, cost); EconHandler.withdrawPlayer(BukkitUtil.getPlayer(plr), cost);
MainUtil.sendMessage(BukkitUtil.getPlayer(plr), C.REMOVED_BALANCE, cost + ""); MainUtil.sendMessage(BukkitUtil.getPlayer(plr), C.REMOVED_BALANCE, cost + "");
} }
} }
@ -99,11 +100,11 @@ public class BukkitPlayerFunctions {
if (uuid == null) { if (uuid == null) {
return "unknown"; return "unknown";
} }
final OfflinePlayer plr = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid); final String name = UUIDHandler.getName(uuid);
if (!plr.hasPlayedBefore()) { if (name == null) {
return "unknown"; return "unknown";
} }
return plr.getName(); return name;
} }
/** /**

View File

@ -27,7 +27,6 @@ public class BukkitUtil extends BlockManager {
private static String lastString = null; private static String lastString = null;
private static World lastWorld = null; private static World lastWorld = null;
private static HashMap<String, PlotPlayer> players = new HashMap<>();
private static Player lastPlayer = null; private static Player lastPlayer = null;
private static PlotPlayer lastPlotPlayer = null; private static PlotPlayer lastPlotPlayer = null;
@ -36,7 +35,7 @@ public class BukkitUtil extends BlockManager {
lastPlayer = null; lastPlayer = null;
lastPlotPlayer = null; lastPlotPlayer = null;
} }
players.remove(plr); UUIDHandler.players.remove(plr);
} }
public static PlotPlayer getPlayer(Player player) { public static PlotPlayer getPlayer(Player player) {
@ -44,7 +43,7 @@ public class BukkitUtil extends BlockManager {
return lastPlotPlayer; return lastPlotPlayer;
} }
lastPlotPlayer = new BukkitPlayer(player); lastPlotPlayer = new BukkitPlayer(player);
players.put(lastPlotPlayer.getName(), lastPlotPlayer); UUIDHandler.players.put(lastPlotPlayer.getName(), lastPlotPlayer);
lastPlayer = player; lastPlayer = player;
return lastPlotPlayer; return lastPlotPlayer;
} }

View File

@ -86,13 +86,8 @@ public class PWE {
} }
} }
public static boolean hasMask(final Player p) { public static boolean hasMask(final PlotPlayer p) {
LocalSession s; LocalSession s = WorldEdit.getInstance().getSession(p.getName());
if (PlotSquared.worldEdit == null) {
s = WorldEdit.getInstance().getSession(p.getName());
} else {
s = PlotSquared.worldEdit.getSession(p);
}
return !noMask(s); return !noMask(s);
} }
@ -101,14 +96,9 @@ public class PWE {
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public static void setNoMask(final Player p) { public static void setNoMask(final PlotPlayer p) {
try { try {
LocalSession s; LocalSession s = WorldEdit.getInstance().getSession(p.getName());
if (PlotSquared.worldEdit == null) {
s = WorldEdit.getInstance().getSession(p.getName());
} else {
s = PlotSquared.worldEdit.getSession(p);
}
final com.sk89q.worldedit.bukkit.BukkitPlayer plr = PlotSquared.worldEdit.wrapPlayer(((BukkitPlayer) p).player); final com.sk89q.worldedit.bukkit.BukkitPlayer plr = PlotSquared.worldEdit.wrapPlayer(((BukkitPlayer) p).player);
final Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69); final Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69);
s.setMask(new RegionMask(new CuboidRegion(plr.getWorld(), p1, p2))); s.setMask(new RegionMask(new CuboidRegion(plr.getWorld(), p1, p2)));

View File

@ -6,16 +6,14 @@ import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import com.google.common.collect.BiMap; import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap; import com.google.common.collect.HashBiMap;
import com.intellectualcrafters.plot.PlotSquared; import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C; import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings; import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.database.DBFunc; import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.object.BukkitOfflinePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.StringWrapper; import com.intellectualcrafters.plot.object.StringWrapper;
import com.intellectualcrafters.plot.uuid.DefaultUUIDWrapper; import com.intellectualcrafters.plot.uuid.DefaultUUIDWrapper;
import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper; import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper;
@ -24,6 +22,8 @@ import com.intellectualcrafters.plot.uuid.UUIDWrapper;
public class UUIDHandler { public class UUIDHandler {
public static boolean CACHED = false; public static boolean CACHED = false;
public static UUIDWrapper uuidWrapper = null; public static UUIDWrapper uuidWrapper = null;
public static HashMap<String, PlotPlayer> players = new HashMap<>();
/** /**
* Map containing names and UUIDs * Map containing names and UUIDs
* *
@ -77,14 +77,14 @@ public class UUIDHandler {
return uuidMap.containsKey(name); return uuidMap.containsKey(name);
} }
public static void cacheAll() { public static void cacheAll(String world) {
if (CACHED) { if (CACHED) {
return; return;
} }
PlotSquared.log(C.PREFIX.s() + "&6Starting player data caching"); PlotSquared.log(C.PREFIX.s() + "&6Starting player data caching");
UUIDHandler.CACHED = true; UUIDHandler.CACHED = true;
final HashSet<String> worlds = new HashSet<>(); final HashSet<String> worlds = new HashSet<>();
worlds.add(Bukkit.getWorlds().get(0).getName()); worlds.add(world);
worlds.add("world"); worlds.add("world");
final HashSet<UUID> uuids = new HashSet<>(); final HashSet<UUID> uuids = new HashSet<>();
final HashSet<String> names = new HashSet<>(); final HashSet<String> names = new HashSet<>();
@ -125,7 +125,7 @@ public class UUIDHandler {
final UUIDWrapper wrapper = new DefaultUUIDWrapper(); final UUIDWrapper wrapper = new DefaultUUIDWrapper();
for (UUID uuid : uuids) { for (UUID uuid : uuids) {
try { try {
final OfflinePlayer player = wrapper.getOfflinePlayer(uuid); final BukkitOfflinePlayer player = wrapper.getOfflinePlayer(uuid);
uuid = UUIDHandler.uuidWrapper.getUUID(player); uuid = UUIDHandler.uuidWrapper.getUUID(player);
final StringWrapper name = new StringWrapper(player.getName()); final StringWrapper name = new StringWrapper(player.getName());
add(name, uuid); add(name, uuid);
@ -134,8 +134,7 @@ public class UUIDHandler {
} }
} }
for (final String name : names) { for (final String name : names) {
final OfflinePlayer player = Bukkit.getOfflinePlayer(name); final UUID uuid = uuidWrapper.getUUID(name);
final UUID uuid = UUIDHandler.uuidWrapper.getUUID(player);
final StringWrapper nameWrap = new StringWrapper(name); final StringWrapper nameWrap = new StringWrapper(name);
add(nameWrap, uuid); add(nameWrap, uuid);
} }
@ -144,11 +143,11 @@ public class UUIDHandler {
PlotSquared.log(C.PREFIX.s() + "&6Cached a total of: " + UUIDHandler.uuidMap.size() + " UUIDs"); PlotSquared.log(C.PREFIX.s() + "&6Cached a total of: " + UUIDHandler.uuidMap.size() + " UUIDs");
} }
public static UUID getUUID(final Player player) { public static UUID getUUID(final PlotPlayer player) {
return UUIDHandler.uuidWrapper.getUUID(player); return UUIDHandler.uuidWrapper.getUUID(player);
} }
public static UUID getUUID(final OfflinePlayer player) { public static UUID getUUID(final BukkitOfflinePlayer player) {
return UUIDHandler.uuidWrapper.getUUID(player); return UUIDHandler.uuidWrapper.getUUID(player);
} }
@ -157,7 +156,7 @@ public class UUIDHandler {
return null; return null;
} }
// check online // check online
final Player player = uuidWrapper.getPlayer(uuid); final PlotPlayer player = UUIDHandler.getPlayer(uuid);
if (player != null) { if (player != null) {
return player.getName(); return player.getName();
} }
@ -169,16 +168,27 @@ public class UUIDHandler {
return null; return null;
} }
public static PlotPlayer getPlayer(UUID uuid) {
for (PlotPlayer player : players.values()) {
if (player.getUUID().equals(uuid)) {
return player;
}
}
return null;
}
public static PlotPlayer getPlayer(String name) {
return players.get(name);
}
public static UUID getUUID(final String name) { public static UUID getUUID(final String name) {
if ((name == null) || (name.length() == 0)) { if ((name == null) || (name.length() == 0)) {
return null; return null;
} }
// check online // check online
final Player player = Bukkit.getPlayer(name); final PlotPlayer player = getPlayer(name);
if (player != null) { if (player != null) {
final UUID uuid = UUIDHandler.uuidWrapper.getUUID(player); return player.getUUID();
add(new StringWrapper(name), uuid);
return uuid;
} }
// check cache // check cache
final StringWrapper wrap = new StringWrapper(name); final StringWrapper wrap = new StringWrapper(name);

View File

@ -3,28 +3,24 @@ package com.intellectualcrafters.plot.uuid;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import com.intellectualcrafters.plot.object.BukkitOfflinePlayer;
import org.bukkit.entity.Player; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.BukkitPlayer;;
public class DefaultUUIDWrapper extends UUIDWrapper { public class DefaultUUIDWrapper extends UUIDWrapper {
@Override @Override
public UUID getUUID(final Player player) { public UUID getUUID(final PlotPlayer player) {
return player.getUniqueId(); return ((BukkitPlayer) player).player.getUniqueId();
} }
@Override @Override
public UUID getUUID(final OfflinePlayer player) { public UUID getUUID(final BukkitOfflinePlayer player) {
return player.getUniqueId(); return player.getUUID();
} }
@Override @Override
public OfflinePlayer getOfflinePlayer(final UUID uuid) { public BukkitOfflinePlayer getOfflinePlayer(final UUID uuid) {
return Bukkit.getOfflinePlayer(uuid); return new BukkitOfflinePlayer(Bukkit.getOfflinePlayer(uuid));
}
@Override
public Player getPlayer(final UUID uuid) {
return Bukkit.getPlayer(uuid);
} }
@Override @Override

View File

@ -11,6 +11,8 @@ import org.bukkit.entity.Player;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import com.google.common.collect.BiMap; import com.google.common.collect.BiMap;
import com.intellectualcrafters.plot.object.BukkitOfflinePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.StringWrapper; import com.intellectualcrafters.plot.object.StringWrapper;
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler; import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
@ -29,17 +31,21 @@ public class OfflineUUIDWrapper extends UUIDWrapper {
} }
@Override @Override
public UUID getUUID(final Player player) { public UUID getUUID(final PlotPlayer player) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8)); return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8));
} }
@Override @Override
public UUID getUUID(final BukkitOfflinePlayer player) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8));
}
public UUID getUUID(final OfflinePlayer player) { public UUID getUUID(final OfflinePlayer player) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8)); return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8));
} }
@Override @Override
public OfflinePlayer getOfflinePlayer(final UUID uuid) { public BukkitOfflinePlayer getOfflinePlayer(final UUID uuid) {
final BiMap<UUID, StringWrapper> map = UUIDHandler.getUuidMap().inverse(); final BiMap<UUID, StringWrapper> map = UUIDHandler.getUuidMap().inverse();
String name; String name;
try { try {
@ -50,12 +56,12 @@ public class OfflineUUIDWrapper extends UUIDWrapper {
if (name != null) { if (name != null) {
final OfflinePlayer op = Bukkit.getOfflinePlayer(name); final OfflinePlayer op = Bukkit.getOfflinePlayer(name);
if (op.hasPlayedBefore()) { if (op.hasPlayedBefore()) {
return op; return new BukkitOfflinePlayer(op);
} }
} }
for (final OfflinePlayer player : Bukkit.getOfflinePlayers()) { for (final OfflinePlayer player : Bukkit.getOfflinePlayers()) {
if (getUUID(player).equals(uuid)) { if (getUUID(player).equals(uuid)) {
return player; return new BukkitOfflinePlayer(player);
} }
} }
return null; return null;
@ -81,16 +87,6 @@ public class OfflineUUIDWrapper extends UUIDWrapper {
} }
} }
@Override
public Player getPlayer(final UUID uuid) {
for (final Player player : getOnlinePlayers()) {
if (getUUID(player).equals(uuid)) {
return player;
}
}
return null;
}
@Override @Override
public UUID getUUID(final String name) { public UUID getUUID(final String name) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8)); return UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8));

View File

@ -2,17 +2,15 @@ package com.intellectualcrafters.plot.uuid;
import java.util.UUID; import java.util.UUID;
import org.bukkit.OfflinePlayer; import com.intellectualcrafters.plot.object.BukkitOfflinePlayer;
import org.bukkit.entity.Player; import com.intellectualcrafters.plot.object.PlotPlayer;
public abstract class UUIDWrapper { public abstract class UUIDWrapper {
public abstract UUID getUUID(Player player); public abstract UUID getUUID(PlotPlayer player);
public abstract UUID getUUID(OfflinePlayer player); public abstract UUID getUUID(BukkitOfflinePlayer player);
public abstract UUID getUUID(String name); public abstract UUID getUUID(String name);
public abstract OfflinePlayer getOfflinePlayer(UUID uuid); public abstract BukkitOfflinePlayer getOfflinePlayer(UUID uuid);
public abstract Player getPlayer(UUID uuid);
} }