geforkt von Mirrors/Paper
89a1469d3f
Their chunk is set to null before removal, so we kept them around.
37 Zeilen
2.1 KiB
Diff
37 Zeilen
2.1 KiB
Diff
From 31bc897990cb6ff4b075db19b5d0ea01c1fff72c Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Mon, 22 Apr 2019 19:51:14 +0100
|
|
Subject: [PATCH] don't NPE on dimensionmanager toString
|
|
|
|
CraftBukkit uses vanillas DimensionManager, but does not actually
|
|
register its own dimension types, etc, due to vanilla
|
|
|
|
This causes issues because anything, e.g. command feedback, trying
|
|
to print information about the world will often attempt to print out
|
|
the dimension name, which ends up throwing an NPE due to the lack of
|
|
a registered type, we work around this by just returning the world name,
|
|
this is not super elegant, but is the only route that promises not to
|
|
break stuff.
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 050bf3eb48..56e8a613e9 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -997,7 +997,12 @@ public final class CraftServer implements Server {
|
|
}
|
|
|
|
DimensionManager actualDimension = DimensionManager.a(creator.environment().getId());
|
|
- DimensionManager internalDimension = DimensionManager.register(name, new DimensionManager(dimension, actualDimension.getSuffix(), actualDimension.folder, (w, manager) -> actualDimension.providerFactory.apply(w, manager), actualDimension.hasSkyLight(), actualDimension));
|
|
+ DimensionManager internalDimension = DimensionManager.register(name, new DimensionManager(dimension, actualDimension.getSuffix(), actualDimension.folder, (w, manager) -> actualDimension.providerFactory.apply(w, manager), actualDimension.hasSkyLight(), actualDimension) {
|
|
+ @Override
|
|
+ public String toString() {
|
|
+ return name;
|
|
+ }
|
|
+ });
|
|
WorldServer internal = (WorldServer) new WorldServer(console, console.executorService, sdm, worlddata, internalDimension, console.getMethodProfiler(), getServer().worldLoadListenerFactory.create(11), creator.environment(), generator);
|
|
|
|
if (!(worlds.containsKey(name.toLowerCase(java.util.Locale.ENGLISH)))) {
|
|
--
|
|
2.21.0
|
|
|