@Override public void d(ItemStack itemstack, World world, EntityHuman entityhuman) { if (itemstack.hasTag() && itemstack.getTag().getBoolean("map_is_scaling")) { WorldMap worldmap = Items.MAP.getSavedMap(itemstack, world); world = world.getServer().getServer().worlds.get(0); // CraftBukkit - use primary world for maps itemstack.setData(world.b("map")); WorldMap worldmap1 = new WorldMap("map_" + itemstack.getData()); worldmap1.scale = (byte) (worldmap.scale + 1); if (worldmap1.scale > 4) { worldmap1.scale = 4; } worldmap1.centerX = worldmap.centerX; worldmap1.centerZ = worldmap.centerZ; worldmap1.map = worldmap.map; worldmap1.c(); world.a("map_" + itemstack.getData(), worldmap1); // CraftBukkit start MapInitializeEvent event = new MapInitializeEvent(worldmap1.mapView); Bukkit.getServer().getPluginManager().callEvent(event); // CraftBukkit end } }
public WorldMap getSavedMap(ItemStack itemstack, World world) { World worldMain = world .getServer() .getServer() .worlds .get(0); // CraftBukkit - store reference to primary world String s = "map_" + itemstack.getData(); WorldMap worldmap = (WorldMap) worldMain.a(WorldMap.class, s); // CraftBukkit - use primary world for maps if (worldmap == null && !world.isStatic) { itemstack.setData(worldMain.b("map")); // CraftBukkit - use primary world for maps s = "map_" + itemstack.getData(); worldmap = new WorldMap(s); worldmap.scale = 3; int i = 128 * (1 << worldmap.scale); worldmap.centerX = Math.round((float) world.getWorldData().c() / (float) i) * i; worldmap.centerZ = Math.round(world.getWorldData().e() / i) * i; worldmap.map = (byte) ((WorldServer) world).dimension; // CraftBukkit - fixes Bukkit multiworld maps worldmap.c(); worldMain.a(s, worldmap); // CraftBukkit - use primary world for maps // CraftBukkit start MapInitializeEvent event = new MapInitializeEvent(worldmap.mapView); Bukkit.getServer().getPluginManager().callEvent(event); // CraftBukkit end } return worldmap; }
public float checkTemps(IInventory inv) { float temp = 0; float[] temp1 = new float[inv.getSizeInventory()]; for (int i = 0; i < inv.getSizeInventory(); i++) { ItemStack is = inv.getStackInSlot(i); if (is != null && is.hasTagCompound() && !is.getItem().getUnlocalizedName(is).contains("Clay")) { if (is.getTagCompound().hasKey("temperature")) { temp1[i] = is.getTagCompound().getFloat("temperature"); if (temp1[i] < TFC_ItemHeat.getMeltingPoint(is)) { return (float) -1; } } else { return (float) -1; } } else if (is == null) { temp1[i] = -1; } } int temp2 = 0; for (int i = 0; i < inv.getSizeInventory(); i++) { if (temp1[i] >= 0) { temp += temp1[i]; temp2++; } } if (temp2 > 0) { temp /= temp2; } return temp; }
public static Map b(int i, ItemStack itemstack) { Item item = itemstack.getItem(); HashMap hashmap = null; boolean flag = itemstack.getItem() == Items.BOOK; Enchantment[] aenchantment = Enchantment.byId; int j = aenchantment.length; for (int k = 0; k < j; ++k) { Enchantment enchantment = aenchantment[k]; if (enchantment != null && (enchantment.slot.canEnchant(item) || flag)) { for (int l = enchantment.getStartLevel(); l <= enchantment.getMaxLevel(); ++l) { if (i >= enchantment.a(l) && i <= enchantment.b(l)) { if (hashmap == null) { hashmap = new HashMap(); } hashmap.put(Integer.valueOf(enchantment.id), new EnchantmentInstance(enchantment, l)); } } } } return hashmap; }
private static ItemStack tryMoveInItem(IInventory iinventory, ItemStack itemstack, int i, int j) { ItemStack itemstack1 = iinventory.getItem(i); if (canPlaceItemInInventory(iinventory, itemstack, i, j)) { boolean flag = false; if (itemstack1 == null) { iinventory.setItem(i, itemstack); itemstack = null; flag = true; } else if (canMergeItems(itemstack1, itemstack)) { int k = itemstack.getMaxStackSize() - itemstack1.count; int l = Math.min(itemstack.count, k); itemstack.count -= l; itemstack1.count += l; flag = l > 0; } if (flag) { if (iinventory instanceof TileEntityHopper) { ((TileEntityHopper) iinventory) .c(((TileEntityHopper) iinventory).world.spigotConfig.hopperTransfer); // Spigot iinventory.update(); } iinventory.update(); } } return itemstack; }
public EnumInteractionResult a( EntityHuman entityhuman, World world, BlockPosition blockposition, EnumHand enumhand, EnumDirection enumdirection, float f, float f1, float f2) { IBlockData iblockdata = world.getType(blockposition); if (iblockdata.getBlock() == Blocks.JUKEBOX && !((Boolean) iblockdata.get(BlockJukeBox.HAS_RECORD)).booleanValue()) { if (!world.isClientSide) { if (true) return EnumInteractionResult.SUCCESS; // CraftBukkit - handled in ItemStack ItemStack itemstack = entityhuman.b(enumhand); ((BlockJukeBox) Blocks.JUKEBOX).a(world, blockposition, iblockdata, itemstack); world.a((EntityHuman) null, 1010, blockposition, Item.getId(this)); itemstack.subtract(1); entityhuman.b(StatisticList.Z); } return EnumInteractionResult.SUCCESS; } else { return EnumInteractionResult.PASS; } }
public static void a(Map map, ItemStack itemstack) { NBTTagList nbttaglist = new NBTTagList(); Iterator iterator = map.keySet().iterator(); while (iterator.hasNext()) { int i = ((Integer) iterator.next()).intValue(); NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.setShort("id", (short) i); nbttagcompound.setShort("lvl", (short) ((Integer) map.get(Integer.valueOf(i))).intValue()); nbttaglist.add(nbttagcompound); if (itemstack.getItem() == Items.ENCHANTED_BOOK) { Items.ENCHANTED_BOOK.a( itemstack, new EnchantmentInstance(i, ((Integer) map.get(Integer.valueOf(i))).intValue())); } } if (nbttaglist.size() > 0) { if (itemstack.getItem() != Items.ENCHANTED_BOOK) { itemstack.a("ench", (NBTBase) nbttaglist); } } else if (itemstack.hasTag()) { itemstack.getTag().remove("ench"); } }
@Override public void detectAndSendChanges() { for (int var1 = 0; var1 < this.inventorySlots.size(); ++var1) { ItemStack var2 = ((Slot) this.inventorySlots.get(var1)).getStack(); ItemStack var3 = (ItemStack) this.inventoryItemStacks.get(var1); if (!ItemStack.areItemStacksEqual(var3, var2)) { var3 = var2 == null ? null : var2.copy(); this.inventoryItemStacks.set(var1, var3); for (int var4 = 0; var4 < this.crafters.size(); ++var4) { ((ICrafting) this.crafters.get(var4)).sendSlotContents(this, var1, var3); } } } for (int var1 = 0; var1 < this.crafters.size(); ++var1) { ICrafting var2 = (ICrafting) this.crafters.get(var1); if (this.soilamt != this.sluice.soilAmount) { var2.sendProgressBarUpdate(this, 0, this.sluice.soilAmount); } if (this.progress != this.sluice.processTimeRemaining) { var2.sendProgressBarUpdate(this, 1, this.sluice.processTimeRemaining); } } soilamt = this.sluice.soilAmount; progress = this.sluice.processTimeRemaining; }
public void remove(World world, BlockPosition blockposition, IBlockData iblockdata) { if (!world.isStatic) { // CraftBukkit start - Drop item in code above, not here // if (!((Boolean) iblockdata.get(BlockSkull.NODROP)).booleanValue()) { if (false) { // CraftBukkit end TileEntity tileentity = world.getTileEntity(blockposition); if (tileentity instanceof TileEntitySkull) { TileEntitySkull tileentityskull = (TileEntitySkull) tileentity; ItemStack itemstack = new ItemStack(Items.SKULL, 1, this.getDropData(world, blockposition)); if (tileentityskull.getSkullType() == 3 && tileentityskull.getGameProfile() != null) { itemstack.setTag(new NBTTagCompound()); NBTTagCompound nbttagcompound = new NBTTagCompound(); GameProfileSerializer.serialize(nbttagcompound, tileentityskull.getGameProfile()); itemstack.getTag().set("SkullOwner", nbttagcompound); } a(world, blockposition, itemstack); } } super.remove(world, blockposition, iblockdata); } }
@Override public Material getPlaying() { ItemStack record = jukebox.getRecord(); if (record == null) { return Material.AIR; } return CraftMagicNumbers.getMaterial(record.getItem()); }
public void b(ICommandListener icommandlistener, String[] astring) { if (astring.length < 2) { throw new ExceptionUsage("commands.enchant.usage", new Object[0]); } else { EntityPlayer entityplayer = d(icommandlistener, astring[0]); int i = a(icommandlistener, astring[1], 0, Enchantment.byId.length - 1); int j = 1; ItemStack itemstack = entityplayer.bx(); if (itemstack == null) { throw new CommandException("commands.enchant.noItem", new Object[0]); } else { Enchantment enchantment = Enchantment.byId[i]; if (enchantment == null) { throw new ExceptionInvalidNumber( "commands.enchant.notFound", new Object[] {Integer.valueOf(i)}); } else if (!enchantment.canEnchant(itemstack)) { throw new CommandException("commands.enchant.cantEnchant", new Object[0]); } else { if (astring.length >= 3) { j = a( icommandlistener, astring[2], enchantment.getStartLevel(), enchantment.getMaxLevel()); } if (itemstack.hasTag()) { NBTTagList nbttaglist = itemstack.getEnchantments(); if (nbttaglist != null) { for (int k = 0; k < nbttaglist.size(); ++k) { short short1 = ((NBTTagCompound) nbttaglist.get(k)).getShort("id"); if (Enchantment.byId[short1] != null) { Enchantment enchantment1 = Enchantment.byId[short1]; if (!enchantment1.a(enchantment)) { throw new CommandException( "commands.enchant.cantCombine", new Object[] { enchantment.c(j), enchantment1.c(((NBTTagCompound) nbttaglist.get(k)).getShort("lvl")) }); } } } } } itemstack.addEnchantment(enchantment, j); a(icommandlistener, "commands.enchant.success", new Object[0]); } } } }
/* (non-Javadoc) * @see net.minecraft.server.Item#addCreativeItems(java.util.ArrayList) */ public void addCreativeItems(ArrayList arraylist) { ItemStack itemstack = new ItemStack(this, 1); itemstack.setData((int) getElectricityCapacity()); arraylist.add(itemstack); ItemStack itemstack1 = new ItemStack(this, 1); setElectricityStored( itemstack1, ((ItemElectric) itemstack1.getItem()).getElectricityCapacity()); arraylist.add(itemstack1); }
/** * Sets the electricity stored. * * @param itemstack the itemstack * @param f the f */ protected void setElectricityStored(ItemStack itemstack, float f) { if (itemstack.tag == null) { itemstack.setTag(new NBTTagCompound()); } float f1 = Math.max(Math.min(f, getElectricityCapacity()), 0.0F); itemstack.tag.setFloat("electricity", f1); itemstack.setData((int) (getElectricityCapacity() - f1)); }
public ItemStack cloneItemStack() { ItemStack itemstack = new ItemStack(this.id, this.count, this.damage); if (this.tag != null) { itemstack.tag = (NBTTagCompound) this.tag.clone(); } return itemstack; }
private static boolean tryTakeInItemFromSlot( IHopper ihopper, IInventory iinventory, int i, int j) { ItemStack itemstack = iinventory.getItem(i); if (itemstack != null && canTakeItemFromInventory(iinventory, itemstack, i, j)) { ItemStack itemstack1 = itemstack.cloneItemStack(); // CraftBukkit start - Call event on collection of items from inventories into the hopper CraftItemStack oitemstack = CraftItemStack.asCraftMirror(iinventory.splitStack(i, 1)); Inventory sourceInventory; // Have to special case large chests as they work oddly if (iinventory instanceof InventoryLargeChest) { sourceInventory = new org.bukkit.craftbukkit.inventory.CraftInventoryDoubleChest( (InventoryLargeChest) iinventory); } else if (isIronChest) { sourceInventory = null; } else { sourceInventory = iinventory.getOwner().getInventory(); } InventoryMoveItemEvent event = new InventoryMoveItemEvent( sourceInventory, oitemstack.clone(), ihopper.getOwner().getInventory(), false); ihopper.getWorld().getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { iinventory.setItem(i, itemstack1); if (ihopper instanceof TileEntityHopper) { ((TileEntityHopper) ihopper).c(ihopper.getWorld().spigotConfig.hopperTransfer); // Spigot } else if (ihopper instanceof EntityMinecartHopper) { ((EntityMinecartHopper) ihopper) .l(ihopper.getWorld().spigotConfig.hopperTransfer / 2); // Spigot } return false; } ItemStack itemstack2 = addItem(ihopper, CraftItemStack.asNMSCopy(event.getItem()), -1); if (itemstack2 == null || itemstack2.count == 0) { if (event.getItem().equals(oitemstack)) { iinventory.update(); } else { iinventory.setItem(i, itemstack1); } // CraftBukkit end return true; } iinventory.setItem(i, itemstack1); } return false; }
// CraftBukkit start public org.bukkit.inventory.ShapedRecipe toBukkitRecipe() { CraftItemStack result = CraftItemStack.asCraftMirror(this.result); CraftShapedRecipe recipe = new CraftShapedRecipe(result, this); switch (this.height) { case 1: switch (this.width) { case 1: recipe.shape("a"); break; case 2: recipe.shape("ab"); break; case 3: recipe.shape("abc"); break; } break; case 2: switch (this.width) { case 1: recipe.shape("a", "b"); break; case 2: recipe.shape("ab", "cd"); break; case 3: recipe.shape("abc", "def"); break; } break; case 3: switch (this.width) { case 1: recipe.shape("a", "b", "c"); break; case 2: recipe.shape("ab", "cd", "ef"); break; case 3: recipe.shape("abc", "def", "ghi"); break; } break; } char c = 'a'; for (ItemStack stack : this.items) { if (stack != null) { recipe.setIngredient( c, org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(stack.getItem()), stack.getData()); } c++; } return recipe; }
public void postPlace( World var1, BlockPosition var2, IBlockData var3, EntityLiving var4, ItemStack var5) { super.postPlace(var1, var2, var3, var4, var5); if (var5.hasDisplayName()) { TileEntity var6 = var1.getTileEntity(var2); if (var6 instanceof TileEntityEnchantTable) { ((TileEntityEnchantTable) var6).a(var5.getDisplayName()); } } }
public ItemStack a(int i) { ItemStack itemstack = new ItemStack(this.id, i, this.damage); if (this.tag != null) { itemstack.tag = (NBTTagCompound) this.tag.clone(); } this.count -= i; return itemstack; }
public static ItemStack a(ItemStack var0, class_acd var1) { MinecraftKey var2 = (MinecraftKey) class_acd.a.getKey(var1); if (var2 != null) { NBTTagCompound var3 = var0.hasTag() ? var0.getTag() : new NBTTagCompound(); var3.put("Potion", var2.toString()); var0.setTag(var3); } return var0; }
public boolean contentsMatch(int index, ItemStack is) { if (storage[index] != null && storage[index].getItem() == is.getItem() && storage[index].getItemDamage() == is.getItemDamage() && storage[index].stackSize < storage[index].getMaxStackSize()) { return true; } else { return false; } }
/** Called whenever the block is removed. */ @Override public void remove(World par1World, int par2, int par3, int par4) { if (!c) { TileEntityIronFurnace tileentityfurnace = (TileEntityIronFurnace) par1World.getTileEntity(par2, par3, par4); if (tileentityfurnace != null) { label0: for (int i = 0; i < tileentityfurnace.getSize(); i++) { ItemStack itemstack = tileentityfurnace.getItem(i); if (itemstack == null) { continue; } float f = a.nextFloat() * 0.8F + 0.1F; float f1 = a.nextFloat() * 0.8F + 0.1F; float f2 = a.nextFloat() * 0.8F + 0.1F; do { if (itemstack.count <= 0) { continue label0; } int j = a.nextInt(21) + 10; if (j > itemstack.count) { j = itemstack.count; } itemstack.count -= j; EntityItem entityitem = new EntityItem( par1World, par2 + f, par3 + f1, par4 + f2, new ItemStack(itemstack.id, j, itemstack.getData())); if (itemstack.hasTag()) { entityitem.itemStack.setTag((NBTTagCompound) itemstack.getTag().clone()); } float f3 = 0.05F; entityitem.motX = (float) a.nextGaussian() * f3; entityitem.motY = (float) a.nextGaussian() * f3 + 0.2F; entityitem.motZ = (float) a.nextGaussian() * f3; par1World.addEntity(entityitem); } while (true); } } } super.remove(par1World, par2, par3, par4); }
public ItemStack b(ISourceBlock isourceblock, ItemStack itemstack) { EnumFacing enumfacing = BlockDispenser.b(isourceblock.h()); double d0 = isourceblock.getX() + (double) enumfacing.c(); double d1 = (double) ((float) isourceblock.getBlockY() + 0.2F); double d2 = isourceblock.getZ() + (double) enumfacing.e(); // CraftBukkit start World world = isourceblock.k(); ItemStack itemstack1 = itemstack.a(1); org.bukkit.block.Block block = world .getWorld() .getBlockAt( isourceblock.getBlockX(), isourceblock.getBlockY(), isourceblock.getBlockZ()); CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1, d2)); if (!BlockDispenser.eventFired) { world.getServer().getPluginManager().callEvent(event); } if (event.isCancelled()) { itemstack.count++; return itemstack; } if (!event.getItem().equals(craftItem)) { itemstack.count++; // Chain to handler for new item ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.a.a(eventStack.getItem()); if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) { idispensebehavior.a(isourceblock, eventStack); return itemstack; } } itemstack1 = CraftItemStack.asNMSCopy(event.getItem()); EntityFireworks entityfireworks = new EntityFireworks( isourceblock.k(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), itemstack1); isourceblock.k().addEntity(entityfireworks); // itemstack.a(1); // Handled during event processing // CraftBukkit end return itemstack; }
public void a(DamageSource var1) { this.die(); if (this.world.getGameRules().getBoolean("doEntityDrops")) { ItemStack var2 = new ItemStack(Items.MINECART, 1); if (this.b != null) { var2.c(this.b); } this.a(var2, 0.0F); } }
@Override public int getAttackStrength(Entity par1Entity) { ItemStack var2 = this.getHeldItem(); int var3 = TFC_MobDamage.PigZombieDamage; if (var2 != null) { var3 += var2.getDamageVsEntity(this); } return var3; }
public ItemStack[] b(class_yg var1) { ItemStack[] var2 = new ItemStack[var1.getSize()]; for (int var3 = 0; var3 < var2.length; ++var3) { ItemStack var4 = var1.getItem(var3); if (var4 != null && var4.getItem().r()) { var2[var3] = new ItemStack(var4.getItem().q()); } } return var2; }
public void e(Entity entity) { if (!entity.b(this)) { ItemStack itemstack = this.U(); if (itemstack != null && entity instanceof EntityLiving) { itemstack.a((EntityLiving) entity); if (itemstack.count <= 0) { itemstack.a(this); this.V(); } } } }
public ItemStack[] b(InventoryCrafting inventorycrafting) { ItemStack[] aitemstack = new ItemStack[inventorycrafting.getSize()]; for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = inventorycrafting.getItem(i); if (itemstack != null && itemstack.getItem().r()) { aitemstack[i] = new ItemStack(itemstack.getItem().q()); } } return aitemstack; }
public PacketPlayOutNamedEntitySpawn(EntityHuman entityhuman) { a = entityhuman.getId(); b = entityhuman.getProfile(); c = MathHelper.floor(entityhuman.locX * 32.0D); d = MathHelper.floor(entityhuman.locY * 32.0D); e = MathHelper.floor(entityhuman.locZ * 32.0D); f = (byte) (int) (entityhuman.yaw * 256.0F / 360.0F); g = (byte) (int) (entityhuman.pitch * 256.0F / 360.0F); ItemStack itemstack = entityhuman.inventory.getItemInHand(); h = itemstack == null ? 0 : Item.getId(itemstack.getItem()); i = entityhuman.getDataWatcher(); }
public ItemStack craft(InventoryCrafting inventorycrafting, World world) { int i = 0; ItemStack itemstack = null; ItemStack itemstack1 = null; int j; for (j = 0; j < inventorycrafting.getSize(); ++j) { ItemStack itemstack2 = inventorycrafting.getItem(j); if (itemstack2 != null) { if (i == 0) { itemstack = itemstack2; } if (i == 1) { itemstack1 = itemstack2; } ++i; } } if (i == 2 && itemstack.id == itemstack1.id && itemstack.count == 1 && itemstack1.count == 1 && Item.byId[itemstack.id].usesDurability()) { Item item = Item.byId[itemstack.id]; int k = item.getMaxDurability() - itemstack.j(); int l = item.getMaxDurability() - itemstack1.j(); int i1 = k + l + item.getMaxDurability() * 5 / 100; int j1 = item.getMaxDurability() - i1; if (j1 < 0) { j1 = 0; } return new ItemStack(itemstack.id, 1, j1); } else { for (j = 0; j < this.recipes.size(); ++j) { IRecipe irecipe = (IRecipe) this.recipes.get(j); if (irecipe.a(inventorycrafting, world)) { return irecipe.a(inventorycrafting); } } return null; } }
public ItemStack b(int i) { ItemStack itemstack = null; Slot slot = (Slot) this.b.get(i); if (slot != null && slot.d()) { ItemStack itemstack1 = slot.getItem(); itemstack = itemstack1.cloneItemStack(); if (i == 2) { if (!this.a(itemstack1, 3, 39, true)) { return null; } slot.a(itemstack1, itemstack); } else if (i != 1 && i != 0) { if (RecipesFurnace.getInstance().getResult(itemstack1.getItem().id) != null) { if (!this.a(itemstack1, 0, 1, false)) { return null; } } else if (TileEntityFurnace.isFuel(itemstack1)) { if (!this.a(itemstack1, 1, 2, false)) { return null; } } else if (i >= 3 && i < 30) { if (!this.a(itemstack1, 30, 39, false)) { return null; } } else if (i >= 30 && i < 39 && !this.a(itemstack1, 3, 30, false)) { return null; } } else if (!this.a(itemstack1, 3, 39, false)) { return null; } if (itemstack1.count == 0) { slot.set((ItemStack) null); } else { slot.e(); } if (itemstack1.count == itemstack.count) { return null; } slot.b(itemstack1); } return itemstack; }