mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	More work on unlinking
This commit is contained in:
		@@ -410,11 +410,12 @@ public class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean initPlotMeConverter() {
 | 
			
		||||
        try {
 | 
			
		||||
            new PlotMeConverter().runAsync(new ClassicPlotMeConnector());
 | 
			
		||||
        } catch (final Exception e) {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
        TaskManager.runTaskLaterAsync(new Runnable() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void run() {
 | 
			
		||||
                new PlotMeConverter().run(new ClassicPlotMeConnector());                    
 | 
			
		||||
            }
 | 
			
		||||
        }, 20);
 | 
			
		||||
        if (Bukkit.getPluginManager().getPlugin("PlotMe") != null) {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -570,7 +570,7 @@ public class PlotSquared {
 | 
			
		||||
                        log("&cTHIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PLOTME!");
 | 
			
		||||
                        log("&c - Make sure 'UUID.read-from-disk' is disabled (false)!");
 | 
			
		||||
                        log("&c - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue!");
 | 
			
		||||
                        log("&c - After the conversion is finished, please set 'plotme-convert.enabled' to false in the 'settings.yml@'");
 | 
			
		||||
                        log("&c - After the conversion is finished, please set 'plotme-convert.enabled' to false in the 'settings.yml'");
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }, 200);
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ package com.intellectualcrafters.plot.database.plotme;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.sql.Connection;
 | 
			
		||||
import java.sql.DriverManager;
 | 
			
		||||
import java.sql.PreparedStatement;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.sql.Statement;
 | 
			
		||||
@@ -14,6 +15,7 @@ import org.bukkit.configuration.file.FileConfiguration;
 | 
			
		||||
 | 
			
		||||
import com.intellectualcrafters.plot.PlotSquared;
 | 
			
		||||
import com.intellectualcrafters.plot.database.DBFunc;
 | 
			
		||||
import com.intellectualcrafters.plot.database.MySQL;
 | 
			
		||||
import com.intellectualcrafters.plot.database.SQLite;
 | 
			
		||||
import com.intellectualcrafters.plot.object.Plot;
 | 
			
		||||
import com.intellectualcrafters.plot.object.PlotId;
 | 
			
		||||
@@ -31,6 +33,7 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
 | 
			
		||||
                final String password = plotConfig.getString("mySQLpass");
 | 
			
		||||
                final String con = plotConfig.getString("mySQLconn");
 | 
			
		||||
                return DriverManager.getConnection(con, user, password);
 | 
			
		||||
//                return new MySQL(plotsquared, hostname, port, database, username, password)
 | 
			
		||||
            } else {
 | 
			
		||||
                return new SQLite(PlotSquared.THIS, dataFolder + File.separator + "plots.db").openConnection();
 | 
			
		||||
            }
 | 
			
		||||
