Skip to content

Commit 698b315

Browse files
Improve migration file errors (#7929)
1 parent 8bca919 commit 698b315

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

patches/server/0004-Paper-config-files.patch

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -847,10 +847,10 @@ index 0000000000000000000000000000000000000000..69add4a7f1147015806bc9b63a8340d1
847847
+}
848848
diff --git a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
849849
new file mode 100644
850-
index 0000000000000000000000000000000000000000..be64437ba7630fe069aaea502932b514c85162f8
850+
index 0000000000000000000000000000000000000000..bc46e342b398dc56c976702d98ff3646995eb41e
851851
--- /dev/null
852852
+++ b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
853-
@@ -0,0 +1,384 @@
853+
@@ -0,0 +1,396 @@
854854
+package io.papermc.paper.configuration;
855855
+
856856
+import com.google.common.base.Suppliers;
@@ -926,7 +926,8 @@ index 0000000000000000000000000000000000000000..be64437ba7630fe069aaea502932b514
926926
+ static final String GLOBAL_CONFIG_FILE_NAME = "paper-global.yml";
927927
+ static final String WORLD_DEFAULTS_CONFIG_FILE_NAME = "paper-world-defaults.yml";
928928
+ static final String WORLD_CONFIG_FILE_NAME = "paper-world.yml";
929-
+ private static final Path BACKUP_DIR = Path.of("legacy-backup");
929+
+ public static final String CONFIG_DIR = "config";
930+
+ private static final String BACKUP_DIR ="legacy-backup";
930931
+
931932
+ private static final String GLOBAL_HEADER = """
932933
+ This is the global configuration file for Paper.
@@ -1139,12 +1140,23 @@ index 0000000000000000000000000000000000000000..be64437ba7630fe069aaea502932b514
11391140
+ public static PaperConfigurations setup(final Path legacyConfig, final Path configDir, final Path worldFolder, final File spigotConfig) throws Exception {
11401141
+ if (needsConverting(legacyConfig)) {
11411142
+ try {
1142-
+ Files.createDirectories(configDir.resolve(BACKUP_DIR));
1143-
+ final Path legacyConfigBackup = configDir.resolve(BACKUP_DIR).resolve(legacyConfig.getFileName().toString() + ".old");
1143+
+ if (Files.exists(configDir) && !Files.isDirectory(configDir)) {
1144+
+ throw new RuntimeException("Paper needs to create a '" + CONFIG_DIR + "' folder in the root of your server. You already have a non-directory named '" + CONFIG_DIR + "'. Please remove it and restart the server.");
1145+
+ }
1146+
+ final Path backupDir = configDir.resolve(BACKUP_DIR);
1147+
+ if (Files.exists(backupDir) && !Files.isDirectory(backupDir)) {
1148+
+ throw new RuntimeException("Paper needs to create a '" + BACKUP_DIR + "' directory in the '" + CONFIG_DIR + "' folder. You already have a non-directory named '" + BACKUP_DIR + "'. Please remove it and restart the server.");
1149+
+ }
1150+
+ Files.createDirectories(backupDir);
1151+
+ final String backupFileName = legacyConfig.getFileName().toString() + ".old";
1152+
+ final Path legacyConfigBackup = backupDir.resolve(backupFileName);
1153+
+ if (Files.exists(legacyConfigBackup) && !Files.isRegularFile(legacyConfigBackup)) {
1154+
+ throw new RuntimeException("Paper needs to create a '" + backupFileName + "' file in the '" + BACKUP_DIR + "' folder. You already have a non-file named '" + backupFileName + "'. Please remove it and restart the server.");
1155+
+ }
11441156
+ Files.move(legacyConfig, legacyConfigBackup, StandardCopyOption.REPLACE_EXISTING); // make backup
11451157
+ convert(legacyConfigBackup, configDir, worldFolder, spigotConfig);
11461158
+ } catch (final IOException ex) {
1147-
+ throw new RuntimeException("Could not convert paper.yml to the new configuration format", ex);
1159+
+ throw new RuntimeException("Could not convert '" + legacyConfig.getFileName().toString() + "' to the new configuration format", ex);
11481160
+ }
11491161
+ }
11501162
+ try {
@@ -4020,7 +4032,7 @@ index 6cc81495d8d09ff1fbb09f2e63a16ec4fa6138ec..73662a463fc9d38b39c4c779fcfaa09a
40204032
// CraftBukkit end
40214033

40224034
diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java
4023-
index 697ca7457115423a8c4d8a7d1f7a353237b56509..86c218e41fbe2a55b1319b37d26fd5da4f0b3da6 100644
4035+
index 697ca7457115423a8c4d8a7d1f7a353237b56509..3997024eca83af2d82132de3bb5770e155659797 100644
40244036
--- a/src/main/java/net/minecraft/server/Services.java
40254037
+++ b/src/main/java/net/minecraft/server/Services.java
40264038
@@ -7,14 +7,28 @@ import java.io.File;
@@ -4050,7 +4062,7 @@ index 697ca7457115423a8c4d8a7d1f7a353237b56509..86c218e41fbe2a55b1319b37d26fd5da
40504062
SignatureValidator signatureValidator = SignatureValidator.from(authenticationService.getServicesKey());
40514063
- return new Services(minecraftSessionService, signatureValidator, gameProfileRepository, gameProfileCache);
40524064
+ // Paper start
4053-
+ io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(((File) optionSet.valueOf("paper-settings")).toPath(), java.nio.file.Path.of("config"), rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));
4065+
+ io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(((File) optionSet.valueOf("paper-settings")).toPath(), java.nio.file.Path.of(io.papermc.paper.configuration.PaperConfigurations.CONFIG_DIR), rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));
40544066
+ return new Services(minecraftSessionService, signatureValidator, gameProfileRepository, gameProfileCache, paperConfigurations);
40554067
+ // Paper end
40564068
}

patches/server/0352-Anti-Xray.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,7 +1017,7 @@ index 0000000000000000000000000000000000000000..80a2dfb266ae1221680a7b24fee2f7e2
10171017
+ }
10181018
+}
10191019
diff --git a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
1020-
index be64437ba7630fe069aaea502932b514c85162f8..922ce2f0f4fa10c585939d6682b1a0a8612de0ea 100644
1020+
index bc46e342b398dc56c976702d98ff3646995eb41e..39522b2150106082754150ca77cb04e80ae35fac 100644
10211021
--- a/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
10221022
+++ b/src/main/java/io/papermc/paper/configuration/PaperConfigurations.java
10231023
@@ -1,5 +1,6 @@
@@ -1027,7 +1027,7 @@ index be64437ba7630fe069aaea502932b514c85162f8..922ce2f0f4fa10c585939d6682b1a0a8
10271027
import com.google.common.base.Suppliers;
10281028
import com.google.common.collect.Table;
10291029
import com.mojang.logging.LogUtils;
1030-
@@ -191,6 +192,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
1030+
@@ -192,6 +193,7 @@ public class PaperConfigurations extends Configurations<GlobalConfiguration, Wor
10311031
.register(DoubleOrDefault.SERIALIZER)
10321032
.register(BooleanOrDefault.SERIALIZER)
10331033
.register(Duration.SERIALIZER)

patches/server/0467-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ index 8fda43173012ed3134ed1f114143ceaad66cae4a..3e1b589031d46126bdd6b6f63d7a1333
2929
String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
3030
LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath());
3131
diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java
32-
index 86c218e41fbe2a55b1319b37d26fd5da4f0b3da6..c424ae9cc8d346d0f685de463f4e5772077c61dd 100644
32+
index 3997024eca83af2d82132de3bb5770e155659797..fbcbec480f66f0ebb57e1b937cb1bd320d53748c 100644
3333
--- a/src/main/java/net/minecraft/server/Services.java
3434
+++ b/src/main/java/net/minecraft/server/Services.java
3535
@@ -19,12 +19,12 @@ public record Services(MinecraftSessionService sessionService, SignatureValidato
@@ -47,4 +47,4 @@ index 86c218e41fbe2a55b1319b37d26fd5da4f0b3da6..c424ae9cc8d346d0f685de463f4e5772
4747
+ GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, userCacheFile); // Paper
4848
SignatureValidator signatureValidator = SignatureValidator.from(authenticationService.getServicesKey());
4949
// Paper start
50-
io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(((File) optionSet.valueOf("paper-settings")).toPath(), java.nio.file.Path.of("config"), rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));
50+
io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(((File) optionSet.valueOf("paper-settings")).toPath(), java.nio.file.Path.of(io.papermc.paper.configuration.PaperConfigurations.CONFIG_DIR), rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings"));

0 commit comments

Comments
 (0)