diff --git a/nms-patches/net/minecraft/world/item/ItemWorldMap.patch b/nms-patches/net/minecraft/world/item/ItemWorldMap.patch index d4c941060..4190db020 100644 --- a/nms-patches/net/minecraft/world/item/ItemWorldMap.patch +++ b/nms-patches/net/minecraft/world/item/ItemWorldMap.patch @@ -12,7 +12,7 @@ public class ItemWorldMap extends ItemWorldMapBase { public static final int IMAGE_WIDTH = 128; -@@ -68,7 +73,7 @@ +@@ -68,14 +73,18 @@ public static Integer d(ItemStack itemstack) { NBTTagCompound nbttagcompound = itemstack.getTag(); @@ -20,8 +20,9 @@ + return nbttagcompound != null && nbttagcompound.hasKeyOfType("map", 99) ? nbttagcompound.getInt("map") : -1; // CraftBukkit - make new maps for no tag } - private static int a(World world, int i, int j, int k, boolean flag, boolean flag1, ResourceKey resourcekey) { -@@ -76,6 +81,10 @@ +- private static int a(World world, int i, int j, int k, boolean flag, boolean flag1, ResourceKey resourcekey) { ++ public static int a(World world, int i, int j, int k, boolean flag, boolean flag1, ResourceKey resourcekey) { // PAIL private -> public + WorldMap worldmap = WorldMap.a((double) i, (double) j, (byte) k, flag, flag1, resourcekey); int l = world.getWorldMapCount(); world.a(a(l), worldmap); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index c90476311..80ba19d10 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1364,9 +1364,10 @@ public final class CraftServer implements Server { public CraftMapView createMap(World world) { Validate.notNull(world, "World cannot be null"); - net.minecraft.world.item.ItemStack stack = new net.minecraft.world.item.ItemStack(Items.MAP, 1); - WorldMap worldmap = ItemWorldMap.getSavedMap(stack, ((CraftWorld) world).getHandle()); - return worldmap.mapView; + net.minecraft.world.level.World minecraftWorld = ((CraftWorld) world).getHandle(); + // creates a new map at world spawn with the scale of 3, with out tracking position and unlimited tracking + int newId = ItemWorldMap.a(minecraftWorld, minecraftWorld.getWorldData().a(), minecraftWorld.getWorldData().c(), 3, false, false, minecraftWorld.getDimensionKey()); + return minecraftWorld.a(ItemWorldMap.a(newId)).mapView; } @Override