Use signal handler for checkpointing #254
@ -60,27 +60,27 @@ public class CheckpointUtils {
|
||||
Bukkit.getOnlinePlayers().forEach(player -> player.kickPlayer(null));
|
||||
|
||||
List<?> networkManagers = TinyProtocol.networkManagers.get(TinyProtocol.getServerConnection(Core.getInstance()));
|
||||
if(networkManagers.isEmpty()) {
|
||||
Path path = FileSystems.getDefault().getPath(checkpointFile);
|
||||
|
||||
try {
|
||||
freezeInternal(path);
|
||||
} catch (Exception e) {
|
||||
Bukkit.shutdown();
|
||||
throw new SecurityException(e);
|
||||
} finally {
|
||||
// Delete checkpoint
|
||||
try (Stream<Path> stream = Files.walk(path)) {
|
||||
stream.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);
|
||||
} catch (IOException e) {
|
||||
//ignore
|
||||
}
|
||||
}
|
||||
if(!networkManagers.isEmpty()) {
|
||||
Lixfel markierte diese Unterhaltung als gelöst
Veraltet
|
||||
Core.getInstance().getLogger().log(Level.INFO, "Waiting for players to disconnect for checkpointing");
|
||||
Bukkit.getScheduler().runTaskLater(Core.getInstance(), CheckpointUtils::freeze, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
Core.getInstance().getLogger().log(Level.INFO, "Waiting for players to disconnect for checkpointing");
|
||||
Bukkit.getScheduler().runTaskLater(Core.getInstance(), CheckpointUtils::freeze, 1);
|
||||
Path path = FileSystems.getDefault().getPath(checkpointFile);
|
||||
|
||||
try {
|
||||
freezeInternal(path);
|
||||
} catch (Exception e) {
|
||||
Bukkit.shutdown();
|
||||
throw new SecurityException(e);
|
||||
} finally {
|
||||
// Delete checkpoint
|
||||
try (Stream<Path> stream = Files.walk(path)) {
|
||||
stream.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);
|
||||
} catch (IOException e) {
|
||||
//ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static final Reflection.FieldAccessor<List> channelFutures = Reflection.getField(TinyProtocol.serverConnection, List.class, 0, ChannelFuture.class);
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Könnten wir dieses if bitte umdrehen? Fände ich schöner!