diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index c9ce7ff..4471236 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -57,14 +57,14 @@
papermc
- https://papermc.io/repo/repository/maven-public/
+ https://repo.papermc.io/repository/maven-public/
io.papermc.paper
paper-api
- 1.21.1-R0.1-SNAPSHOT
+ 1.21.4-R0.1-SNAPSHOT
provided
diff --git a/pom.xml b/pom.xml
index 41fffcc..5159e2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
papermc
- https://papermc.io/repo/repository/maven-public/
+ https://repo.papermc.io/repository/maven-public/
@@ -35,7 +35,7 @@
io.papermc.paper
paper-api
- 1.21.1-R0.1-SNAPSHOT
+ 1.21.4-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/de/kastenklicker/secureserverbackup/BackupRunnable.java b/src/main/java/de/kastenklicker/secureserverbackup/BackupRunnable.java
index 973f0dc..4cb2565 100644
--- a/src/main/java/de/kastenklicker/secureserverbackup/BackupRunnable.java
+++ b/src/main/java/de/kastenklicker/secureserverbackup/BackupRunnable.java
@@ -1,24 +1,28 @@
package de.kastenklicker.secureserverbackup;
import java.io.File;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.Objects;
import de.kastenklicker.secureserverbackuplibrary.Backup;
import de.kastenklicker.secureserverbackuplibrary.upload.FTPSClient;
-import de.kastenklicker.secureserverbackuplibrary.upload.NullUploadClient;
import de.kastenklicker.secureserverbackuplibrary.upload.SFTPClient;
import de.kastenklicker.secureserverbackuplibrary.upload.UploadClient;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitWorker;
+import org.jetbrains.annotations.NotNull;
public class BackupRunnable extends BukkitRunnable {
private final List excludeFiles;
+ private final List includedFiles;
private final File backupDirectory;
private final File mainDirectory;
- private final UploadClient uploadClient;
+ private final List uploadClients = new ArrayList<>();
private final long maxBackupDirectorySize;
private final BackupLogger backupLogger;
@@ -40,33 +44,46 @@ public BackupRunnable() {
// Get configs
excludeFiles = configuration.getStringList("excludedFiles");
+
+ // Exclude session locks, because those are locked by paper
+ excludeFiles.add("world/session.lock");
+ excludeFiles.add("world_nether/session.lock");
+ excludeFiles.add("world_the_end/session.lock");
+
+ includedFiles = configuration.getStringList("includedFiles");
+ if (includedFiles.isEmpty()) {
+ includedFiles.addAll(List.of(Objects.requireNonNull(mainDirectory.list())));
+ }
backupDirectory = new File(mainDirectory, configuration.getString("backupFolder", "backups"));
maxBackupDirectorySize = configuration.getLong("maxBackupFolderSize")
* (1000*1000*1000); // KB*MB*GB;
- // Get upload information
- String hostname = configuration.getString("hostname");
- int port = configuration.getInt("port");
- String username = configuration.getString("username");
- String authentication = configuration.getString("authentication");
- String knownHosts = configuration.getString("knownHosts");
- int timeout = configuration.getInt("timeout")*1000;
- String remoteDirectory = configuration.getString("remoteDirectory");
-
- switch (configuration.getString("uploadProtocol", "")) {
- case "sftp":
- if (knownHosts == null)
- throw new NullPointerException("Read null for knownHosts! Check your config.yml.");
- uploadClient = new SFTPClient(hostname, port, username, authentication,
- new File(knownHosts), timeout, remoteDirectory);
- break;
-
- case "ftps":
- uploadClient = new FTPSClient(hostname, port, username, authentication, remoteDirectory);
- break;
-
- default:
- uploadClient = new NullUploadClient();
+ @NotNull List