9
0
mirror of https://github.com/Dreeam-qwq/Gale.git synced 2025-12-23 08:49:28 +00:00

Ignore null legacy structure data

This commit is contained in:
Martijn Muijsers
2022-12-25 23:45:29 +01:00
parent 033e3ab6db
commit f3c57794a1
25 changed files with 77 additions and 6 deletions

View File

@@ -0,0 +1,71 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martijn Muijsers <martijnmuijsers@live.nl>
Date: Sun, 25 Dec 2022 23:39:05 +0100
Subject: [PATCH] Ignore null legacy structure data
License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
This patch is based on the following patch:
"Add null check in LegacyStructureDataHandler"
By: PureGero <puregero@gmail.com>
As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/LegacyStructureDataHandler.java b/src/main/java/net/minecraft/world/level/levelgen/structure/LegacyStructureDataHandler.java
index 3b2df0411f9ef85445a53292a65f805a80218979..99126888d4ccae266e55ed3d9ed858fb9ac80727 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/LegacyStructureDataHandler.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/LegacyStructureDataHandler.java
@@ -19,6 +19,7 @@ import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.dimension.LevelStem;
import net.minecraft.world.level.storage.DimensionDataStorage;
+import org.galemc.gale.configuration.GaleGlobalConfiguration;
public class LegacyStructureDataHandler {
@@ -171,6 +172,7 @@ public class LegacyStructureDataHandler {
private void populateCaches(@Nullable DimensionDataStorage persistentStateManager) {
if (persistentStateManager != null) {
+ boolean ignoreNullLegacyStructureData = GaleGlobalConfiguration.get().misc.ignoreNullLegacyStructureData; // Gale - MultiPaper - ignore null legacy structure data
Iterator iterator = this.legacyKeys.iterator();
while (iterator.hasNext()) {
@@ -178,7 +180,11 @@ public class LegacyStructureDataHandler {
CompoundTag nbttagcompound = new CompoundTag();
try {
- nbttagcompound = persistentStateManager.readTagFromDisk(s, 1493).getCompound("data").getCompound("Features");
+ // Gale start - MultiPaper - ignore null legacy structure data
+ CompoundTag tag = persistentStateManager.readTagFromDisk(s, 1493);
+ if (ignoreNullLegacyStructureData && tag == null) continue;
+ nbttagcompound = tag.getCompound("data").getCompound("Features");
+ // Gale end - MultiPaper - ignore null legacy structure data
if (nbttagcompound.isEmpty()) {
continue;
}
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index dcbd9b09ffbadaf0af13814c7da1e8b8899b9695..9c7a781240c0cdfee142f788ca73de6805ede02b 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -56,6 +56,19 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
public int premiumAccountSlowLoginTimeout = -1;
// Gale end - make slow login timeout configurable
+ // Gale start - MultiPaper - ignore null legacy structure data
+ /**
+ * Whether to ignore any legacy structure data, for which the NBT tag parser returns null for some reason.
+ * If true, no warning will be given when this happens.
+ * If false, an exception will be thrown in the console when this happens.
+ * <ul>
+ * <li><i>Default</i>: false</li>
+ * <li><i>Vanilla</i>: false</li>
+ * </ul>
+ */
+ public boolean ignoreNullLegacyStructureData = false;
+ // Gale end - MultiPaper - ignore null legacy structure data
+
public IncludeInTimingsReport includeInTimingsReport;
public class IncludeInTimingsReport extends ConfigurationPart {

View File

@@ -23,10 +23,10 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index dcbd9b09ffbadaf0af13814c7da1e8b8899b9695..77adb09c2cffc153b3cc210441aa8e6cdb98482b 100644 index 9c7a781240c0cdfee142f788ca73de6805ede02b..aab6c3dc79bd86e70c43ada8e3a8d073c16571ae 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -98,6 +98,14 @@ public class GaleGlobalConfiguration extends ConfigurationPart { @@ -111,6 +111,14 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
} }

View File

@@ -87,7 +87,7 @@ index 68247b9daf710c71f84e1fae9d91efed151d39aa..92b30f5293e80e078d8a1a740d22367e
int i = 29999999; int i = 29999999;
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index 77adb09c2cffc153b3cc210441aa8e6cdb98482b..b3abe36458699b32ecfcf9cf8685ad9479cb75e2 100644 index aab6c3dc79bd86e70c43ada8e3a8d073c16571ae..5cd1c4d360b879cfaf706f39b9c7127923241413 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -27,7 +27,29 @@ public class GaleGlobalConfiguration extends ConfigurationPart { @@ -27,7 +27,29 @@ public class GaleGlobalConfiguration extends ConfigurationPart {

View File

@@ -68,10 +68,10 @@ index b9a799997e3475117ab91d7f3edb5f2f243a9f6b..e23fdd5ba09b50b7eef0ca4f36c54807
import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.error.MarkedYAMLException; import org.yaml.snakeyaml.error.MarkedYAMLException;
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index b3abe36458699b32ecfcf9cf8685ad9479cb75e2..300c7a31a4b07a566659efff842ed15e8e478663 100644 index 5cd1c4d360b879cfaf706f39b9c7127923241413..45df85b2b7cf715422697d330971ff71ca585813 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -139,6 +139,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart { @@ -152,6 +152,7 @@ public class GaleGlobalConfiguration extends ConfigurationPart {
public boolean setBlockInFarChunk = true; // Gale - Purpur - do not log setBlock in far chunks public boolean setBlockInFarChunk = true; // Gale - Purpur - do not log setBlock in far chunks
public boolean unrecognizedRecipes = false; // Gale - Purpur - do not log unrecognized recipes public boolean unrecognizedRecipes = false; // Gale - Purpur - do not log unrecognized recipes
public boolean legacyMaterialInitialization = false; // Gale - Purpur - do not log legacy Material initialization public boolean legacyMaterialInitialization = false; // Gale - Purpur - do not log legacy Material initialization

View File

@@ -1908,7 +1908,7 @@ index 69acbab61a79c24312359a63086f9353d740113f..49ace73d901b6f55545bb21a93d026a0
} }
} catch (Exception ex) { } catch (Exception ex) {
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
index 300c7a31a4b07a566659efff842ed15e8e478663..cff8a4847ba5b920aed9ae5b9aae1f54373a8c6a 100644 index 45df85b2b7cf715422697d330971ff71ca585813..f5adad65a312df55fbbbe191c8919767c4dde3fb 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java --- a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
+++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java
@@ -2,11 +2,14 @@ @@ -2,11 +2,14 @@