mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	Modified internal configuration classes, Updated Mojang UUID fetcher, other various method and documentation tweaks
This commit is contained in:
		@@ -31,13 +31,13 @@ import java.util.ArrayDeque;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
 | 
			
		||||
public class SQLUUIDHandler extends UUIDHandlerImplementation {
 | 
			
		||||
 | 
			
		||||
    final int MAX_REQUESTS = 500;
 | 
			
		||||
    private final String PROFILE_URL =
 | 
			
		||||
        "https://sessionserver.mojang.com/session/minecraft/profile/";
 | 
			
		||||
    private final int INTERVAL = 12000;
 | 
			
		||||
    private final JSONParser jsonParser = new JSONParser();
 | 
			
		||||
    private final SQLite sqlite;
 | 
			
		||||
 | 
			
		||||
@@ -133,7 +133,10 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation {
 | 
			
		||||
                                    "Invalid response from Mojang: Some UUIDs will be cached later. (`unknown` until then or player joins)");
 | 
			
		||||
                            }
 | 
			
		||||
                            try {
 | 
			
		||||
                                Thread.sleep(INTERVAL * 50);
 | 
			
		||||
                                //Mojang allows requests every 10 minutes according to https://wiki.vg/Mojang_API
 | 
			
		||||
                                //15 Minutes is chosen here since system timers are not always precise
 | 
			
		||||
                                //and it should provide enough time where Mojang won't block requests.
 | 
			
		||||
                                TimeUnit.MINUTES.sleep(15);
 | 
			
		||||
                            } catch (InterruptedException e) {
 | 
			
		||||
                                e.printStackTrace();
 | 
			
		||||
                                break;
 | 
			
		||||
@@ -142,7 +145,6 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation {
 | 
			
		||||
                        if (whenDone != null) {
 | 
			
		||||
                            whenDone.run();
 | 
			
		||||
                        }
 | 
			
		||||
                        return;
 | 
			
		||||
                    });
 | 
			
		||||
                });
 | 
			
		||||
            } catch (SQLException e) {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,6 @@ package com.github.intellectualsites.plotsquared.configuration;
 | 
			
		||||
 */
 | 
			
		||||
class ConfigurationOptions {
 | 
			
		||||
    private final Configuration configuration;
 | 
			
		||||
    private char pathSeparator = '.';
 | 
			
		||||
    private boolean copyDefaults = false;
 | 
			
		||||
 | 
			
		||||
    protected ConfigurationOptions(Configuration configuration) {
 | 
			
		||||
@@ -26,28 +25,12 @@ class ConfigurationOptions {
 | 
			
		||||
     * Gets the char that will be used to separate {@link
 | 
			
		||||
     * ConfigurationSection}s.
 | 
			
		||||
     *
 | 
			
		||||
     * <p>This value does not affect how the {@link Configuration} is stored,
 | 
			
		||||
     * only in how you access the data. The default value is '.'.
 | 
			
		||||
     * <p> This value is always '.'.
 | 
			
		||||
     *
 | 
			
		||||
     * @return Path separator
 | 
			
		||||
     */
 | 
			
		||||
    public char pathSeparator() {
 | 
			
		||||
        return pathSeparator;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Sets the char that will be used to separate {@link
 | 
			
		||||
     * ConfigurationSection}s.
 | 
			
		||||
     *
 | 
			
		||||
     * <p>This value does not affect how the {@link Configuration} is stored,
 | 
			
		||||
     * only in how you access the data. The default value is '.'.
 | 
			
		||||
     *
 | 
			
		||||
     * @param value Path separator
 | 
			
		||||
     * @return This object, for chaining
 | 
			
		||||
     */
 | 
			
		||||
    public ConfigurationOptions pathSeparator(char value) {
 | 
			
		||||
        pathSeparator = value;
 | 
			
		||||
        return this;
 | 
			
		||||
    char pathSeparator() {
 | 
			
		||||
        return '.';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -18,8 +18,4 @@ public class MemoryConfigurationOptions extends ConfigurationOptions {
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public MemoryConfigurationOptions pathSeparator(char value) {
 | 
			
		||||
        super.pathSeparator(value);
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,11 +25,6 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions {
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public FileConfigurationOptions pathSeparator(char value) {
 | 
			
		||||
        super.pathSeparator(value);
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Gets the header that will be applied to the top of the saved output.
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,6 @@ package com.github.intellectualsites.plotsquared.configuration.file;
 | 
			
		||||
 * YamlConfiguration}.
 | 
			
		||||
 */
 | 
			
		||||
public class YamlConfigurationOptions extends FileConfigurationOptions {
 | 
			
		||||
    private int indent = 2;
 | 
			
		||||
 | 
			
		||||
    YamlConfigurationOptions(YamlConfiguration configuration) {
 | 
			
		||||
        super(configuration);
 | 
			
		||||
@@ -20,11 +19,6 @@ public class YamlConfigurationOptions extends FileConfigurationOptions {
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public YamlConfigurationOptions pathSeparator(char value) {
 | 
			
		||||
        super.pathSeparator(value);
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public YamlConfigurationOptions header(String value) {
 | 
			
		||||
        super.header(value);
 | 
			
		||||
        return this;
 | 
			
		||||
@@ -42,27 +36,8 @@ public class YamlConfigurationOptions extends FileConfigurationOptions {
 | 
			
		||||
     *
 | 
			
		||||
     * @return How much to indent by
 | 
			
		||||
     */
 | 
			
		||||
    public int indent() {
 | 
			
		||||
        return indent;
 | 
			
		||||
    int indent() {
 | 
			
		||||
        return 2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Sets how much spaces should be used to indent each line.
 | 
			
		||||
     *
 | 
			
		||||
     * <p>The minimum value this may be is 2, and the maximum is 9.
 | 
			
		||||
     *
 | 
			
		||||
     * @param value New indent
 | 
			
		||||
     * @return This object, for chaining
 | 
			
		||||
     */
 | 
			
		||||
    public YamlConfigurationOptions indent(int value) {
 | 
			
		||||
        if (value < 2) {
 | 
			
		||||
            throw new IllegalArgumentException("Indent must be at least 2 characters");
 | 
			
		||||
        }
 | 
			
		||||
        if (value > 9) {
 | 
			
		||||
            throw new IllegalArgumentException("Indent cannot be greater than 9 characters");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        indent = value;
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -24,10 +24,9 @@ import com.github.intellectualsites.plotsquared.plot.util.StringMan;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
@CommandDeclaration(command = "setflag", aliases = {"f", "flag", "setf", "setflag"},
 | 
			
		||||
    usage = "/plot flag <set|remove|add|list|info> <flag> <value>", description = "Set plot flags",
 | 
			
		||||
    category = CommandCategory.SETTINGS, requiredType = RequiredType.NONE,
 | 
			
		||||
    permission = "plots.flag") public class FlagCmd extends SubCommand {
 | 
			
		||||
@CommandDeclaration(command = "setflag", aliases = {"f", "flag",
 | 
			
		||||
    "setflag"}, usage = "/plot flag <set|remove|add|list|info> <flag> <value>", description = "Set plot flags", category = CommandCategory.SETTINGS, requiredType = RequiredType.NONE, permission = "plots.flag")
 | 
			
		||||
public class FlagCmd extends SubCommand {
 | 
			
		||||
 | 
			
		||||
    private boolean checkPermValue(PlotPlayer player, Flag flag, String key, String value) {
 | 
			
		||||
        key = key.toLowerCase();
 | 
			
		||||
 
 | 
			
		||||
@@ -149,8 +149,14 @@ import java.util.List;
 | 
			
		||||
                            }
 | 
			
		||||
                            PlotComment comment = value.get(index - 1);
 | 
			
		||||
                            inbox.removeComment(plot, comment);
 | 
			
		||||
                            plot.removeComment(comment);
 | 
			
		||||
                            MainUtil.sendMessage(player, Captions.COMMENT_REMOVED, comment.comment);
 | 
			
		||||
                            boolean success = plot.removeComment(comment);
 | 
			
		||||
                            //noinspection StatementWithEmptyBody
 | 
			
		||||
                            if (success) {
 | 
			
		||||
                                MainUtil
 | 
			
		||||
                                    .sendMessage(player, Captions.COMMENT_REMOVED, comment.comment);
 | 
			
		||||
                            } else {
 | 
			
		||||
                                //TODO Comment removal failure message
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    })) {
 | 
			
		||||
                        sendMessage(player, Captions.NOT_IN_PLOT);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,19 @@
 | 
			
		||||
package com.github.intellectualsites.plotsquared.plot.database;
 | 
			
		||||
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.flag.Flag;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.*;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.Plot;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.PlotArea;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.PlotCluster;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.comment.PlotComment;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
public interface AbstractDB {
 | 
			
		||||
 | 
			
		||||
@@ -224,7 +231,7 @@ public interface AbstractDB {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param cluster PlotCluster Object
 | 
			
		||||
     * @param uuid    Player that should be removed
 | 
			
		||||
     * @param uuid Player that should be removed
 | 
			
		||||
     */
 | 
			
		||||
    void setHelper(PlotCluster cluster, UUID uuid);
 | 
			
		||||
 | 
			
		||||
@@ -276,7 +283,7 @@ public interface AbstractDB {
 | 
			
		||||
    /**
 | 
			
		||||
     * Removes the specified comment from the given plot.
 | 
			
		||||
     *
 | 
			
		||||
     * @param plot    the plot
 | 
			
		||||
     * @param plot the plot
 | 
			
		||||
     * @param comment the comment to remove
 | 
			
		||||
     */
 | 
			
		||||
    void removeComment(Plot plot, PlotComment comment);
 | 
			
		||||
@@ -284,7 +291,7 @@ public interface AbstractDB {
 | 
			
		||||
    /**
 | 
			
		||||
     * Clears the specified inbox on the given plot.
 | 
			
		||||
     *
 | 
			
		||||
     * @param plot  the plot
 | 
			
		||||
     * @param plot the plot
 | 
			
		||||
     * @param inbox the inbox to clear
 | 
			
		||||
     */
 | 
			
		||||
    void clearInbox(Plot plot, String inbox);
 | 
			
		||||
@@ -292,13 +299,13 @@ public interface AbstractDB {
 | 
			
		||||
    /**
 | 
			
		||||
     * Adds the specified comment to the given plot.
 | 
			
		||||
     *
 | 
			
		||||
     * @param plot    the plot
 | 
			
		||||
     * @param plot the plot
 | 
			
		||||
     * @param comment the comment to add
 | 
			
		||||
     */
 | 
			
		||||
    void setComment(Plot plot, PlotComment comment);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Gets Plot Comments.
 | 
			
		||||
     * Gets Plot comments.
 | 
			
		||||
     *
 | 
			
		||||
     * @param plot The Plot to get comments from
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,21 @@
 | 
			
		||||
package com.github.intellectualsites.plotsquared.plot.database;
 | 
			
		||||
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.flag.Flag;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.*;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.Plot;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.PlotArea;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.PlotCluster;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
 | 
			
		||||
import com.github.intellectualsites.plotsquared.plot.object.comment.PlotComment;
 | 
			
		||||
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.ResultSetMetaData;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Database Functions
 | 
			
		||||
@@ -74,6 +82,8 @@ public class DBFunc {
 | 
			
		||||
        DBFunc.dbManager.validateAllPlots(plots);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //TODO Consider Removal
 | 
			
		||||
    /**
 | 
			
		||||
     * Check if a {@link ResultSet} contains a column.
 | 
			
		||||
     *
 | 
			
		||||
@@ -81,7 +91,7 @@ public class DBFunc {
 | 
			
		||||
     * @param name
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public static boolean hasColumn(ResultSet resultSet, String name) {
 | 
			
		||||
    @Deprecated public static boolean hasColumn(ResultSet resultSet, String name) {
 | 
			
		||||
        try {
 | 
			
		||||
            ResultSetMetaData meta = resultSet.getMetaData();
 | 
			
		||||
            int count = meta.getColumnCount();
 | 
			
		||||
 
 | 
			
		||||
@@ -24,29 +24,21 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                                          BlockBucket blocks) {
 | 
			
		||||
        switch (component) {
 | 
			
		||||
            case "floor":
 | 
			
		||||
                setFloor(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setFloor(plotId, blocks);
 | 
			
		||||
            case "wall":
 | 
			
		||||
                setWallFilling(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setWallFilling(plotId, blocks);
 | 
			
		||||
            case "all":
 | 
			
		||||
                setAll(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setAll(plotId, blocks);
 | 
			
		||||
            case "air":
 | 
			
		||||
                setAir(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setAir(plotId, blocks);
 | 
			
		||||
            case "main":
 | 
			
		||||
                setMain(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setMain(plotId, blocks);
 | 
			
		||||
            case "middle":
 | 
			
		||||
                setMiddle(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setMiddle(plotId, blocks);
 | 
			
		||||
            case "outline":
 | 
			
		||||
                setOutline(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setOutline(plotId, blocks);
 | 
			
		||||
            case "border":
 | 
			
		||||
                setWall(plotId, blocks);
 | 
			
		||||
                return true;
 | 
			
		||||
                return setWall(plotId, blocks);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
@@ -54,8 +46,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
    @Override public boolean unClaimPlot(Plot plot, Runnable whenDone) {
 | 
			
		||||
        setWallFilling(plot.getId(), classicPlotWorld.WALL_FILLING);
 | 
			
		||||
        setWall(plot.getId(), classicPlotWorld.WALL_BLOCK);
 | 
			
		||||
        GlobalBlockQueue.IMP.addTask(whenDone);
 | 
			
		||||
        return true;
 | 
			
		||||
        return GlobalBlockQueue.IMP.addTask(whenDone);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setFloor(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -70,8 +61,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                queue.setCuboid(pos1, pos2, blocks);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setAll(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -86,8 +76,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            Location pos2 = new Location(classicPlotWorld.worldname, region.maxX, maxY, region.maxZ);
 | 
			
		||||
            queue.setCuboid(pos1, pos2, blocks);
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setAir(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -103,8 +92,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            Location pos2 = new Location(classicPlotWorld.worldname, region.maxX, maxY, region.maxZ);
 | 
			
		||||
            queue.setCuboid(pos1, pos2, blocks);
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setMain(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -119,8 +107,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                new Location(classicPlotWorld.worldname, region.maxX, classicPlotWorld.PLOT_HEIGHT - 1, region.maxZ);
 | 
			
		||||
            queue.setCuboid(pos1, pos2, blocks);
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setMiddle(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -134,8 +121,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
        int x = MathMan.average(corners[0].getX(), corners[1].getX());
 | 
			
		||||
        int z = MathMan.average(corners[0].getZ(), corners[1].getZ());
 | 
			
		||||
        queue.setBlock(x, classicPlotWorld.PLOT_HEIGHT, z, blocks.getBlock());
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setOutline(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -187,8 +173,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                queue.setCuboid(pos1, pos2, blocks);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setWallFilling(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -235,8 +220,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean setWall(PlotId plotId, BlockBucket blocks) {
 | 
			
		||||
@@ -276,8 +260,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
                queue.setBlock(x, y, z, blocks.getBlock());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -308,8 +291,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex, classicPlotWorld.WALL_HEIGHT + 1, ez - 1), classicPlotWorld.WALL_BLOCK);
 | 
			
		||||
        queue.setCuboid(new Location(classicPlotWorld.worldname, sx + 1, 1, sz + 1),
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex - 1, classicPlotWorld.ROAD_HEIGHT, ez - 1), classicPlotWorld.ROAD_BLOCK);
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean createRoadSouth(Plot plot) {
 | 
			
		||||
@@ -337,8 +319,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex - 1, classicPlotWorld.WALL_HEIGHT + 1, ez), classicPlotWorld.WALL_BLOCK);
 | 
			
		||||
        queue.setCuboid(new Location(classicPlotWorld.worldname, sx + 1, 1, sz + 1),
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex - 1, classicPlotWorld.ROAD_HEIGHT, ez - 1), classicPlotWorld.ROAD_BLOCK);
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean createRoadSouthEast(Plot plot) {
 | 
			
		||||
@@ -356,8 +337,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            PlotBlock.get((short) 7, (byte) 0));
 | 
			
		||||
        queue.setCuboid(new Location(classicPlotWorld.worldname, sx + 1, 1, sz + 1),
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex - 1, classicPlotWorld.ROAD_HEIGHT, ez - 1), classicPlotWorld.ROAD_BLOCK);
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean removeRoadEast(Plot plot) {
 | 
			
		||||
@@ -377,8 +357,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex, classicPlotWorld.PLOT_HEIGHT - 1, ez - 1), classicPlotWorld.MAIN_BLOCK);
 | 
			
		||||
        queue.setCuboid(new Location(classicPlotWorld.worldname, sx, classicPlotWorld.PLOT_HEIGHT, sz + 1),
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex, classicPlotWorld.PLOT_HEIGHT, ez - 1), classicPlotWorld.TOP_BLOCK);
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean removeRoadSouth(Plot plot) {
 | 
			
		||||
@@ -398,8 +377,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex - 1, classicPlotWorld.PLOT_HEIGHT - 1, ez), classicPlotWorld.MAIN_BLOCK);
 | 
			
		||||
        queue.setCuboid(new Location(classicPlotWorld.worldname, sx + 1, classicPlotWorld.PLOT_HEIGHT, sz),
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex - 1, classicPlotWorld.PLOT_HEIGHT, ez), classicPlotWorld.TOP_BLOCK);
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean removeRoadSouthEast(Plot plot) {
 | 
			
		||||
@@ -416,14 +394,14 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex, classicPlotWorld.ROAD_HEIGHT - 1, ez), classicPlotWorld.MAIN_BLOCK);
 | 
			
		||||
        queue.setCuboid(new Location(classicPlotWorld.worldname, sx, classicPlotWorld.ROAD_HEIGHT, sz),
 | 
			
		||||
            new Location(classicPlotWorld.worldname, ex, classicPlotWorld.ROAD_HEIGHT, ez), classicPlotWorld.TOP_BLOCK);
 | 
			
		||||
        queue.enqueue();
 | 
			
		||||
        return true;
 | 
			
		||||
        return queue.enqueue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Finishing off plot merging by adding in the walls surrounding the plot (OPTIONAL)(UNFINISHED).
 | 
			
		||||
     */
 | 
			
		||||
    @Override public boolean finishPlotMerge(List<PlotId> plotIds) {
 | 
			
		||||
        //TODO This method shouldn't always return true
 | 
			
		||||
        final BlockBucket block = classicPlotWorld.CLAIMED_WALL_BLOCK;
 | 
			
		||||
        plotIds.forEach(id -> setWall(id, block));
 | 
			
		||||
        if (Settings.General.MERGE_REPLACE_WALL) {
 | 
			
		||||
@@ -434,12 +412,14 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean finishPlotUnlink(List<PlotId> plotIds) {
 | 
			
		||||
        //TODO This method shouldn't always return true
 | 
			
		||||
        final BlockBucket block = classicPlotWorld.CLAIMED_WALL_BLOCK;
 | 
			
		||||
        plotIds.forEach(id -> setWall(id, block));
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public boolean regenerateAllPlotWalls() {
 | 
			
		||||
        //TODO This method shouldn't always return true
 | 
			
		||||
        for (Plot plot : classicPlotWorld.getPlots()) {
 | 
			
		||||
            if (plot.hasOwner()) {
 | 
			
		||||
                setWall(plot.getId(), classicPlotWorld.CLAIMED_WALL_BLOCK);
 | 
			
		||||
@@ -460,8 +440,7 @@ public class ClassicPlotManager extends SquarePlotManager {
 | 
			
		||||
 | 
			
		||||
    @Override public boolean claimPlot(Plot plot) {
 | 
			
		||||
        final BlockBucket claim = classicPlotWorld.CLAIMED_WALL_BLOCK;
 | 
			
		||||
        setWall(plot.getId(), claim);
 | 
			
		||||
        return true;
 | 
			
		||||
        return setWall(plot.getId(), claim);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public String[] getPlotComponents(PlotId plotId) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2418,20 +2418,16 @@ public class Plot {
 | 
			
		||||
     * @param direction
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public Plot getRelative(int direction) {
 | 
			
		||||
    @Deprecated public Plot getRelative(int direction) {
 | 
			
		||||
        return this.area.getPlotAbs(this.id.getRelative(direction));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Gets the plot in a relative direction<br>
 | 
			
		||||
     * 0 = north<br>
 | 
			
		||||
     * 1 = east<br>
 | 
			
		||||
     * 2 = south<br>
 | 
			
		||||
     * 3 = west<br>
 | 
			
		||||
     * Gets the plot in a relative direction
 | 
			
		||||
     * Note: May be null if the partial plot area does not include the relative location
 | 
			
		||||
     *
 | 
			
		||||
     * @param direction
 | 
			
		||||
     * @return
 | 
			
		||||
     * @return the plot relative to this one
 | 
			
		||||
     */
 | 
			
		||||
    public Plot getRelative(Direction direction) {
 | 
			
		||||
        return this.area.getPlotAbs(this.id.getRelative(direction));
 | 
			
		||||
@@ -2441,7 +2437,7 @@ public class Plot {
 | 
			
		||||
     * Gets a set of plots connected (and including) this plot<br>
 | 
			
		||||
     * - This result is cached globally
 | 
			
		||||
     *
 | 
			
		||||
     * @return
 | 
			
		||||
     * @return a Set of Plots connected to this Plot
 | 
			
		||||
     */
 | 
			
		||||
    public Set<Plot> getConnectedPlots() {
 | 
			
		||||
        if (this.settings == null) {
 | 
			
		||||
@@ -2802,6 +2798,11 @@ public class Plot {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Checks if the owner of this Plot is online.
 | 
			
		||||
     *
 | 
			
		||||
     * @return true if the owner of the Plot is online
 | 
			
		||||
     */
 | 
			
		||||
    public boolean isOnline() {
 | 
			
		||||
        if (this.owner == null) {
 | 
			
		||||
            return false;
 | 
			
		||||
@@ -3098,23 +3099,23 @@ public class Plot {
 | 
			
		||||
        return getFlags().containsKey(flag);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("deprecation") public boolean removeComment(PlotComment comment) {
 | 
			
		||||
    public boolean removeComment(PlotComment comment) {
 | 
			
		||||
        return getSettings().removeComment(comment);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("deprecation") public void removeComments(List<PlotComment> comments) {
 | 
			
		||||
    public void removeComments(List<PlotComment> comments) {
 | 
			
		||||
        getSettings().removeComments(comments);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("deprecation") public List<PlotComment> getComments(String inbox) {
 | 
			
		||||
    public List<PlotComment> getComments(String inbox) {
 | 
			
		||||
        return getSettings().getComments(inbox);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("deprecation") public void addComment(PlotComment comment) {
 | 
			
		||||
    public void addComment(PlotComment comment) {
 | 
			
		||||
        getSettings().addComment(comment);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SuppressWarnings("deprecation") public void setComments(List<PlotComment> list) {
 | 
			
		||||
    public void setComments(List<PlotComment> list) {
 | 
			
		||||
        getSettings().setComments(list);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -102,9 +102,10 @@ public class DelegateLocalBlockQueue extends LocalBlockQueue {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override public void enqueue() {
 | 
			
		||||
    @Override public boolean enqueue() {
 | 
			
		||||
        if (parent != null) {
 | 
			
		||||
            parent.enqueue();
 | 
			
		||||
            return parent.enqueue();
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -45,10 +45,10 @@ public class GlobalBlockQueue {
 | 
			
		||||
 | 
			
		||||
    public GlobalBlockQueue(QueueProvider provider, int threads) {
 | 
			
		||||
        this.provider = provider;
 | 
			
		||||
        activeQueues = new ConcurrentLinkedDeque<>();
 | 
			
		||||
        inactiveQueues = new ConcurrentLinkedDeque<>();
 | 
			
		||||
        runnables = new ConcurrentLinkedDeque<>();
 | 
			
		||||
        running = new AtomicBoolean();
 | 
			
		||||
        this.activeQueues = new ConcurrentLinkedDeque<>();
 | 
			
		||||
        this.inactiveQueues = new ConcurrentLinkedDeque<>();
 | 
			
		||||
        this.runnables = new ConcurrentLinkedDeque<>();
 | 
			
		||||
        this.running = new AtomicBoolean();
 | 
			
		||||
        this.PARALLEL_THREADS = threads;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -151,12 +151,20 @@ public class GlobalBlockQueue {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void enqueue(LocalBlockQueue queue) {
 | 
			
		||||
        inactiveQueues.remove(queue);
 | 
			
		||||
    /**
 | 
			
		||||
     * TODO Documentation needed.
 | 
			
		||||
     *
 | 
			
		||||
     * @param queue todo
 | 
			
		||||
     * @return true if added to queue, false otherwise
 | 
			
		||||
     */
 | 
			
		||||
    public boolean enqueue(LocalBlockQueue queue) {
 | 
			
		||||
        boolean success = false;
 | 
			
		||||
        success = inactiveQueues.remove(queue);
 | 
			
		||||
        if (queue.size() > 0 && !activeQueues.contains(queue)) {
 | 
			
		||||
            queue.optimize();
 | 
			
		||||
            activeQueues.add(queue);
 | 
			
		||||
            success = activeQueues.add(queue);
 | 
			
		||||
        }
 | 
			
		||||
        return success;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void dequeue(LocalBlockQueue queue) {
 | 
			
		||||
 
 | 
			
		||||
@@ -96,8 +96,8 @@ public abstract class LocalBlockQueue {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void enqueue() {
 | 
			
		||||
        GlobalBlockQueue.IMP.enqueue(this);
 | 
			
		||||
    public boolean enqueue() {
 | 
			
		||||
        return GlobalBlockQueue.IMP.enqueue(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCuboid(Location pos1, Location pos2, PlotBlock block) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user