mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-28 13:36:16 +01:00
Map handling improvements.
Fixed an NPE occurring under certain circumstances. Made it possible for maps to exist without having to associate them with a world.
This commit is contained in:
parent
ae43b837b0
commit
bb89847632
@ -45,15 +45,16 @@ public class WorldMap extends WorldMapBase {
|
|||||||
|
|
||||||
if (least != 0L && most != 0L) {
|
if (least != 0L && most != 0L) {
|
||||||
this.uniqueId = new UUID(most, least);
|
this.uniqueId = new UUID(most, least);
|
||||||
}
|
|
||||||
CraftWorld world = (CraftWorld) server.getWorld(this.uniqueId);
|
CraftWorld world = (CraftWorld) server.getWorld(this.uniqueId);
|
||||||
// Check if the stored world details are correct.
|
// Check if the stored world details are correct.
|
||||||
if (world == null) {
|
if (world == null) {
|
||||||
/* All Maps which do not have their valid world loaded are set to a dimension which hopefully won't be reached.
|
/* All Maps which do not have their valid world loaded are set to a dimension which hopefully won't be reached.
|
||||||
This is to prevent them being corrupted with the wrong map data. */
|
This is to prevent them being corrupted with the wrong map data. */
|
||||||
dimension = 127;
|
dimension = 127;
|
||||||
} else {
|
} else {
|
||||||
dimension = (byte) world.getHandle().dimension;
|
dimension = (byte) world.getHandle().dimension;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,8 +111,12 @@ public class WorldMap extends WorldMapBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nbttagcompound.setLong("UUIDLeast", this.uniqueId.getLeastSignificantBits());
|
/* Perform a second check to see if a matching world was found, this is a necessary
|
||||||
nbttagcompound.setLong("UUIDMost", this.uniqueId.getMostSignificantBits());
|
change incase Maps are forcefully unlinked from a World and lack a UID.*/
|
||||||
|
if (this.uniqueId != null) {
|
||||||
|
nbttagcompound.setLong("UUIDLeast", this.uniqueId.getLeastSignificantBits());
|
||||||
|
nbttagcompound.setLong("UUIDMost", this.uniqueId.getMostSignificantBits());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
nbttagcompound.a("dimension", this.map);
|
nbttagcompound.a("dimension", this.map);
|
||||||
|
Loading…
Reference in New Issue
Block a user