Files
CatServer/patches/net/minecraft/item/ItemEmptyMap.java.patch

35 lines
1.7 KiB
Diff

--- ../src-base/minecraft/net/minecraft/item/ItemEmptyMap.java
+++ ../src-work/minecraft/net/minecraft/item/ItemEmptyMap.java
@@ -8,6 +8,7 @@
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
+import net.minecraft.world.WorldServer;
import net.minecraft.world.storage.MapData;
public class ItemEmptyMap extends ItemMapBase
@@ -19,17 +20,20 @@
public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand)
{
- ItemStack itemstack = new ItemStack(Items.FILLED_MAP, 1, worldIn.getUniqueDataId("map"));
+ World worldMain = worldIn.getServer().getServer().worlds.get(0); // CraftBukkit - store reference to primary world
+ ItemStack itemstack = new ItemStack(Items.FILLED_MAP, 1, worldMain.getUniqueDataId("map")); // CraftBukkit - use primary world for maps
String s = "map_" + itemstack.getMetadata();
MapData mapdata = new MapData(s);
- worldIn.setItemData(s, mapdata);
+ worldMain.setItemData(s, mapdata); // CraftBukkit
mapdata.scale = 0;
mapdata.calculateMapCenter(playerIn.posX, playerIn.posZ, mapdata.scale);
- mapdata.dimension = worldIn.provider.getDimension();
+ mapdata.dimension = (byte) ((WorldServer) worldIn).dimension; // CraftBukkit - use bukkit dimension
mapdata.trackingPosition = true;
mapdata.markDirty();
--itemStackIn.stackSize;
+ org.bukkit.craftbukkit.event.CraftEventFactory.callEvent(new org.bukkit.event.server.MapInitializeEvent(mapdata.mapView)); // CraftBukkit
+
if (itemStackIn.stackSize <= 0)
{
return new ActionResult(EnumActionResult.SUCCESS, itemstack);