Documentation and PlotId updates

minor code tweaks in the plot class too

Signed-off-by: matt <4009945+MattBDev@users.noreply.github.com>
This commit is contained in:
matt 2019-02-06 00:03:52 -05:00
parent 87547834ef
commit 0c780166e0
9 changed files with 184 additions and 182 deletions

View File

@ -180,46 +180,49 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
continue;
}
final PlotId id = PlotId.fromString(name);
if (id != null) {
final Plot plot = area.getOwnedPlot(id);
if (plot != null) {
if (PlotPlayer.wrap(plot.owner) == null) {
if (world.getKeepSpawnInMemory()) {
world.setKeepSpawnInMemory(false);
return;
PlotId id;
try {
id = PlotId.fromString(name);
} catch (IllegalArgumentException ignored) {
continue;
}
final Plot plot = area.getOwnedPlot(id);
if (plot != null) {
if (PlotPlayer.wrap(plot.owner) == null) {
if (world.getKeepSpawnInMemory()) {
world.setKeepSpawnInMemory(false);
return;
}
final Chunk[] chunks = world.getLoadedChunks();
if (chunks.length == 0) {
if (!Bukkit.unloadWorld(world, true)) {
PlotSquared.debug("Failed to unload " + world.getName());
}
final Chunk[] chunks = world.getLoadedChunks();
if (chunks.length == 0) {
if (!Bukkit.unloadWorld(world, true)) {
PlotSquared.debug("Failed to unload " + world.getName());
}
return;
} else {
int index = 0;
do {
final Chunk chunkI = chunks[index++];
boolean result;
if (methodUnloadChunk0 != null) {
try {
result = (boolean) methodUnloadChunk0
.invoke(world, chunkI.getX(), chunkI.getZ(), true);
} catch (Throwable e) {
methodUnloadChunk0 = null;
e.printStackTrace();
continue outer;
}
} else {
result = world
.unloadChunk(chunkI.getX(), chunkI.getZ(), true, false);
}
if (!result) {
return;
} else {
int index = 0;
do {
final Chunk chunkI = chunks[index++];
boolean result;
if (methodUnloadChunk0 != null) {
try {
result = (boolean) methodUnloadChunk0
.invoke(world, chunkI.getX(), chunkI.getZ(), true);
} catch (Throwable e) {
methodUnloadChunk0 = null;
e.printStackTrace();
continue outer;
}
} while (index < chunks.length
&& System.currentTimeMillis() - start < 5);
return;
}
} else {
result = world
.unloadChunk(chunkI.getX(), chunkI.getZ(), true, false);
}
if (!result) {
continue outer;
}
} while (index < chunks.length
&& System.currentTimeMillis() - start < 5);
return;
}
}
}
@ -532,17 +535,17 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
}
@Override @Nullable
public final ChunkGenerator getDefaultWorldGenerator(final String world, final String id) {
public final ChunkGenerator getDefaultWorldGenerator(final String worldName, final String id) {
final IndependentPlotGenerator result;
if (id != null && id.equalsIgnoreCase("single")) {
result = new SingleWorldGenerator();
} else {
result = PlotSquared.get().IMP.getDefaultGenerator();
if (!PlotSquared.get().setupPlotWorld(world, id, result)) {
if (!PlotSquared.get().setupPlotWorld(worldName, id, result)) {
return null;
}
}
return (ChunkGenerator) result.specify(world);
return (ChunkGenerator) result.specify(worldName);
}
@Override public void registerPlayerEvents() {

View File

@ -37,7 +37,7 @@ import java.util.UUID;
@SuppressWarnings({"unused", "WeakerAccess"}) @NoArgsConstructor public class PlotAPI {
/**
* Get all plots.
* Gets all plots.
*
* @return all plots
* @see PlotSquared#getPlots()
@ -77,7 +77,7 @@ import java.util.UUID;
}
/**
* Get the PlotSquared storage file.
* Gets the PlotSquared storage file.
*
* @return storage configuration
* @see PlotSquared#storage
@ -87,7 +87,7 @@ import java.util.UUID;
}
/**
* Get the main class for this plugin. Only use this if you really need it.
* Gets the main class for this plugin. Only use this if you really need it.
*
* @return PlotSquared PlotSquared Main Class
* @see PlotSquared
@ -114,7 +114,7 @@ import java.util.UUID;
}
/**
* Get the block/biome set queue
* Gets the block/biome set queue
*
* @return GlobalBlockQueue.IMP
*/
@ -145,7 +145,7 @@ import java.util.UUID;
}
/**
* Get a list of PlotAreas in the world.
* Gets a list of PlotAreas in the world.
*
* @param world The world to check for plot areas
* @return A set of PlotAreas
@ -198,7 +198,7 @@ import java.util.UUID;
}
/**
* Get the PlotPlayer for a UUID.
* Gets the PlotPlayer for a UUID.
*
* <p><i>Please note that PlotSquared can be configured to provide
* different UUIDs than bukkit</i>
@ -212,7 +212,7 @@ import java.util.UUID;
}
/**
* Get the PlotPlayer for a username.
* Gets the PlotPlayer for a username.
*
* @param player the player to wrap
* @return a {@code PlotPlayer}

View File

@ -288,7 +288,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get an instance of PlotSquared.
* Gets an instance of PlotSquared.
*
* @return instance of PlotSquared
*/
@ -383,7 +383,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the current PlotSquared version.
* Gets the current PlotSquared version.
*
* @return current version in config or null
*/
@ -392,7 +392,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the server platform this plugin is running on this is running on.
* Gets the server platform this plugin is running on this is running on.
* <p>
* <p>This will be either <b>Bukkit</b> or <b>Sponge</b></p>
*
@ -507,7 +507,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all the base plots in a single set (for merged plots it just returns
* Gets all the base plots in a single set (for merged plots it just returns
* the bottom plot).
*
* @return Set of base Plots
@ -806,7 +806,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all the plots in a single set.
* Gets all the plots in a single set.
*
* @return Set of Plots
*/
@ -842,7 +842,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all the plots owned by a player name.
* Gets all the plots owned by a player name.
*
* @param world the world
* @param player the plot owner
@ -854,7 +854,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all the plots owned by a player name.
* Gets all the plots owned by a player name.
*
* @param area the PlotArea
* @param player the plot owner
@ -866,7 +866,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all plots by a PlotPlayer.
* Gets all plots by a PlotPlayer.
*
* @param world the world
* @param player the plot owner
@ -877,7 +877,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all plots by a PlotPlayer.
* Gets all plots by a PlotPlayer.
*
* @param area the PlotArea
* @param player the plot owner
@ -888,7 +888,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all plots by a UUID in a world.
* Gets all plots by a UUID in a world.
*
* @param world the world
* @param uuid the plot owner
@ -905,7 +905,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get all plots by a UUID in an area.
* Gets all plots by a UUID in an area.
*
* @param area the {@code PlotArea}
* @param uuid the plot owner
@ -943,7 +943,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the plots for a PlotPlayer.
* Gets the plots for a PlotPlayer.
*
* @param player the player to retrieve the plots for
* @return Set of Plot
@ -965,7 +965,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the plots for a UUID.
* Gets the plots for a UUID.
*
* @param uuid the plot owner
* @return Set of Plot's owned by the player
@ -1000,7 +1000,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the plots for a UUID.
* Gets the plots for a UUID.
*
* @param uuid the UUID of the owner
* @return Set of Plot
@ -1220,7 +1220,7 @@ import java.util.zip.ZipInputStream;
String name = split[0];
PlotId pos1 = PlotId.fromString(split[1]);
PlotId pos2 = PlotId.fromString(split[2]);
if (pos1 == null || pos2 == null || name.isEmpty()) {
if (name.isEmpty()) {
throw new IllegalArgumentException("Invalid Area identifier: " + areaId
+ ". Expected form `<name>-<x1;z1>-<x2;z2>`");
}
@ -1652,8 +1652,8 @@ import java.util.zip.ZipInputStream;
Settings.COMMIT = "https://github.com/IntellectualSites/PlotSquared/commit/" + Integer
.toHexString(version.hash);
System.out.println("Version is " + this.version);
} catch (Throwable ignore) {
ignore.printStackTrace();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
Settings.save(configFile);
config = YamlConfiguration.loadConfiguration(configFile);
@ -1815,7 +1815,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the Java version.
* Gets the Java version.
*
* @return the java version
*/
@ -1889,7 +1889,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get a list of PlotArea objects.
* Gets a list of PlotArea objects.
*
* @param world the world
* @return Collection of PlotArea objects
@ -1901,7 +1901,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the relevant plot area for a specified location.
* Gets the relevant plot area for a specified location.
* <ul>
* <li>If there is only one plot area globally that will be returned.
* <li>If there is only one plot area in the world, it will return that.
@ -1922,7 +1922,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get the {@code PlotArea} which contains a location.
* Gets the {@code PlotArea} which contains a location.
* <ul>
* <li>If the plot area does not contain a location, null
* will be returned.
@ -1964,7 +1964,7 @@ import java.util.zip.ZipInputStream;
}
/**
* Get Plots based on alias
* Gets Plots based on alias
*
* @param alias to search plots
* @param worldname to filter alias to a specific world [optional] null means all worlds

View File

@ -84,10 +84,13 @@ import java.util.UUID;
if (currentClusters >= player.getAllowedPlots()) {
return sendMessage(player, C.CANT_CLAIM_MORE_CLUSTERS);
}
PlotId pos1;
PlotId pos2;
// check pos1 / pos2
PlotId pos1 = PlotId.fromString(args[2]);
PlotId pos2 = PlotId.fromString(args[3]);
if (pos1 == null || pos2 == null) {
try{
pos1 = PlotId.fromString(args[2]);
pos2 = PlotId.fromString(args[3]);
} catch (IllegalArgumentException ignored) {
MainUtil.sendMessage(player, C.NOT_VALID_PLOT_ID);
return false;
}
@ -209,10 +212,13 @@ import java.util.UUID;
"/plot cluster resize <pos1> <pos2>");
return false;
}
PlotId pos1;
PlotId pos2;
// check pos1 / pos2
PlotId pos1 = PlotId.fromString(args[1]);
PlotId pos2 = PlotId.fromString(args[2]);
if (pos1 == null || pos2 == null) {
try{
pos1 = PlotId.fromString(args[2]);
pos2 = PlotId.fromString(args[3]);
} catch (IllegalArgumentException ignored) {
MainUtil.sendMessage(player, C.NOT_VALID_PLOT_ID);
return false;
}

View File

@ -33,7 +33,13 @@ public class Comment extends SubCommand {
return false;
}
Location loc = player.getLocation();
PlotId id = PlotId.fromString(args[1]);
PlotId id;
try {
id = PlotId.fromString(args[1]);
} catch (IllegalArgumentException ignored) {
MainUtil.sendMessage(player, C.NOT_VALID_PLOT_ID);
return false;
}
Plot plot = MainUtil.getPlotFromString(player, args[1], false);
int index;
if (plot == null) {

View File

@ -56,8 +56,9 @@ import java.util.UUID;
break;
case "plotid":
case "id":
id = PlotId.fromString(split[1]);
if (id == null) {
try {
id = PlotId.fromString(split[1]);
} catch (IllegalArgumentException ignored) {
C.NOT_VALID_PLOT_ID.send(player, split[1]);
return false;
}

View File

@ -182,8 +182,9 @@ import java.util.Map.Entry;
MainUtil.sendMessage(player, "&6What should be the minimum Plot Id?");
break;
case 3: // min
object.min = PlotId.fromString(args[0]);
if (object.min == null) {
try {
object.min = PlotId.fromString(args[0]);
} catch (IllegalArgumentException ignored) {
MainUtil.sendMessage(player, "&cYou must choose a valid minimum PlotId!");
return false;
}
@ -192,8 +193,10 @@ import java.util.Map.Entry;
break;
case 4:
// max
PlotId id = PlotId.fromString(args[0]);
if (id == null) {
PlotId id;
try {
id = PlotId.fromString(args[0]);
} catch (IllegalArgumentException ignored) {
MainUtil.sendMessage(player, "&cYou must choose a valid maximum PlotId!");
return false;
}

View File

@ -41,14 +41,13 @@ import java.util.concurrent.ConcurrentHashMap;
*/
public class Plot {
private static final int MAX_HEIGHT = 256;
/**
* @deprecated raw access is deprecated
*/
@Deprecated private static HashSet<Plot> connected_cache;
private static HashSet<RegionWrapper> regions_cache;
/**
* The {@link PlotId}.
*/
private final PlotId id;
/**
* plot owner
@ -91,9 +90,7 @@ public class Plot {
* - The methods are more likely to be left unchanged from version changes<br>
*/
private PlotSettings settings;
/**
* The {@link PlotArea}.
*/
private PlotArea area;
/**
* Session only plot metadata (session is until the server stops)<br>
@ -188,7 +185,7 @@ public class Plot {
}
/**
* Get a plot from a string e.g. [area];[id]
* Gets a plot from a string e.g. [area];[id]
*
* @param defaultArea If no area is specified
* @param string plot id/area + id
@ -199,7 +196,7 @@ public class Plot {
if (split.length == 2) {
if (defaultArea != null) {
PlotId id = PlotId.fromString(split[0] + ';' + split[1]);
return id != null ? defaultArea.getPlotAbs(id) : null;
return defaultArea.getPlotAbs(id);
}
} else if (split.length == 3) {
PlotArea pa = PlotSquared.get().getPlotArea(split[0], null);
@ -253,7 +250,7 @@ public class Plot {
}
/**
* Get the metadata for a key<br>
* Gets the metadata for a key<br>
* <br>
* For persistent metadata use the flag system
*
@ -281,7 +278,7 @@ public class Plot {
}
/**
* Get the cluster this plot is associated with
* Gets the cluster this plot is associated with
*
* @return the PlotCluster object, or null
*/
@ -299,9 +296,9 @@ public class Plot {
public List<PlotPlayer> getPlayersInPlot() {
ArrayList<PlotPlayer> players = new ArrayList<>();
for (Entry<String, PlotPlayer> entry : UUIDHandler.getPlayers().entrySet()) {
PlotPlayer pp = entry.getValue();
if (this.equals(pp.getCurrentPlot())) {
players.add(pp);
PlotPlayer plotPlayer = entry.getValue();
if (this.equals(plotPlayer.getCurrentPlot())) {
players.add(plotPlayer);
}
}
return players;
@ -330,12 +327,7 @@ public class Plot {
return false;
}
Set<Plot> connected = getConnectedPlots();
for (Plot current : connected) {
if (uuid.equals(current.owner)) {
return true;
}
}
return false;
return connected.stream().anyMatch(current -> uuid.equals(current.owner));
}
public boolean isOwnerAbs(UUID uuid) {
@ -343,7 +335,7 @@ public class Plot {
}
/**
* Get a immutable set of owner UUIDs for a plot (supports multi-owner mega-plots).
* Gets a immutable set of owner UUIDs for a plot (supports multi-owner mega-plots).
*
* @return the plot owners
*/
@ -406,14 +398,16 @@ public class Plot {
}
/**
* Get the {@link PlotId}.
* Gets the {@link PlotId} of this plot.
*
* @return the PlotId for this plot
*/
public PlotId getId() {
return this.id;
}
/**
* Get the plot world object for this plot<br>
* Gets the plot world object for this plot<br>
* - The generic PlotArea object can be casted to its respective class for more control (e.g. HybridPlotWorld)
*
* @return PlotArea
@ -441,7 +435,7 @@ public class Plot {
}
/**
* Get the plot manager object for this plot<br>
* Gets the plot manager object for this plot<br>
* - The generic PlotManager object can be casted to its respective class for more control (e.g. HybridPlotManager)
*
* @return PlotManager
@ -451,7 +445,7 @@ public class Plot {
}
/**
* Get or create plot settings.
* Gets or create plot settings.
*
* @return PlotSettings
* @deprecated use equivalent plot method;
@ -518,7 +512,7 @@ public class Plot {
}
/**
* Get the timestamp of when the plot was created (unreliable)<br>
* Gets the timestamp of when the plot was created (unreliable)<br>
* - not accurate if the plot was created before this was implemented<br>
* - Milliseconds since the epoch<br>
*
@ -532,7 +526,7 @@ public class Plot {
}
/**
* Get if the plot is merged in a direction<br>
* Gets if the plot is merged in a direction<br>
* ------- Actual -------<br>
* 0 = north<br>
* 1 = east<br>
@ -586,7 +580,7 @@ public class Plot {
}
/**
* Get the denied users.
* Gets the denied users.
*
* @return a set of denied users
*/
@ -598,7 +592,7 @@ public class Plot {
}
/**
* Set the denied users for this plot.
* Sets the denied users for this plot.
*
* @param uuids uuids to deny
*/
@ -618,7 +612,7 @@ public class Plot {
}
/**
* Get the trusted users.
* Gets the trusted users.
*
* @return a set of trusted users
*/
@ -630,7 +624,7 @@ public class Plot {
}
/**
* Set the trusted users for this plot.
* Sets the trusted users for this plot.
*
* @param uuids uuids to trust
*/
@ -650,7 +644,7 @@ public class Plot {
}
/**
* Get the members
* Gets the members
*
* @return a set of members
*/
@ -662,7 +656,7 @@ public class Plot {
}
/**
* Set the members for this plot
* Sets the members for this plot.
*
* @param uuids uuids to set member status for
*/
@ -721,7 +715,7 @@ public class Plot {
}
/**
* Set the plot owner (and update the database)
* Sets the plot owner (and update the database)
*
* @param owner uuid to set as owner
*/
@ -747,7 +741,7 @@ public class Plot {
}
/**
* Set the plot owner (and update the database)
* Sets the plot owner (and update the database)
*
* @param owner uuid to set as owner
* @param initiator player initiating set owner
@ -845,7 +839,7 @@ public class Plot {
}
/**
* Set the biome for a plot asynchronously
* Sets the biome for a plot asynchronously.
*
* @param biome The biome e.g. "forest"
* @param whenDone The task to run when finished, or null
@ -947,7 +941,7 @@ public class Plot {
}
/**
* Set the sign for a plot to a specific name
* Sets the sign for a plot to a specific name
*
* @param name name
*/
@ -992,7 +986,7 @@ public class Plot {
}
/**
* Set a flag for this plot
* Sets a flag for this plot
*
* @param flag Flag to set
* @param value Flag value
@ -1015,7 +1009,7 @@ public class Plot {
}
/**
* Get the flag for a given key
* Gets the flag for a given key
*
* @param key Flag to get value for
*/
@ -1024,7 +1018,7 @@ public class Plot {
}
/**
* Get the flag for a given key
* Gets the flag for a given key
*
* @param key the flag
* @param defaultValue if the key is null, the value to return
@ -1118,7 +1112,7 @@ public class Plot {
}
/**
* Get the number of tracked running tasks for this plot<br>
* Gets the number of tracked running tasks for this plot<br>
* - Used to track/limit the number of things a player can do on the plot at once
*
* @return number of tasks (int)
@ -1217,7 +1211,7 @@ public class Plot {
}
/**
* Set the home location
* Sets the home location
*
* @param location location to set as home
*/
@ -1235,7 +1229,7 @@ public class Plot {
}
/**
* Get the default home location for a plot<br>
* Gets the default home location for a plot<br>
* - Ignores any home location set for that specific plot
*
* @return Location
@ -1276,27 +1270,24 @@ public class Plot {
for (RegionWrapper region : getRegions()) {
count +=
(region.maxX - (double) region.minX + 1) * (region.maxZ - (double) region.minZ + 1)
* 256;
* MAX_HEIGHT;
}
return count;
}
/**
* Get the average rating of the plot. This is the value displayed in /plot info
* Gets the average rating of the plot. This is the value displayed in /plot info
*
* @return average rating as double
*/
public double getAverageRating() {
double sum = 0;
Collection<Rating> ratings = this.getRatings().values();
for (Rating rating : ratings) {
sum += rating.getAverageRating();
}
double sum = ratings.stream().mapToDouble(Rating::getAverageRating).sum();
return sum / ratings.size();
}
/**
* Set a rating for a user<br>
* Sets a rating for a user<br>
* - If the user has already rated, the following will return false
*
* @param uuid uuid of rater
@ -1328,7 +1319,7 @@ public class Plot {
}
/**
* Get the ratings associated with a plot<br>
* Gets the ratings associated with a plot<br>
* - The rating object may contain multiple categories
*
* @return Map of user who rated to the rating
@ -1383,7 +1374,7 @@ public class Plot {
}
/**
* Set the plot sign if plot signs are enabled.
* Sets the plot sign if plot signs are enabled.
*/
public void setSign() {
if (this.owner == null) {
@ -1502,7 +1493,7 @@ public class Plot {
}
/**
* Set components such as border, wall, floor.
* Sets components such as border, wall, floor.
* (components are generator specific)
*/
public boolean setComponent(String component, String blocks) {
@ -1531,10 +1522,10 @@ public class Plot {
return top;
}
//TODO Better documentation needed.
/**
* Return the bottom location for the plot.
*
* @return
*/
public Location getBottomAbs() {
Location loc = this.area.getPlotManager().getPlotBottomLocAbs(this.area, this.id);
@ -1543,7 +1534,7 @@ public class Plot {
}
/**
* Swap the settings for two plots.
* Swaps the settings for two plots.
*
* @param plot the plot to swap data with
* @param whenDone the task to run at the end of this method.
@ -1676,7 +1667,7 @@ public class Plot {
Location bot = other.getBottomAbs();
Location top = this.getTopAbs();
Location pos1 = new Location(this.getWorldName(), top.getX(), 0, bot.getZ());
Location pos2 = new Location(this.getWorldName(), bot.getX(), 256, top.getZ());
Location pos2 = new Location(this.getWorldName(), bot.getX(), MAX_HEIGHT, top.getZ());
ChunkManager.manager.regenerateRegion(pos1, pos2, true, null);
} else {
this.area.getPlotManager().removeRoadEast(this.area, this);
@ -1729,7 +1720,7 @@ public class Plot {
}
/**
* Get plot display name.
* Gets plot display name.
*
* @return alias if set, else id
*/
@ -1898,7 +1889,7 @@ public class Plot {
}
/**
* Get the plot hashcode<br>
* Gets the plot hashcode<br>
* Note: The hashcode is unique if:<br>
* - Plots are in the same world<br>
* - The x,z coordinates are between Short.MIN_VALUE and Short.MAX_VALUE<br>
@ -1910,7 +1901,7 @@ public class Plot {
}
/**
* Get the flags specific to this plot<br>
* Gets the flags specific to this plot<br>
* - Does not take default flags into account<br>
*
* @return
@ -1920,7 +1911,7 @@ public class Plot {
}
/**
* Set a flag for this plot.
* Sets a flag for this plot.
*
* @param flags
*/
@ -1929,7 +1920,7 @@ public class Plot {
}
/**
* Get the plot alias.
* Gets the plot alias.
* - Returns an empty string if no alias is set
*
* @return The plot alias
@ -1942,7 +1933,7 @@ public class Plot {
}
/**
* Set the plot alias.
* Sets the plot alias.
*
* @param alias The alias
*/
@ -1961,7 +1952,7 @@ public class Plot {
}
/**
* Set the raw merge data<br>
* Sets the raw merge data<br>
* - Updates DB<br>
* - Does not modify terrain<br>
* ----------<br>
@ -1999,7 +1990,7 @@ public class Plot {
}
/**
* Get the merged array.
* Gets the merged array.
*
* @return boolean [ north, east, south, west ]
*/
@ -2008,10 +1999,10 @@ public class Plot {
}
/**
* Set the raw merge data<br>
* Sets the raw merge data<br>
* - Updates DB<br>
* - Does not modify terrain<br>
* Get if the plot is merged in a direction<br>
* Gets if the plot is merged in a direction<br>
* ----------<br>
* 0 = north<br>
* 1 = east<br>
@ -2038,7 +2029,7 @@ public class Plot {
}
/**
* Get the set home location or 0,0,0 if no location is set<br>
* Gets the set home location or 0,0,0 if no location is set<br>
* - Does not take the default home location into account
*
* @return
@ -2145,7 +2136,7 @@ public class Plot {
Location bot = other.getBottomAbs();
Location top = this.getTopAbs();
Location pos1 = new Location(this.getWorldName(), bot.getX(), 0, top.getZ());
Location pos2 = new Location(this.getWorldName(), top.getX(), 256, bot.getZ());
Location pos2 = new Location(this.getWorldName(), top.getX(), MAX_HEIGHT, bot.getZ());
ChunkManager.manager.regenerateRegion(pos1, pos2, true, null);
} else {
this.getManager().removeRoadSouth(this.area, this);
@ -2248,11 +2239,11 @@ public class Plot {
* Merge the plot settings<br>
* - Used when a plot is merged<br>
*
* @param b
* @param plot
*/
public void mergeData(Plot b) {
public void mergeData(Plot plot) {
HashMap<Flag<?>, Object> flags1 = this.getFlags();
HashMap<Flag<?>, Object> flags2 = b.getFlags();
HashMap<Flag<?>, Object> flags2 = plot.getFlags();
if ((!flags1.isEmpty() || !flags2.isEmpty()) && !flags1.equals(flags2)) {
boolean greater = flags1.size() > flags2.size();
if (greater) {
@ -2262,30 +2253,30 @@ public class Plot {
}
HashMap<Flag<?>, Object> net = (greater ? flags1 : flags2);
this.setFlags(net);
b.setFlags(net);
plot.setFlags(net);
}
if (!this.getAlias().isEmpty()) {
b.setAlias(this.getAlias());
} else if (!b.getAlias().isEmpty()) {
this.setAlias(b.getAlias());
plot.setAlias(this.getAlias());
} else if (!plot.getAlias().isEmpty()) {
this.setAlias(plot.getAlias());
}
for (UUID uuid : this.getTrusted()) {
b.addTrusted(uuid);
plot.addTrusted(uuid);
}
for (UUID uuid : b.getTrusted()) {
for (UUID uuid : plot.getTrusted()) {
this.addTrusted(uuid);
}
for (UUID uuid : this.getMembers()) {
b.addMember(uuid);
plot.addMember(uuid);
}
for (UUID uuid : b.getMembers()) {
for (UUID uuid : plot.getMembers()) {
this.addMember(uuid);
}
for (UUID uuid : this.getDenied()) {
b.addDenied(uuid);
plot.addDenied(uuid);
}
for (UUID uuid : b.getDenied()) {
for (UUID uuid : plot.getDenied()) {
this.addDenied(uuid);
}
}
@ -2302,7 +2293,7 @@ public class Plot {
Location pos1 = this.getTopAbs().add(1, 0, 1);
Location pos2 = other.getBottomAbs().subtract(1, 0, 1);
pos1.setY(0);
pos2.setY(256);
pos2.setY(MAX_HEIGHT);
ChunkManager.manager.regenerateRegion(pos1, pos2, true, null);
} else {
this.area.getPlotManager().removeRoadSouthEast(this.area, this);
@ -2310,7 +2301,7 @@ public class Plot {
}
/**
* Get the plot in a relative location<br>
* Gets the plot in a relative location<br>
* Note: May be null if the partial plot area does not include the relative location
*
* @param x
@ -2326,7 +2317,7 @@ public class Plot {
}
/**
* Get the plot in a relative direction<br>
* Gets the plot in a relative direction<br>
* 0 = north<br>
* 1 = east<br>
* 2 = south<br>
@ -2341,7 +2332,7 @@ public class Plot {
}
/**
* Get a set of plots connected (and including) this plot<br>
* Gets a set of plots connected (and including) this plot<br>
* - This result is cached globally
*
* @return
@ -2640,7 +2631,7 @@ public class Plot {
}
/**
* Get all the corners of the plot (supports non-rectangular shapes).
* Gets all the corners of the plot (supports non-rectangular shapes).
*
* @return A list of the plot corners
*/
@ -2722,7 +2713,7 @@ public class Plot {
}
/**
* Set a component for a plot to the provided blocks<br>
* Sets a component for a plot to the provided blocks<br>
* - E.g. floor, wall, border etc.<br>
* - The available components depend on the generator being used<br>
*

View File

@ -1,5 +1,6 @@
package com.github.intellectualsites.plotsquared.plot.object;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class PlotId {
@ -30,22 +31,13 @@ public class PlotId {
* @param string to create id from
* @return null if the string is invalid
*/
public static PlotId fromString(String string) {
if (string == null) {
return null;
}
public static PlotId fromString(@Nonnull String string) {
String[] parts = string.split("[;|,]");
if (parts.length < 2) {
return null;
}
int x;
int y;
try {
x = Integer.parseInt(parts[0]);
y = Integer.parseInt(parts[1]);
} catch (NumberFormatException ignored) {
return null;
throw new IllegalArgumentException("Cannot create PlotID. String invalid.");
}
int x = Integer.parseInt(parts[0]);
int y = Integer.parseInt(parts[1]);
return new PlotId(x, y);
}
@ -54,7 +46,7 @@ public class PlotId {
}
/**
* Get the PlotId from the HashCode<br>
* Gets the PlotId from the HashCode<br>
* Note: Only accurate for small x,z values (short)
*
* @param hash