@@ -42,12 +45,11 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
 | 
			
		||||
    @Override
 | 
			
		||||
    public HashMap<String, HashMap<PlotId, Plot>> getPlotMePlots(Connection connection) throws SQLException {
 | 
			
		||||
        ResultSet r;
 | 
			
		||||
        Statement stmt;
 | 
			
		||||
        PreparedStatement stmt;
 | 
			
		||||
        final HashMap<String, Integer> plotSize = new HashMap<>();
 | 
			
		||||
        final HashMap<String, HashMap<PlotId, Plot>> plots = new HashMap<>();
 | 
			
		||||
        stmt = connection.createStatement();
 | 
			
		||||
        r = stmt.executeQuery("SELECT * FROM `plotmePlots`");
 | 
			
		||||
 | 
			
		||||
        stmt = connection.prepareStatement("SELECT * FROM `plotmePlots`");
 | 
			
		||||
        r = stmt.executeQuery();
 | 
			
		||||
        boolean checkUUID = DBFunc.hasColumn(r, "ownerid");
 | 
			
		||||
        
 | 
			
		||||
        while (r.next()) {
 | 
			
		||||
@@ -91,48 +93,61 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
 | 
			
		||||
            final Plot plot = new Plot(id, owner, new ArrayList<UUID>(), new ArrayList<UUID>(), world);
 | 
			
		||||
            plots.get(world).put(id, plot);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        r.close();
 | 
			
		||||
        stmt.close();
 | 
			
		||||
        
 | 
			
		||||
        stmt = connection.createStatement();
 | 
			
		||||
        r = stmt.executeQuery("SELECT * FROM `plotmeAllowed`");
 | 
			
		||||
        while (r.next()) {
 | 
			
		||||
            final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
 | 
			
		||||
            final String name = r.getString("player");
 | 
			
		||||
            final String world = PlotMeConverter.getWorld(r.getString("world"));
 | 
			
		||||
            UUID helper = UUIDHandler.getUUID(name);
 | 
			
		||||
            if (helper == null) {
 | 
			
		||||
                if (name.equals("*")) {
 | 
			
		||||
                    helper = DBFunc.everyone;
 | 
			
		||||
                } else {
 | 
			
		||||
                    MainUtil.sendConsoleMessage("&6Could not identify helper for plot: " + id);
 | 
			
		||||
                    continue;
 | 
			
		||||
        try {
 | 
			
		||||
        
 | 
			
		||||
            MainUtil.sendConsoleMessage(" - plotmeDenied");
 | 
			
		||||
            stmt = connection.prepareStatement("SELECT * FROM `plotmeDenied`");
 | 
			
		||||
            r = stmt.executeQuery();
 | 
			
		||||
            
 | 
			
		||||
            while (r.next()) {
 | 
			
		||||
                final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
 | 
			
		||||
                final String name = r.getString("player");
 | 
			
		||||
                final String world = PlotMeConverter.getWorld(r.getString("world"));
 | 
			
		||||
                UUID denied = UUIDHandler.getUUID(name);
 | 
			
		||||
                if (denied == null) {
 | 
			
		||||
                    if (name.equals("*")) {
 | 
			
		||||
                        denied = DBFunc.everyone;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        MainUtil.sendConsoleMessage("&6Could not identify denied for plot: " + id);
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                if (plots.get(world).containsKey(id)) {
 | 
			
		||||
                    plots.get(world).get(id).denied.add(denied);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (plots.get(world).containsKey(id)) {
 | 
			
		||||
                plots.get(world).get(id).helpers.add(helper);
 | 
			
		||||
            
 | 
			
		||||
            stmt = connection.prepareStatement("SELECT * FROM `plotmeAllowed`");
 | 
			
		||||
            r = stmt.executeQuery();
 | 
			
		||||
            
 | 
			
		||||
            while (r.next()) {
 | 
			
		||||
                final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
 | 
			
		||||
                final String name = r.getString("player");
 | 
			
		||||
                final String world = PlotMeConverter.getWorld(r.getString("world"));
 | 
			
		||||
                UUID helper = UUIDHandler.getUUID(name);
 | 
			
		||||
                if (helper == null) {
 | 
			
		||||
                    if (name.equals("*")) {
 | 
			
		||||
                        helper = DBFunc.everyone;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        MainUtil.sendConsoleMessage("&6Could not identify helper for plot: " + id);
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                if (plots.get(world).containsKey(id)) {
 | 
			
		||||
                    plots.get(world).get(id).helpers.add(helper);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            r.close();
 | 
			
		||||
            stmt.close();
 | 
			
		||||
        
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        MainUtil.sendConsoleMessage(" - plotmeDenied");
 | 
			
		||||
        r = stmt.executeQuery("SELECT * FROM `plotmeDenied`");
 | 
			
		||||
        
 | 
			
		||||
        while (r.next()) {
 | 
			
		||||
            final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
 | 
			
		||||
            final String name = r.getString("player");
 | 
			
		||||
            final String world = PlotMeConverter.getWorld(r.getString("world"));
 | 
			
		||||
            UUID denied = UUIDHandler.getUUID(name);
 | 
			
		||||
            if (denied == null) {
 | 
			
		||||
                if (name.equals("*")) {
 | 
			
		||||
                    denied = DBFunc.everyone;
 | 
			
		||||
                } else {
 | 
			
		||||
                    MainUtil.sendConsoleMessage("&6Could not identify denied for plot: " + id);
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (plots.get(world).containsKey(id)) {
 | 
			
		||||
                plots.get(world).get(id).denied.add(denied);
 | 
			
		||||
            }
 | 
			
		||||
        catch (Exception e) {
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return plots;
 | 
			
		||||
 
 | 
			
		||||
@@ -83,213 +83,207 @@ public class PlotMeConverter {
 | 
			
		||||
        return plotConfig.getConfigurationSection("worlds").getKeys(false);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public void runAsync(final APlotMeConnector connector) throws Exception {
 | 
			
		||||
        // We have to make it wait a couple of seconds
 | 
			
		||||
        TaskManager.runTaskLaterAsync(new Runnable() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void run() {
 | 
			
		||||
    public void run(final APlotMeConnector connector) {
 | 
			
		||||
        try {
 | 
			
		||||
            String dataFolder = getPlotMePath();
 | 
			
		||||
            FileConfiguration plotConfig = getPlotMeConfig(dataFolder);
 | 
			
		||||
            
 | 
			
		||||
            if (plotConfig == null) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            Connection connection = connector.getPlotMeConnection(plotConfig, dataFolder);
 | 
			
		||||
            
 | 
			
		||||
            if (connection == null) {
 | 
			
		||||
                sendMessage("Cannot connect to PlotMe DB. Conversion process will not continue");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            sendMessage("PlotMe conversion has started. To disable this, please set 'plotme-convert.enabled' in the 'settings.yml'");
 | 
			
		||||
            sendMessage("Connecting to PlotMe DB");
 | 
			
		||||
            
 | 
			
		||||
            int plotCount = 0;
 | 
			
		||||
            final ArrayList<Plot> createdPlots = new ArrayList<>();
 | 
			
		||||
            
 | 
			
		||||
            sendMessage("Collecting plot data");
 | 
			
		||||
            sendMessage(" - plotmePlots");
 | 
			
		||||
            final Set<String> worlds = getPlotMeWorlds(plotConfig);
 | 
			
		||||
            HashMap<String, HashMap<PlotId, Plot>> plots = connector.getPlotMePlots(connection);
 | 
			
		||||
            for (Entry<String, HashMap<PlotId, Plot>> entry : plots.entrySet()) {
 | 
			
		||||
                plotCount += entry.getValue().size();
 | 
			
		||||
            }
 | 
			
		||||
            if (!Settings.CONVERT_PLOTME) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            sendMessage(" - plotmeAllowed");
 | 
			
		||||
            
 | 
			
		||||
            sendMessage("Collected " + plotCount + " plots from PlotMe");
 | 
			
		||||
            for (final String world : plots.keySet()) {
 | 
			
		||||
                sendMessage("Copying config for: " + world);
 | 
			
		||||
                try {
 | 
			
		||||
                    String dataFolder = getPlotMePath();
 | 
			
		||||
                    FileConfiguration plotConfig = getPlotMeConfig(dataFolder);
 | 
			
		||||
                    
 | 
			
		||||
                    if (plotConfig == null) {
 | 
			
		||||
                        return;
 | 
			
		||||
                    final String plotMeWorldName = world.toLowerCase();
 | 
			
		||||
                    final Integer pathwidth = plotConfig.getInt("worlds." + plotMeWorldName + ".PathWidth"); //
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".road.width", pathwidth);
 | 
			
		||||
                    final Integer plotsize = plotConfig.getInt("worlds." + plotMeWorldName + ".PlotSize"); //
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".plot.size", plotsize);
 | 
			
		||||
                    final String wallblock = plotConfig.getString("worlds." + plotMeWorldName + ".WallBlockId"); //
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".wall.block", wallblock);
 | 
			
		||||
                    final String floor = plotConfig.getString("worlds." + plotMeWorldName + ".PlotFloorBlockId"); //
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
 | 
			
		||||
                    final String filling = plotConfig.getString("worlds." + plotMeWorldName + ".PlotFillingBlockId"); //
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
 | 
			
		||||
                    final String road = plotConfig.getString("worlds." + plotMeWorldName + ".RoadMainBlockId");
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".road.block", road);
 | 
			
		||||
                    Integer height = plotConfig.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
 | 
			
		||||
                    if (height == null) {
 | 
			
		||||
                        height = 64;
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
                    Connection connection = connector.getPlotMeConnection(plotConfig, dataFolder);
 | 
			
		||||
                    
 | 
			
		||||
                    if (connection == null) {
 | 
			
		||||
                        sendMessage("Cannot connect to PlotMe DB. Conversion process will not continue");
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
                    sendMessage("PlotMe conversion has started. To disable this, please set 'plotme-convert.enabled' in the 'settings.yml'");
 | 
			
		||||
                    sendMessage("Connecting to PlotMe DB");
 | 
			
		||||
                    
 | 
			
		||||
                    int plotCount = 0;
 | 
			
		||||
                    final ArrayList<Plot> createdPlots = new ArrayList<>();
 | 
			
		||||
                    
 | 
			
		||||
                    sendMessage("Collecting plot data");
 | 
			
		||||
                    sendMessage(" - plotmePlots");
 | 
			
		||||
                    
 | 
			
		||||
                    final Set<String> worlds = getPlotMeWorlds(plotConfig);
 | 
			
		||||
                    HashMap<String, HashMap<PlotId, Plot>> plots = connector.getPlotMePlots(connection);
 | 
			
		||||
                    for (Entry<String, HashMap<PlotId, Plot>> entry : plots.entrySet()) {
 | 
			
		||||
                        plotCount += entry.getValue().size();
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
                    if (!Settings.CONVERT_PLOTME) {
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
                    sendMessage(" - plotmeAllowed");
 | 
			
		||||
                    
 | 
			
		||||
                    sendMessage("Collected " + plotCount + " plots from PlotMe");
 | 
			
		||||
                    PlotSquared.config.set("worlds." + world + ".road.height", height);
 | 
			
		||||
                    PlotSquared.config.save(PlotSquared.configFile);
 | 
			
		||||
                } catch (final Exception e) {
 | 
			
		||||
                    sendMessage("&c-- &lFailed to save configuration for world '" + world + "'\nThis will need to be done using the setup command, or manually");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            final File PLOTME_DG_FILE = new File(dataFolder + File.separator + "PlotMe-DefaultGenerator" + File.separator + "config.yml");
 | 
			
		||||
            if (PLOTME_DG_FILE.exists()) {
 | 
			
		||||
                final YamlConfiguration PLOTME_DG_YML = YamlConfiguration.loadConfiguration(PLOTME_DG_FILE);
 | 
			
		||||
                try {
 | 
			
		||||
                    for (final String world : plots.keySet()) {
 | 
			
		||||
                        sendMessage("Copying config for: " + world);
 | 
			
		||||
                        try {
 | 
			
		||||
                            final String plotMeWorldName = world.toLowerCase();
 | 
			
		||||
                            final Integer pathwidth = plotConfig.getInt("worlds." + plotMeWorldName + ".PathWidth"); //
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".road.width", pathwidth);
 | 
			
		||||
                            final Integer plotsize = plotConfig.getInt("worlds." + plotMeWorldName + ".PlotSize"); //
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".plot.size", plotsize);
 | 
			
		||||
                            final String wallblock = plotConfig.getString("worlds." + plotMeWorldName + ".WallBlockId"); //
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".wall.block", wallblock);
 | 
			
		||||
                            final String floor = plotConfig.getString("worlds." + plotMeWorldName + ".PlotFloorBlockId"); //
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
 | 
			
		||||
                            final String filling = plotConfig.getString("worlds." + plotMeWorldName + ".PlotFillingBlockId"); //
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
 | 
			
		||||
                            final String road = plotConfig.getString("worlds." + plotMeWorldName + ".RoadMainBlockId");
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".road.block", road);
 | 
			
		||||
                            Integer height = plotConfig.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
 | 
			
		||||
                            if (height == null) {
 | 
			
		||||
                        final String plotMeWorldName = world.toLowerCase();
 | 
			
		||||
                        Integer pathwidth = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".PathWidth"); //
 | 
			
		||||
                        if (pathwidth == null) {
 | 
			
		||||
                            pathwidth = 7;
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".road.width", pathwidth);
 | 
			
		||||
                        Integer plotsize = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".PlotSize"); //
 | 
			
		||||
                        if (plotsize == null) {
 | 
			
		||||
                            plotsize = 32;
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".plot.size", plotsize);
 | 
			
		||||
                        String wallblock = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".WallBlock"); //
 | 
			
		||||
                        if (wallblock == null) {
 | 
			
		||||
                            wallblock = "44";
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".wall.block", wallblock);
 | 
			
		||||
                        String floor = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".PlotFloorBlock"); //
 | 
			
		||||
                        if (floor == null) {
 | 
			
		||||
                            floor = "2";
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
 | 
			
		||||
                        String filling = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".FillBlock"); //
 | 
			
		||||
                        if (filling == null) {
 | 
			
		||||
                            filling = "3";
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
 | 
			
		||||
                        String road = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".RoadMainBlock");
 | 
			
		||||
                        if (road == null) {
 | 
			
		||||
                            road = "5";
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".road.block", road);
 | 
			
		||||
                        Integer height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
 | 
			
		||||
                        if ((height == null) || (height == 0)) {
 | 
			
		||||
                            height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".GroundHeight"); //
 | 
			
		||||
                            if ((height == null) || (height == 0)) {
 | 
			
		||||
                                height = 64;
 | 
			
		||||
                            }
 | 
			
		||||
                            PlotSquared.config.set("worlds." + world + ".road.height", height);
 | 
			
		||||
                            PlotSquared.config.save(PlotSquared.configFile);
 | 
			
		||||
                        } catch (final Exception e) {
 | 
			
		||||
                            sendMessage("&c-- &lFailed to save configuration for world '" + world + "'\nThis will need to be done using the setup command, or manually");
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    final File PLOTME_DG_FILE = new File(dataFolder + File.separator + "PlotMe-DefaultGenerator" + File.separator + "config.yml");
 | 
			
		||||
                    if (PLOTME_DG_FILE.exists()) {
 | 
			
		||||
                        final YamlConfiguration PLOTME_DG_YML = YamlConfiguration.loadConfiguration(PLOTME_DG_FILE);
 | 
			
		||||
                        try {
 | 
			
		||||
                            for (final String world : plots.keySet()) {
 | 
			
		||||
                                final String plotMeWorldName = world.toLowerCase();
 | 
			
		||||
                                Integer pathwidth = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".PathWidth"); //
 | 
			
		||||
                                if (pathwidth == null) {
 | 
			
		||||
                                    pathwidth = 7;
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".road.width", pathwidth);
 | 
			
		||||
                                Integer plotsize = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".PlotSize"); //
 | 
			
		||||
                                if (plotsize == null) {
 | 
			
		||||
                                    plotsize = 32;
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".plot.size", plotsize);
 | 
			
		||||
                                String wallblock = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".WallBlock"); //
 | 
			
		||||
                                if (wallblock == null) {
 | 
			
		||||
                                    wallblock = "44";
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".wall.block", wallblock);
 | 
			
		||||
                                String floor = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".PlotFloorBlock"); //
 | 
			
		||||
                                if (floor == null) {
 | 
			
		||||
                                    floor = "2";
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
 | 
			
		||||
                                String filling = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".FillBlock"); //
 | 
			
		||||
                                if (filling == null) {
 | 
			
		||||
                                    filling = "3";
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
 | 
			
		||||
                                String road = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".RoadMainBlock");
 | 
			
		||||
                                if (road == null) {
 | 
			
		||||
                                    road = "5";
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".road.block", road);
 | 
			
		||||
                                Integer height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
 | 
			
		||||
                                if ((height == null) || (height == 0)) {
 | 
			
		||||
                                    height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".GroundHeight"); //
 | 
			
		||||
                                    if ((height == null) || (height == 0)) {
 | 
			
		||||
                                        height = 64;
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".road.height", height);
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".plot.height", height);
 | 
			
		||||
                                PlotSquared.config.set("worlds." + world + ".wall.height", height);
 | 
			
		||||
                                PlotSquared.config.save(PlotSquared.configFile);
 | 
			
		||||
                            }
 | 
			
		||||
                        } catch (final Exception e) {
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    for (final String world : plots.keySet()) {
 | 
			
		||||
                        int duplicate = 0;
 | 
			
		||||
                        for (final Plot plot : plots.get(world).values()) {
 | 
			
		||||
                            if (!PlotSquared.getPlots(world).containsKey(plot.id)) {
 | 
			
		||||
                                createdPlots.add(plot);
 | 
			
		||||
                            } else {
 | 
			
		||||
                                duplicate++;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (duplicate > 0) {
 | 
			
		||||
                            PlotSquared.log("&c[WARNING] Found " + duplicate + " duplicate plots already in DB for world: '" + world + "'. Have you run the converter already?");
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    sendMessage("Creating plot DB");
 | 
			
		||||
                    Thread.sleep(1000);
 | 
			
		||||
                    DBFunc.createPlotsAndData(createdPlots, new Runnable() {
 | 
			
		||||
                        @Override
 | 
			
		||||
                        public void run() {
 | 
			
		||||
                            sendMessage("&aDatabase conversion is now complete!");
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                    sendMessage("Saving configuration...");
 | 
			
		||||
                    try {
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".road.height", height);
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".plot.height", height);
 | 
			
		||||
                        PlotSquared.config.set("worlds." + world + ".wall.height", height);
 | 
			
		||||
                        PlotSquared.config.save(PlotSquared.configFile);
 | 
			
		||||
                    } catch (final IOException e) {
 | 
			
		||||
                        sendMessage(" - &cFailed to save configuration.");
 | 
			
		||||
                    }
 | 
			
		||||
                    TaskManager.runTask(new Runnable() {
 | 
			
		||||
                        @Override
 | 
			
		||||
                        public void run() {
 | 
			
		||||
                            try {
 | 
			
		||||
                                boolean MV = false;
 | 
			
		||||
                                boolean MW = false;
 | 
			
		||||
                                if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
 | 
			
		||||
                                    MV = true;
 | 
			
		||||
                                } else if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) {
 | 
			
		||||
                                    MW = true;
 | 
			
		||||
                                }
 | 
			
		||||
                                for (final String worldname : worlds) {
 | 
			
		||||
                                    final World world = Bukkit.getWorld(getWorld(worldname));
 | 
			
		||||
                                    if (world == null) {
 | 
			
		||||
                                        sendMessage("&cInvalid world in PlotMe configuration: " + worldname);
 | 
			
		||||
                                    }
 | 
			
		||||
                                    final String actualWorldName = world.getName();
 | 
			
		||||
                                    sendMessage("Reloading generator for world: '" + actualWorldName + "'...");
 | 
			
		||||
                                    PlotSquared.removePlotWorld(actualWorldName);
 | 
			
		||||
                                    if (MV) {
 | 
			
		||||
                                        // unload world with MV
 | 
			
		||||
                                        Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv unload " + actualWorldName);
 | 
			
		||||
                                        try {
 | 
			
		||||
                                            Thread.sleep(1000);
 | 
			
		||||
                                        } catch (final InterruptedException ex) {
 | 
			
		||||
                                            Thread.currentThread().interrupt();
 | 
			
		||||
                                        }
 | 
			
		||||
                                        // load world with MV
 | 
			
		||||
                                        Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv import " + actualWorldName + " normal -g PlotSquared");
 | 
			
		||||
                                    } else if (MW) {
 | 
			
		||||
                                        // unload world with MW
 | 
			
		||||
                                        Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw unload " + actualWorldName);
 | 
			
		||||
                                        try {
 | 
			
		||||
                                            Thread.sleep(1000);
 | 
			
		||||
                                        } catch (final InterruptedException ex) {
 | 
			
		||||
                                            Thread.currentThread().interrupt();
 | 
			
		||||
                                        }
 | 
			
		||||
                                        // load world with MW
 | 
			
		||||
                                        Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + actualWorldName + " plugin:PlotSquared");
 | 
			
		||||
                                    } else {
 | 
			
		||||
                                        // Load using Bukkit API
 | 
			
		||||
                                        // - User must set generator manually
 | 
			
		||||
                                        Bukkit.getServer().unloadWorld(world, true);
 | 
			
		||||
                                        final World myworld = WorldCreator.name(actualWorldName).generator(new HybridGen()).createWorld();
 | 
			
		||||
                                        myworld.save();
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                                PlotSquared.setAllPlotsRaw(DBFunc.getPlots());
 | 
			
		||||
                            } catch (final Exception e) {
 | 
			
		||||
                                e.printStackTrace();
 | 
			
		||||
                            }
 | 
			
		||||
                            sendMessage("&cPlease wait until database conversion is complete. You will be notified when this happens");
 | 
			
		||||
                            PlotSquared.log("&c - Stop the server");
 | 
			
		||||
                            PlotSquared.log("&c - Disable 'plotme-convert.enabled' in the settings.yml");
 | 
			
		||||
                            PlotSquared.log("&c - Correct any generator settings that haven't copied to 'settings.yml' properly");
 | 
			
		||||
                            PlotSquared.log("&c - Start the server");
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                } catch (final Exception e) {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }, 20);
 | 
			
		||||
            for (final String world : plots.keySet()) {
 | 
			
		||||
                int duplicate = 0;
 | 
			
		||||
                for (final Plot plot : plots.get(world).values()) {
 | 
			
		||||
                    if (!PlotSquared.getPlots(world).containsKey(plot.id)) {
 | 
			
		||||
                        createdPlots.add(plot);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        duplicate++;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                if (duplicate > 0) {
 | 
			
		||||
                    PlotSquared.log("&c[WARNING] Found " + duplicate + " duplicate plots already in DB for world: '" + world + "'. Have you run the converter already?");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            sendMessage("Creating plot DB");
 | 
			
		||||
            Thread.sleep(1000);
 | 
			
		||||
            DBFunc.createPlotsAndData(createdPlots, new Runnable() {
 | 
			
		||||
                @Override
 | 
			
		||||
                public void run() {
 | 
			
		||||
                    sendMessage("&aDatabase conversion is now complete!");
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            sendMessage("Saving configuration...");
 | 
			
		||||
            try {
 | 
			
		||||
                PlotSquared.config.save(PlotSquared.configFile);
 | 
			
		||||
            } catch (final IOException e) {
 | 
			
		||||
                sendMessage(" - &cFailed to save configuration.");
 | 
			
		||||
            }
 | 
			
		||||
            TaskManager.runTask(new Runnable() {
 | 
			
		||||
                @Override
 | 
			
		||||
                public void run() {
 | 
			
		||||
                    try {
 | 
			
		||||
                        boolean MV = false;
 | 
			
		||||
                        boolean MW = false;
 | 
			
		||||
                        if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
 | 
			
		||||
                            MV = true;
 | 
			
		||||
                        } else if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) {
 | 
			
		||||
                            MW = true;
 | 
			
		||||
                        }
 | 
			
		||||
                        for (final String worldname : worlds) {
 | 
			
		||||
                            final World world = Bukkit.getWorld(getWorld(worldname));
 | 
			
		||||
                            if (world == null) {
 | 
			
		||||
                                sendMessage("&cInvalid world in PlotMe configuration: " + worldname);
 | 
			
		||||
                            }
 | 
			
		||||
                            final String actualWorldName = world.getName();
 | 
			
		||||
                            sendMessage("Reloading generator for world: '" + actualWorldName + "'...");
 | 
			
		||||
                            PlotSquared.removePlotWorld(actualWorldName);
 | 
			
		||||
                            if (MV) {
 | 
			
		||||
                                // unload world with MV
 | 
			
		||||
                                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv unload " + actualWorldName);
 | 
			
		||||
                                try {
 | 
			
		||||
                                    Thread.sleep(1000);
 | 
			
		||||
                                } catch (final InterruptedException ex) {
 | 
			
		||||
                                    Thread.currentThread().interrupt();
 | 
			
		||||
                                }
 | 
			
		||||
                                // load world with MV
 | 
			
		||||
                                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv import " + actualWorldName + " normal -g PlotSquared");
 | 
			
		||||
                            } else if (MW) {
 | 
			
		||||
                                // unload world with MW
 | 
			
		||||
                                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw unload " + actualWorldName);
 | 
			
		||||
                                try {
 | 
			
		||||
                                    Thread.sleep(1000);
 | 
			
		||||
                                } catch (final InterruptedException ex) {
 | 
			
		||||
                                    Thread.currentThread().interrupt();
 | 
			
		||||
                                }
 | 
			
		||||
                                // load world with MW
 | 
			
		||||
                                Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + actualWorldName + " plugin:PlotSquared");
 | 
			
		||||
                            } else {
 | 
			
		||||
                                // Load using Bukkit API
 | 
			
		||||
                                // - User must set generator manually
 | 
			
		||||
                                Bukkit.getServer().unloadWorld(world, true);
 | 
			
		||||
                                final World myworld = WorldCreator.name(actualWorldName).generator(new HybridGen()).createWorld();
 | 
			
		||||
                                myworld.save();
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        PlotSquared.setAllPlotsRaw(DBFunc.getPlots());
 | 
			
		||||
                    } catch (final Exception e) {
 | 
			
		||||
                        e.printStackTrace();
 | 
			
		||||
                    }
 | 
			
		||||
                    sendMessage("&cPlease wait until database conversion is complete. You will be notified when this happens");
 | 
			
		||||
                    PlotSquared.log("&c - Stop the server");
 | 
			
		||||
                    PlotSquared.log("&c - Disable 'plotme-convert.enabled' in the settings.yml");
 | 
			
		||||
                    PlotSquared.log("&c - Correct any generator settings that haven't copied to 'settings.yml' properly");
 | 
			
		||||
                    PlotSquared.log("&c - Start the server");
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        } catch (final Exception e) {
 | 
			
		||||
            PlotSquared.log("&/end/");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static String getWorld(final String world) {
 | 
			
		||||
 
 | 
			
		||||
@@ -420,7 +420,7 @@ public class MainUtil {
 | 
			
		||||
                    if (ly) {
 | 
			
		||||
                        if (!plot.settings.getMerged(1) || !plot.settings.getMerged(2)) {
 | 
			
		||||
                            if (removeRoads) { 
 | 
			
		||||
                                manager.removeRoadSouthEast(plotworld, plot);
 | 
			
		||||
                                MainUtil.removeRoadSouthEast(plotworld, plot);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
@@ -512,7 +512,7 @@ public class MainUtil {
 | 
			
		||||
                lesserPlot.settings.setMerged(2, true);
 | 
			
		||||
                greaterPlot.settings.setMerged(0, true);
 | 
			
		||||
                if (removeRoads) {
 | 
			
		||||
                    manager.removeRoadSouth(plotworld, lesserPlot);
 | 
			
		||||
                    MainUtil.removeRoadSouth(plotworld, lesserPlot);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
@@ -520,7 +520,7 @@ public class MainUtil {
 | 
			
		||||
                lesserPlot.settings.setMerged(1, true);
 | 
			
		||||
                greaterPlot.settings.setMerged(3, true);
 | 
			
		||||
                if (removeRoads) {
 | 
			
		||||
                    manager.removeRoadEast(plotworld, lesserPlot);
 | 
			
		||||
                    MainUtil.removeRoadEast(plotworld, lesserPlot);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user