mapsave bug fixes for windows servers

This commit is contained in:
Tyler Murphy 2022-05-16 18:06:45 -04:00
parent 416e459af2
commit 491e426ce9
3 changed files with 24 additions and 14 deletions

View file

@ -26,6 +26,7 @@ import org.bukkit.event.player.PlayerEvent;
public class PlayerJumpEvent extends PlayerEvent implements Cancellable { public class PlayerJumpEvent extends PlayerEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private boolean cancel = false; private boolean cancel = false;
public PlayerJumpEvent(Player player) { public PlayerJumpEvent(Player player) {
@ -44,6 +45,12 @@ public class PlayerJumpEvent extends PlayerEvent implements Cancellable {
@Override @Override
public HandlerList getHandlers() { public HandlerList getHandlers() {
return null; return handlers;
} }
@SuppressWarnings("unused")
public static HandlerList getHandlerList() {
return handlers;
}
} }

View file

@ -41,6 +41,7 @@ public class PAPIExpansion extends PlaceholderExpansion {
if (args.length < 1) return null; if (args.length < 1) return null;
if (args[0].equals("stats") && args.length == 2) { if (args[0].equals("stats") && args.length == 2) {
PlayerInfo info = database.getGameData().getInfo(player.getUniqueId()); PlayerInfo info = database.getGameData().getInfo(player.getUniqueId());
if (info == null) return placeholderNoData;
return getValue(info, args[1]); return getValue(info, args[1]);
} else if (args[0].equals("stats") && args.length == 3) { } else if (args[0].equals("stats") && args.length == 3) {
UUID uuid; UUID uuid;
@ -62,6 +63,7 @@ public class PAPIExpansion extends PlaceholderExpansion {
} else if (args[0].equals("rank-place") && args.length == 2) { } else if (args[0].equals("rank-place") && args.length == 2) {
if (getRanking(args[1]) == null) { return placeholderError; } if (getRanking(args[1]) == null) { return placeholderError; }
PlayerInfo info = database.getGameData().getInfo(player.getUniqueId()); PlayerInfo info = database.getGameData().getInfo(player.getUniqueId());
if (info == null) return placeholderNoData;
if (getValue(info, args[1]).equals("0")) { return "-"; } if (getValue(info, args[1]).equals("0")) { return "-"; }
Integer count = database.getGameData().getRanking(getRanking(args[1]), player.getUniqueId()); Integer count = database.getGameData().getRanking(getRanking(args[1]), player.getUniqueId());
if (count == null) { return placeholderNoData; } if (count == null) { return placeholderNoData; }
@ -71,6 +73,7 @@ public class PAPIExpansion extends PlaceholderExpansion {
try { uuid = Main.getInstance().getServer().getOfflinePlayer(args[2]).getUniqueId(); } catch (Exception e) { return placeholderError; } try { uuid = Main.getInstance().getServer().getOfflinePlayer(args[2]).getUniqueId(); } catch (Exception e) { return placeholderError; }
if (getRanking(args[1]) == null) { return placeholderError; } if (getRanking(args[1]) == null) { return placeholderError; }
PlayerInfo info = database.getGameData().getInfo(player.getUniqueId()); PlayerInfo info = database.getGameData().getInfo(player.getUniqueId());
if (info == null) return placeholderNoData;
if (getValue(info, args[1]).equals("0")) { return "-"; } if (getValue(info, args[1]).equals("0")) { return "-"; }
Integer count = database.getGameData().getRanking(getRanking(args[1]), uuid); Integer count = database.getGameData().getRanking(getRanking(args[1]), uuid);
if (count == null) { return placeholderNoData; } if (count == null) { return placeholderNoData; }

View file

@ -78,28 +78,28 @@ public class WorldLoader {
} }
public String save() { public String save() {
World world = Bukkit.getServer().getWorld(mapName);
if(world == null){
throw new RuntimeException("Invalid world to save: " + mapName);
}
File current = new File(Main.getInstance().getWorldContainer()+File.separator+ mapName); File current = new File(Main.getInstance().getWorldContainer()+File.separator+ mapName);
if (current.exists()) { if (current.exists()) {
try { try {
File destenation = new File(Main.getInstance().getWorldContainer()+File.separator+ saveName); File destination = new File(Main.getInstance().getWorldContainer()+File.separator+ saveName);
File temp_destenation = new File(Main.getInstance().getWorldContainer()+File.separator+"temp_"+ saveName); File temp_destination = new File(Main.getInstance().getWorldContainer()+File.separator+"temp_"+ saveName);
copyFileFolder("region",true); copyFileFolder("region",true);
copyFileFolder("entities",true); copyFileFolder("entities",true);
copyFileFolder("datapacks",false); copyFileFolder("datapacks",false);
copyFileFolder("data",false);
File srcFile = new File(current, "level.dat"); File srcFile = new File(current, "level.dat");
File destFile = new File(temp_destenation, "level.dat"); File destFile = new File(temp_destination, "level.dat");
copyFile(srcFile,destFile); copyFile(srcFile,destFile);
if (destenation.exists()) { if (destination.exists()) {
deleteDirectory(destenation); deleteDirectory(destination);
if (!destenation.mkdir()) {
throw new RuntimeException("Failed to create directory: "+destenation.getPath());
} }
}
if(!destenation.delete()){ if (!temp_destination.renameTo(destination)) {
throw new RuntimeException("Unable to delete folder: "+destenation.getPath()); throw new RuntimeException("Failed to rename directory: "+temp_destination.getPath());
}
if (!temp_destenation.renameTo(destenation)) {
throw new RuntimeException("Failed to rename directory: "+temp_destenation.getPath());
} }
} catch(IOException e) { } catch(IOException e) {
e.printStackTrace(); e.printStackTrace();