Package org.bukkit.entity

Examples of org.bukkit.entity.Item


        for (Entity en : block.getChunk().getEntities()) {
            if (!(en instanceof Item)) {
                continue;
            }
            Item item = (Item) en;
            if (item.isDead() || !item.isValid())
                continue;

            if (EntityUtil.isEntityInBlock(en, block)) {

                items.add(item);
View Full Code Here


            }
        } else {
            for (Entity ent : area.getEntitiesInArea()) {
                if (!(ent instanceof Item)) continue;

                Item itemEnt = (Item) ent;
                ItemStack stack = itemEnt.getItemStack();

                if (!ItemUtil.isStackValid(stack)) continue;

                if (item == null || ItemUtil.areItemsIdentical(item, stack)) {
View Full Code Here

    }

    @Test
    public void testTakeFromEntity() {

        Item entity = mock(Item.class);
        when(entity.isDead()).thenReturn(true);
        assertTrue(!ItemUtil.takeFromItemEntity(null, 1));
        assertTrue(!ItemUtil.takeFromItemEntity(entity, 1));
        when(entity.isDead()).thenReturn(false);
        when(entity.getItemStack()).thenReturn(ItemSyntax.getItem("2:0*20"));
        assertTrue(!ItemUtil.takeFromItemEntity(entity, 21));
        assertTrue(ItemUtil.takeFromItemEntity(entity, 2));
        assertTrue(ItemUtil.takeFromItemEntity(entity, 18));
        verify(entity).remove();
    }
View Full Code Here

      // chunk.
      if (!isChunkLoaded(p.getSpawnLocation()))
        continue;
     
      // shop Item
      Item item = shopItems.get(p);

      if (Properties.hideInactiveShops && (!p.isActive() && p.isVisible()))
        hide(p);
//        itemShops.remove(p.hide());

      else if (item == null) {
        if (!Properties.hideInactiveShops || p.isActive())
          show(p);
//          itemShops.put(p.show(), p);
        else
          hide(p);
//          itemShops.remove(p.hide());

      } else if (item.isDead()) {
        if (!Properties.hideInactiveShops || p.isActive()) {

          hide(p);
          show(p);
//          itemShops.remove(p.hide());
View Full Code Here

   * @see com.kellerkindt.scs.interfaces.ShopHandler#hide(com.kellerkindt.scs.shops.Shop)
   */
  @Override
  public void hide(Shop shop) {
    // get the Item for this shop
    Item item  = shopItems.get(shop);
   
    if (item != null) {
     
          // remove item
          item.remove();
         
          // prepare teleportation to the ground
          int    x  = shop.getSpawnLocation().getBlockX();
          int   y   = 0;
          int   z  = shop.getSpawnLocation().getBlockZ();
          World  w  = shop.getSpawnLocation().getWorld();
         
          // teleport (fixed some client sided issues)
          item.teleport(new Location(w, x, y, z));
         
          // set invisible
          shop.setVisible(false);
         
          // remove item
View Full Code Here

      } else {
        itemStack.setAmount(1);
      }
     
     
      Item     item       = shop.getWorld().dropItem(spawnLocation, itemStack);

      item.setVelocity(new Vector(0, 0.01, 0));
      item.setPickupDelay(Properties.DEFAULT_PICKUP_DELAY)// less pickup events
     
      // add to lists
      shopItems.put(shop, item);
      itemShops.put(item, shop);
     
View Full Code Here

   */
  public void checkDuplicateItem (Shop shop) {
   
    // max difference in height
    double     maxYDiff  = 1.5;
    Item    shopItem  = shopItems.get(shop);
   
    // check in this chunk, not in whole world --> faster
    for (Entity e : shop.getLocation().getChunk().getEntities())
    {
     
      double x = e.getLocation().getX();
      double z = e.getLocation().getZ();
      double yDiff = shop.getSpawnLocation().getY() - e.getLocation().getY();
                      
      if (yDiff < 0)
        yDiff *= -1;

      if (x == shop.getSpawnLocation().getX() && yDiff <= maxYDiff && z == shop.getSpawnLocation().getZ()) {
       
               if (e instanceof Item) {
                 Item  item = (Item)e;
                
                 // remove if not the current Item for this Shop
                 if (ItemStackUtilities.itemsEqual(item.getItemStack(), shop.getItemStack(), false) && shopItem != item)
                   item.remove();
               }
      }
    }
  }
View Full Code Here

    @Override public void run()
    {
      for (Entity e : getWorld().getEntitiesByClasses(Item.class))
      {
        Item item = (Item) e;
        UUID uuid = item.getUniqueId();

        Location prev = itemLocations.get(uuid);
        Location curr = e.getLocation();
        Location stop = lastStoppedLocation.get(uuid);

        if (prev == null) continue;
        boolean pass = TeleportationUtil.isBlockPassable(curr.getBlock());

        // if the item is moving upwards and is currently in a passable
        double ydelta = curr.getY() - prev.getY();
        if (ydelta > YDELTA_THRESHOLD && !pass && !elevatedItem.containsKey(uuid))
          elevatedItem.put(uuid, false);

        double dy = stop == null ? 0.0 : curr.getY() - stop.getY();
        if (elevatedItem.containsKey(uuid) && dy >= DISTANCE_THRESHOLD)
          elevatedItem.put(uuid, true);

        if (ydelta < 0.001)
        {
          // record the last location it was stopped at
          lastStoppedLocation.put(uuid, curr);

          boolean atrest = !TeleportationUtil.isBlockPassable(curr.getBlock().getRelative(0, -1, 0));
          if (elevatedItem.containsKey(uuid) && elevatedItem.get(uuid) && atrest)
          {
            // if the item didn't elevate high enough, don't worry about it
            if (dy < DISTANCE_THRESHOLD) { elevatedItem.remove(uuid); continue; }
            setLastNotificationLocation(curr);

            String coords = LocationUtil.toBlockCoords(curr);
            String msg = ChatColor.DARK_GRAY + String.format(
              "Possible Item Elevator @ (%s) [y%+d] %s", coords, Math.round(dy),
              new BlockData(item.getItemStack()).getDisplayName());

            for (Player ref : getReferees()) ref.sendMessage(msg);
            AutoReferee.log(msg);
          }
        }
View Full Code Here

  @Override
  public void change(final Event e, final @Nullable Object[] delta, final ChangeMode mode) {
    assert mode != ChangeMode.RESET;
   
    final ItemType t = delta == null ? null : (ItemType) delta[0];
    final Item i = item != null ? item.getSingle(e) : null;
    final Slot s = slot != null ? slot.getSingle(e) : null;
    if (i == null && s == null)
      return;
    ItemStack is = i != null ? i.getItemStack() : s != null ? s.getItem() : null;
    switch (mode) {
      case SET:
        assert t != null;
        is = t.getRandom();
        break;
      case ADD:
      case REMOVE:
      case REMOVE_ALL:
        assert t != null;
        if (t.isOfType(is)) {
          if (mode == ChangeMode.ADD)
            is = t.addTo(is);
          else if (mode == ChangeMode.REMOVE)
            is = t.removeFrom(is);
          else
            is = t.removeAll(is);
        }
        break;
      case DELETE:
        is = null;
        if (i != null)
          i.remove();
        break;
      case RESET:
        assert false;
    }
    if (i != null)
      i.setItemStack(is);
    else if (s != null)
      s.setItem(is);
    else
      assert false;
  }
View Full Code Here

TOP

Related Classes of org.bukkit.entity.Item

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.