Config migration for cramming gamerule fix

This commit is contained in:
jmp
2020-12-02 15:04:19 -08:00
parent 7ed791400e
commit 08670a41a7
3 changed files with 73 additions and 22 deletions

View File

@@ -28,6 +28,22 @@ index 03c95b30d8..3b9b44851c 100644
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 6ab0a51b42..e21ef1bdc6 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -118,6 +118,11 @@ public class PaperConfig {
}
}
+ // Purpur start - public save method for config migration
+ saveConfig();
+ }
+ public static void saveConfig() {
+ // Purpur end
try {
config.save(CONFIG_FILE);
} catch (IOException ex) {
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index fcba187bbd..c1eb8e8679 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -86,7 +102,7 @@ index 59abca0fd2..ca4d260e8f 100644
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
new file mode 100644
index 0000000000..e83fcc0eff
index 0000000000..0dbd665043
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -0,0 +1,130 @@
@@ -145,8 +161,8 @@ index 0000000000..e83fcc0eff
+ commands = new HashMap<>();
+ commands.put("purpur", new PurpurCommand("purpur"));
+
+ version = getInt("config-version", 6);
+ set("config-version", 6);
+ version = getInt("config-version", 7);
+ set("config-version", 7);
+
+ readConfig(PurpurConfig.class, null);
+ }

View File

@@ -5,24 +5,8 @@ Subject: [PATCH] Config migration: disable saving projectiles to disk ->
projectile load/save limit of 0
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 6ab0a51b42..e21ef1bdc6 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -118,6 +118,11 @@ public class PaperConfig {
}
}
+ // Purpur start - public save method for config migration
+ saveConfig();
+ }
+ public static void saveConfig() {
+ // Purpur end
try {
config.save(CONFIG_FILE);
} catch (IOException ex) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 6f1086e256..c06f7dc24f 100644
index 06e40ffed1..3c4c099beb 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,6 +1,7 @@
@@ -52,7 +36,7 @@ index 6f1086e256..c06f7dc24f 100644
public static String afkBroadcastBack = "§e§o%s is no longer AFK";
public static String afkTabListPrefix = "[AFK] ";
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d42fe79ece..587d126db5 100644
index d42fe79ece..b5cda85f86 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1,5 +1,6 @@
@@ -69,7 +53,7 @@ index d42fe79ece..587d126db5 100644
+ private void migrateDisableProjectileSaving() {
+ if (PurpurConfig.version < 6) {
+ final boolean saveProjectilesToDisk = PurpurConfig.config.getBoolean("world-settings." + worldName + ".gameplay-mechanics.save-projectiles-to-disk", true);
+ set("gameplay-mechanics.save-projectiles-to-disk", null);
+ PurpurConfig.config.set("world-settings." + worldName + ".gameplay-mechanics.save-projectiles-to-disk", null);
+ if (!saveProjectilesToDisk) {
+ PaperConfig.config.set("world-settings." + worldName + ".projectile-load-save-per-chunk-limit", 0);
+ PaperConfig.saveConfig();

View File

@@ -0,0 +1,51 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: jmp <jasonpenilla2@me.com>
Date: Wed, 2 Dec 2020 14:49:10 -0800
Subject: [PATCH] Config migration: climbing should not bypass cramming
gamerule
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index de0776f8cd..674d06bfb3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -142,6 +142,17 @@ public class PurpurConfig {
}
}
+ private static void migrateClimbingCrammingFix() {
+ if (PurpurConfig.version < 7) {
+ final boolean climbingCrammingFix = getBoolean("world-settings.default.gameplay-mechanics.fix-climbing-bypassing-cramming-rule", false);
+ set("world-settings.default.gameplay-mechanics.fix-climbing-bypassing-cramming-rule", null);
+ if (climbingCrammingFix) {
+ PaperConfig.config.set("world-settings.default.fix-climbing-bypassing-cramming-rule", true);
+ PaperConfig.saveConfig();
+ }
+ }
+ }
+
public static String afkBroadcastAway = "§e§o%s is now AFK";
public static String afkBroadcastBack = "§e§o%s is no longer AFK";
public static String afkTabListPrefix = "[AFK] ";
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1c6ca8f272..de16aee87d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -96,6 +96,17 @@ public class PurpurWorldConfig {
}
}
+ private void migrateClimbingCrammingFix() {
+ if (PurpurConfig.version < 7) {
+ final boolean climbingCrammingFix = PurpurConfig.config.getBoolean("world-settings." + worldName + ".gameplay-mechanics.fix-climbing-bypassing-cramming-rule", false);
+ PurpurConfig.config.set("world-settings." + worldName + ".gameplay-mechanics.fix-climbing-bypassing-cramming-rule", null);
+ if (climbingCrammingFix) {
+ PaperConfig.config.set("world-settings." + worldName + ".fix-climbing-bypassing-cramming-rule", true);
+ PaperConfig.saveConfig();
+ }
+ }
+ }
+
public boolean armorstandSetNameVisible = false;
public boolean armorstandFixNametags = false;
public float armorstandStepHeight = 0.0F;