Fixed PlotMe conversion for world-name mismatches

Why does PlotMe have to make the world names lowercase?
This commit is contained in:
boy0001 2015-02-14 16:02:51 +11:00
parent 577c9dabf3
commit 5abe28cbaa
2 changed files with 41 additions and 26 deletions

View File

@ -8,7 +8,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<artifactId>PlotSquared</artifactId> <artifactId>PlotSquared</artifactId>
<version>2.7.0</version> <version>2.7.1</version>
<name>PlotSquared</name> <name>PlotSquared</name>
<packaging>jar</packaging> <packaging>jar</packaging>
<build> <build>

View File

@ -112,7 +112,9 @@ public class PlotMeConverter {
count++; count++;
final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ")); final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
final String name = r.getString("owner"); final String name = r.getString("owner");
final String world = r.getString("world"); final String world = getWorld(r.getString("world"));
if (!plotSize.containsKey(world)) { if (!plotSize.containsKey(world)) {
final int size = r.getInt("topZ") - r.getInt("bottomZ"); final int size = r.getInt("topZ") - r.getInt("bottomZ");
plotSize.put(world, size); plotSize.put(world, size);
@ -136,7 +138,7 @@ public class PlotMeConverter {
while (r.next()) { while (r.next()) {
final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ")); final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
final String name = r.getString("player"); final String name = r.getString("player");
final String world = r.getString("world"); final String world = getWorld(r.getString("world"));
UUID helper = UUIDHandler.getUUID(name); UUID helper = UUIDHandler.getUUID(name);
if (helper == null) { if (helper == null) {
if (name.equals("*")) { if (name.equals("*")) {
@ -155,7 +157,7 @@ public class PlotMeConverter {
while (r.next()) { while (r.next()) {
final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ")); final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
final String name = r.getString("player"); final String name = r.getString("player");
final String world = r.getString("world"); final String world = getWorld(r.getString("world"));
UUID denied = UUIDHandler.getUUID(name); UUID denied = UUIDHandler.getUUID(name);
if (denied == null) { if (denied == null) {
if (name.equals("*")) { if (name.equals("*")) {
@ -175,25 +177,26 @@ public class PlotMeConverter {
for (final String world : plots.keySet()) { for (final String world : plots.keySet()) {
sendMessage("Copying config for: " + world); sendMessage("Copying config for: " + world);
try { try {
final Integer pathwidth = plotConfig.getInt("worlds." + world + ".PathWidth"); // String plotMeWorldName = world.toLowerCase();
final Integer pathwidth = plotConfig.getInt("worlds." + plotMeWorldName + ".PathWidth"); //
PlotMain.config.set("worlds." + world + ".road.width", pathwidth); PlotMain.config.set("worlds." + world + ".road.width", pathwidth);
final Integer plotsize = plotConfig.getInt("worlds." + world + ".PlotSize"); // final Integer plotsize = plotConfig.getInt("worlds." + plotMeWorldName + ".PlotSize"); //
PlotMain.config.set("worlds." + world + ".plot.size", plotsize); PlotMain.config.set("worlds." + world + ".plot.size", plotsize);
final String wallblock = plotConfig.getString("worlds." + world + ".WallBlockId"); // final String wallblock = plotConfig.getString("worlds." + plotMeWorldName + ".WallBlockId"); //
PlotMain.config.set("worlds." + world + ".wall.block", wallblock); PlotMain.config.set("worlds." + world + ".wall.block", wallblock);
final String floor = plotConfig.getString("worlds." + world + ".PlotFloorBlockId"); // final String floor = plotConfig.getString("worlds." + plotMeWorldName + ".PlotFloorBlockId"); //
PlotMain.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor)); PlotMain.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
final String filling = plotConfig.getString("worlds." + world + ".PlotFillingBlockId"); // final String filling = plotConfig.getString("worlds." + plotMeWorldName + ".PlotFillingBlockId"); //
PlotMain.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling)); PlotMain.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
final String road = plotConfig.getString("worlds." + world + ".RoadMainBlockId"); final String road = plotConfig.getString("worlds." + plotMeWorldName + ".RoadMainBlockId");
PlotMain.config.set("worlds." + world + ".road.block", road); PlotMain.config.set("worlds." + world + ".road.block", road);
final Integer height = plotConfig.getInt("worlds." + world + ".RoadHeight"); // final Integer height = plotConfig.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
PlotMain.config.set("worlds." + world + ".road.height", height); PlotMain.config.set("worlds." + world + ".road.height", height);
} catch (final Exception e) { } 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"); sendMessage("&c-- &lFailed to save configuration for world '" + world + "'\nThis will need to be done using the setup command, or manually");
@ -205,25 +208,26 @@ public class PlotMeConverter {
final YamlConfiguration PLOTME_DG_YML = YamlConfiguration.loadConfiguration(PLOTME_DG_FILE); final YamlConfiguration PLOTME_DG_YML = YamlConfiguration.loadConfiguration(PLOTME_DG_FILE);
try { try {
for (final String world : plots.keySet()) { for (final String world : plots.keySet()) {
final Integer pathwidth = PLOTME_DG_YML.getInt("worlds." + world + ".PathWidth"); // String plotMeWorldName = world.toLowerCase();
final Integer pathwidth = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".PathWidth"); //
PlotMain.config.set("worlds." + world + ".road.width", pathwidth); PlotMain.config.set("worlds." + world + ".road.width", pathwidth);
final Integer plotsize = PLOTME_DG_YML.getInt("worlds." + world + ".PlotSize"); // final Integer plotsize = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".PlotSize"); //
PlotMain.config.set("worlds." + world + ".plot.size", plotsize); PlotMain.config.set("worlds." + world + ".plot.size", plotsize);
final String wallblock = PLOTME_DG_YML.getString("worlds." + world + ".WallBlock"); // final String wallblock = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".WallBlock"); //
PlotMain.config.set("worlds." + world + ".wall.block", wallblock); PlotMain.config.set("worlds." + world + ".wall.block", wallblock);
final String floor = PLOTME_DG_YML.getString("worlds." + world + ".PlotFloorBlock"); // final String floor = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".PlotFloorBlock"); //
PlotMain.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor)); PlotMain.config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
final String filling = PLOTME_DG_YML.getString("worlds." + world + ".FillBlock"); // final String filling = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".FillBlock"); //
PlotMain.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling)); PlotMain.config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
final String road = PLOTME_DG_YML.getString("worlds." + world + ".RoadMainBlock"); final String road = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".RoadMainBlock");
PlotMain.config.set("worlds." + world + ".road.block", road); PlotMain.config.set("worlds." + world + ".road.block", road);
final Integer height = PLOTME_DG_YML.getInt("worlds." + world + ".RoadHeight"); // final Integer height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
PlotMain.config.set("worlds." + world + ".road.height", height); PlotMain.config.set("worlds." + world + ".road.height", height);
} }
} catch (final Exception e) { } catch (final Exception e) {
@ -270,34 +274,35 @@ public class PlotMeConverter {
} }
for (final String worldname : worlds) { for (final String worldname : worlds) {
final World world = Bukkit.getWorld(worldname); final World world = Bukkit.getWorld(getWorld(worldname));
sendMessage("Reloading generator for world: '" + worldname + "'..."); final String actualWorldName = world.getName();
sendMessage("Reloading generator for world: '" + actualWorldName + "'...");
PlotMain.removePlotWorld(worldname); PlotMain.removePlotWorld(actualWorldName);
if (MV) { if (MV) {
// unload // unload
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv unload " + worldname); Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv unload " + actualWorldName);
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (final InterruptedException ex) { } catch (final InterruptedException ex) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} }
// load // load
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv import " + worldname + " normal -g PlotSquared"); Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv import " + actualWorldName + " normal -g PlotSquared");
} else if (MW) { } else if (MW) {
// unload // unload
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw unload " + worldname); Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw unload " + actualWorldName);
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (final InterruptedException ex) { } catch (final InterruptedException ex) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} }
// load // load
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + worldname + " plugin:PlotSquared"); Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + actualWorldName + " plugin:PlotSquared");
} else { } else {
Bukkit.getServer().unloadWorld(world, true); Bukkit.getServer().unloadWorld(world, true);
final World myworld = WorldCreator.name(worldname).generator(new HybridGen(worldname)).createWorld(); final World myworld = WorldCreator.name(actualWorldName).generator(new HybridGen(actualWorldName)).createWorld();
myworld.save(); myworld.save();
} }
} }
@ -316,6 +321,16 @@ public class PlotMeConverter {
} }
}, 20); }, 20);
} }
public String getWorld(String world) {
for (World newworld : Bukkit.getWorlds()) {
if (newworld.getName().equalsIgnoreCase(world)) {
return newworld.getName();
}
}
return world;
}
private UUID uuidFromBytes(byte[] byteArray) { private UUID uuidFromBytes(byte[] byteArray) {
ByteBuffer wrapped = ByteBuffer.wrap(byteArray); ByteBuffer wrapped = ByteBuffer.wrap(byteArray);
long minor = wrapped.getLong(); long minor = wrapped.getLong();