org.bukkit.event.entity.ItemMergeEvent#org.bukkit.entity.Item源码实例Demo

下面列出了org.bukkit.event.entity.ItemMergeEvent#org.bukkit.entity.Item 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: PGM   文件: PlayerItemTransferEvent.java
public PlayerItemTransferEvent(
    Event cause,
    Type type,
    Player player,
    @Nullable Inventory fromInventory,
    @Nullable Integer fromSlot,
    @Nullable Inventory toInventory,
    @Nullable Integer toSlot,
    ItemStack itemStack,
    @Nullable Item itemEntity,
    int quantity,
    @Nullable ItemStack cursorItem) {

  super(
      cause, type, fromInventory, fromSlot, toInventory, toSlot, itemStack, itemEntity, quantity);
  this.player = player;
  this.cursorItem = cursorItem;
}
 
源代码2 项目: Slimefun4   文件: MagnetTask.java
@Override
protected void executeTask() {
    boolean playSound = false;

    for (Entity n : p.getNearbyEntities(radius, radius, radius)) {
        if (n instanceof Item) {
            Item item = (Item) n;

            if (!SlimefunUtils.hasNoPickupFlag(item) && item.getPickupDelay() <= 0 && p.getLocation().distanceSquared(item.getLocation()) > 0.3) {
                item.teleport(p.getLocation());
                playSound = true;
            }
        }
    }

    if (playSound) {
        p.playSound(p.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 0.25F, 0.9F);
    }
}
 
源代码3 项目: civcraft   文件: BonusGoodieManager.java
@EventHandler(priority = EventPriority.MONITOR) 
public void OnItemSpawn(ItemSpawnEvent event) {
	Item item = event.getEntity();
	
	BonusGoodie goodie = CivGlobal.getBonusGoodie(item.getItemStack());
	if (goodie == null) {
		return;
	}
	
	// Cant validate here, validate in drop item events...
	goodie.setItem(item);
	try {
		goodie.update(false);
		goodie.updateLore(item.getItemStack());
	} catch (CivException e) {
		e.printStackTrace();
	}
}
 
源代码4 项目: MineTinker   文件: ItemListener.java
@EventHandler(ignoreCancelled = true)
public void onDespawn(ItemDespawnEvent event) {
	Item item = event.getEntity();
	ItemStack is = item.getItemStack();

	if (!((modManager.isArmorViable(is) || modManager.isToolViable(is) || modManager.isWandViable(is))
			|| (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.ForModItems")
			&& modManager.isModifierItem(is)))) {
		return;
	}

	if (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.SetPersistent")) {
		event.setCancelled(true);
		item.setTicksLived(1);
	}
}
 
源代码5 项目: MineTinker   文件: Soulbound.java
/**
 * Effect if a player drops an item
 *
 * @param event the event
 */
@EventHandler(ignoreCancelled = true)
public void effect(PlayerDropItemEvent event) {
	Item item = event.getItemDrop();
	ItemStack tool = item.getItemStack();

	if (!(modManager.isArmorViable(tool) || modManager.isToolViable(tool) || modManager.isWandViable(tool))) {
		return;
	}

	if (!modManager.hasMod(tool, this)) {
		return;
	}

	if (toolDroppable) {
		return;
	}

	ChatWriter.logModifier(event.getPlayer(), event, this, tool, "Tool not droppable");

	event.setCancelled(true);
}
 
源代码6 项目: QuickShop-Reremake   文件: RealDisplayItem.java
@Override
public boolean removeDupe() {
    if (this.item == null) {
        Util.debugLog("Warning: Trying to removeDupe for a null display shop.");
        return false;
    }

    boolean removed = false;
    // Chunk chunk = shop.getLocation().getChunk();
    for (Entity entity : item.getNearbyEntities(1.5, 1.5, 1.5)) {
        if (entity.getType() != EntityType.DROPPED_ITEM) {
            continue;
        }
        Item eItem = (Item) entity;
        UUID displayUUID = this.item.getUniqueId();
        if (!eItem.getUniqueId().equals(displayUUID)) {
            if (DisplayItem.checkIsTargetShopDisplay(eItem.getItemStack(), this.shop)) {
                Util.debugLog(
                        "Removing a duped ItemEntity " + eItem.getUniqueId() + " at " + eItem.getLocation());
                entity.remove();
                removed = true;
            }
        }
    }
    return removed;
}
 
源代码7 项目: QuickShop-Reremake   文件: RealDisplayItem.java
@Override
public void safeGuard(@NotNull Entity entity) {
    if (!(entity instanceof Item)) {
        Util.debugLog("Failed to safeGuard " + entity.getLocation() + ", cause target not a Item");
        return;
    }
    Item item = (Item) entity;
    // Set item protect in the armorstand's hand

    if (plugin.getConfig().getBoolean("shop.display-item-use-name")) {
        item.setCustomName(Util.getItemStackName(this.originalItemStack));
        item.setCustomNameVisible(true);
    } else {
        item.setCustomNameVisible(false);
    }
    item.setPickupDelay(Integer.MAX_VALUE);
    item.setSilent(true);
    item.setPortalCooldown(Integer.MAX_VALUE);
    item.setVelocity(new Vector(0, 0.1, 0));
}
 
@Test
public void shouldTeleportBecauseSameGroup() {
    // given
    Group group = mockGroup("test_group", GameMode.SURVIVAL, false);

    Item entity = mock(Item.class);

    World world = mock(World.class);
    given(world.getName()).willReturn("test_group");
    Location from = new Location(world, 1, 2, 3);

    World worldNether = mock(World.class);
    given(worldNether.getName()).willReturn("test_group_nether");
    Location to = new Location(worldNether, 1, 2, 3);

    given(groupManager.getGroupFromWorld("test_group")).willReturn(group);
    given(groupManager.getGroupFromWorld("test_group_nether")).willReturn(group);

    EntityPortalEvent event = new EntityPortalEvent(entity, from, to, mock(TravelAgent.class));

    // when
    listener.onEntityPortalTeleport(event);

    // then
    assertThat(event.isCancelled(), equalTo(false));
}
 
源代码9 项目: TabooLib   文件: Vectors.java
public static Item itemDrop(Player player, ItemStack itemStack, double bulletSpread, double radius) {
    Location location = player.getLocation().add(0.0D, 1.5D, 0.0D);
    Item item = player.getWorld().dropItem(location, itemStack);
    double yaw = Math.toRadians((double)(-player.getLocation().getYaw() - 90.0F));
    double pitch = Math.toRadians((double)(-player.getLocation().getPitch()));
    double x;
    double y;
    double z;
    if (bulletSpread > 0.0D) {
        double[] spread = new double[]{1.0D, 1.0D, 1.0D};
        IntStream.range(0, 3).forEach((t) -> {
            spread[t] = (Numbers.getRandom().nextDouble() - Numbers.getRandom().nextDouble()) * bulletSpread * 0.1D;
        });
        x = Math.cos(pitch) * Math.cos(yaw) + spread[0];
        y = Math.sin(pitch) + spread[1];
        z = -Math.sin(yaw) * Math.cos(pitch) + spread[2];
    } else {
        x = Math.cos(pitch) * Math.cos(yaw);
        y = Math.sin(pitch);
        z = -Math.sin(yaw) * Math.cos(pitch);
    }

    Vector dirVel = new Vector(x, y, z);
    item.setVelocity(dirVel.normalize().multiply(radius));
    return item;
}
 
@Test
public void shouldTeleportBecauseSameGroup() {
    // given
    Group group = mockGroup("test_group", GameMode.SURVIVAL, false);

    Item entity = mock(Item.class);

    World world = mock(World.class);
    given(world.getName()).willReturn("test_group");
    Location from = new Location(world, 1, 2, 3);

    World worldNether = mock(World.class);
    given(worldNether.getName()).willReturn("test_group_nether");
    Location to = new Location(worldNether, 1, 2, 3);

    given(groupManager.getGroupFromWorld("test_group")).willReturn(group);
    given(groupManager.getGroupFromWorld("test_group_nether")).willReturn(group);

    EntityPortalEvent event = new EntityPortalEvent(entity, from, to, mock(TravelAgent.class));

    // when
    listener.onEntityPortalTeleport(event);

    // then
    assertThat(event.isCancelled(), equalTo(false));
}
 
源代码11 项目: ProjectAres   文件: GunGizmo.java
@EventHandler
public void playerInteract(final PlayerInteractEvent event) {
    if(event.getAction() == Action.PHYSICAL
            || !(Gizmos.gizmoMap.get(event.getPlayer()) instanceof GunGizmo)
            || event.getItem() == null || event.getItem().getType() != this.getIcon()) return;

    final Player player = event.getPlayer();
    RaindropUtil.giveRaindrops(Users.playerId(player), -1, new RaindropResult() {
        @Override
        public void run() {
            if(success) {
                Vector velocity = player.getLocation().getDirection().multiply(1.75D);

                Item item = player.getWorld().dropItem(event.getPlayer().getEyeLocation(), new ItemStack(Material.GHAST_TEAR));
                item.setVelocity(velocity);
                item.setTicksLived((5 * 60 * 20) - (5 * 20)); // 5 minutes - 5 seconds
                items.put(item, player.getUniqueId());
            } else {
                player.sendMessage(ChatColor.RED + LobbyTranslations.get().t("gizmo.gun.empty", player));
                player.playSound(player.getLocation(), Sound.UI_BUTTON_CLICK, 1f, 1f);
            }
        }
    }, null, false, true, false);
}
 
源代码12 项目: EnchantmentsEnhance   文件: EnhancedItemListener.java
/**
 * Prevents enhanced item from dropping.
 *
 * @param e
 */
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onItemDrop(PlayerDropItemEvent e) {
    Item droppedItem = e.getItemDrop();
    ItemStack DroppedItemStack = droppedItem.getItemStack();
    Player p = e.getPlayer();
    // Checks if the item is a bounded item
    if ((DroppedItemStack.hasItemMeta()) && (DroppedItemStack.getItemMeta()
            .getLore() != null)) {
        if (DroppedItemStack.getItemMeta().getLore().contains(Util.UNIQUEID + Util.toColor(
                SettingsManager.lang.getString("lore.untradeableLore")))) {
            e.setCancelled(true);
            Util.sendMessage(SettingsManager.lang.getString(
                    "messages.noDrop"), p);
        }
    }
}
 
源代码13 项目: Slimefun4   文件: AncientAltarListener.java
private void insertItem(Player p, Block b) {
    ItemStack hand = p.getInventory().getItemInMainHand();
    ItemStack stack = new CustomItem(hand, 1);

    if (p.getGameMode() != GameMode.CREATIVE) {
        ItemUtils.consumeItem(hand, false);
    }

    String nametag = ItemUtils.getItemName(stack);
    Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), new CustomItem(stack, "&5&dALTAR &3Probe - &e" + System.nanoTime()));
    entity.setVelocity(new Vector(0, 0.1, 0));
    SlimefunUtils.markAsNoPickup(entity, "altar_item");
    entity.setCustomNameVisible(true);
    entity.setCustomName(nametag);
    p.playSound(b.getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.3F, 0.3F);
}
 
源代码14 项目: civcraft   文件: BonusGoodieManager.java
@EventHandler(priority = EventPriority.MONITOR)
public void OnChunkUnload(ChunkUnloadEvent event) {
	
	BonusGoodie goodie;
	
	for (Entity entity : event.getChunk().getEntities()) {
		if (!(entity instanceof Item)) {
			continue;
		}
		
		goodie = CivGlobal.getBonusGoodie(((Item)entity).getItemStack());
		if (goodie == null) {
			continue;
		}
		
		goodie.replenish(((Item)entity).getItemStack(), (Item)entity, null, null);
	}
}
 
源代码15 项目: AnnihilationPro   文件: KitLoading.java
@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void StopDrops(PlayerDropItemEvent event)
{
    Player player = event.getPlayer();
    Item item = event.getItemDrop();
    if(item != null)
    {
	    ItemStack stack = item.getItemStack();
	    if(stack != null)
	    {
		    if(KitUtils.isSoulbound(stack))
		    {
			    player.playSound(player.getLocation(), Sound.BLAZE_HIT, 1.0F, 0.3F);
			    event.getItemDrop().remove();
		    }
	    }
    }
}
 
源代码16 项目: EliteMobs   文件: VisualItemProcessor.java
private void rotateItem(Object itemObject, Vector vector, EliteMobEntity eliteMobEntity) {

        Item item = (Item) itemObject;

        if (!item.isValid())
            return;

        Location currentLocation = item.getLocation().clone();
        Location newLocation = eliteMobEntity.getLivingEntity().getLocation().clone().add(new Vector(0, 1, 0)).add(vector);

//        if (currentLocation.distanceSquared(newLocation) > Math.pow(3, 2)) {
//            item.teleport(newLocation);
//            item.setVelocity(new Vector(0.01, 0.01, 0.01));
//            return;
//        }

        Vector movementVector = (newLocation.subtract(currentLocation)).toVector();
        movementVector = movementVector.multiply(0.3);

//        if (Math.abs(movementVector.getX()) > 3 || Math.abs(movementVector.getY()) > 3 || Math.abs(movementVector.getZ()) > 3) {
//            item.teleport(newLocation);
//        } else {
            item.setVelocity(movementVector);
//        }

    }
 
源代码17 项目: BedWars   文件: ItemSpawner.java
public void remove(Item item) {
	if (maxSpawnedResources > 0 && spawnedItems.contains(item)) {
		spawnedItems.remove(item);
		if (spawnerIsFullHologram && maxSpawnedResources > spawnedItems.size()) {
			spawnerIsFullHologram = false;
			rerenderHologram = true;
		}
	}
}
 
源代码18 项目: IridiumSkyblock   文件: EntityPickupItemListener.java
@EventHandler
public void onEntityPickupItem(PlayerPickupItemEvent event) {
    try {
        final Item item = event.getItem();
        final Location location = item.getLocation();
        final IslandManager islandManager = IridiumSkyblock.getIslandManager();
        final Island island = islandManager.getIslandViaLocation(location);
        if (island == null) return;

        final Player player = event.getPlayer();
        final User user = User.getUser(player);
        if (!island.getPermissions(user).pickupItems)
            event.setCancelled(true);
    } catch (Exception ex) {
        IridiumSkyblock.getInstance().sendErrorMessage(ex);
    }
}
 
源代码19 项目: MineTinker   文件: ItemListener.java
@EventHandler(ignoreCancelled = true)
public void onItemDrop(PlayerDropItemEvent event) {
	if (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.DisableDroppingBehaviour")) {
		return;
	}

	Item item = event.getItemDrop();
	ItemStack is = item.getItemStack();

	boolean isMineTinker = false;

	if (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.ForModItems")) {
		isMineTinker = modManager.isModifierItem(is);
	}
	if (modManager.isArmorViable(is) || modManager.isToolViable(is) || modManager.isWandViable(is)) {
		isMineTinker = true;
	}

	if (!isMineTinker) {
		return;
	}

	if (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.ShowName") && is.getItemMeta() != null) {
		item.setCustomName(is.getItemMeta().getDisplayName());
		item.setCustomNameVisible(true);
	}

	if (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.SetGlowing")) {
		item.setGlowing(true);
	}

	if (MineTinker.getPlugin().getConfig().getBoolean("ItemBehaviour.SetInvulnerable")) {
		item.setInvulnerable(true);
	}
}
 
源代码20 项目: MineTinker   文件: Directing.java
@EventHandler
public void effect(BlockDropItemEvent event) {
	Player player = event.getPlayer();
	ItemStack tool = player.getInventory().getItemInMainHand();

	if (!player.hasPermission("minetinker.modifiers.directing.use")) {
		return;
	}

	if (!modManager.isToolViable(tool) || !modManager.hasMod(tool, this)) {
		return;
	}

	Iterator<Item> itemIterator = event.getItems().iterator();

	while (itemIterator.hasNext()) {
		Item item = itemIterator.next();

		HashMap<Integer, ItemStack> refusedItems = player.getInventory().addItem(item.getItemStack());

		if (!refusedItems.isEmpty()) {
			for (ItemStack itemStack : refusedItems.values()) {
				player.getWorld().dropItem(player.getLocation(), itemStack);
			}
		}

		itemIterator.remove();
	}
	Location loc = event.getBlock().getLocation();
	ChatWriter.logModifier(player, event, this, tool,
			String.format("Block(%d/%d/%d)", loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
}
 
源代码21 项目: NyaaUtils   文件: DropProtectListener.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemMerge(ItemMergeEvent e) {
    if (plugin.cfg.dropProtectMode == DropProtectMode.OFF) return;
    Item ent = e.getEntity();
    Item target = e.getTarget();
    if (items.getIfPresent(ent.getEntityId()) != null && items.getIfPresent(target.getEntityId()) == null) {
        items.put(target.getEntityId(), items.getIfPresent(ent.getEntityId()));
    } else if (items.getIfPresent(ent.getEntityId()) == null && items.getIfPresent(target.getEntityId()) != null) {
        items.put(target.getEntityId(), items.getIfPresent(target.getEntityId()));//Refresh
    } else if (items.getIfPresent(ent.getEntityId()) != null && items.getIfPresent(target.getEntityId()) != null && items.getIfPresent(ent.getEntityId()) != items.getIfPresent(target.getEntityId())) {
        e.setCancelled(true);
    }
}
 
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void player(PlayerFishEvent event) {
    if (DisplayItem.getNowUsing() != DisplayType.REALITEM) {
        return;
    }
    if (event.getState() != State.CAUGHT_ENTITY) {
        return;
    }
    if (event.getCaught() == null) {
        return;
    }
    if (event.getCaught().getType() != EntityType.DROPPED_ITEM) {
        return;
    }
    final Item item = (Item) event.getCaught();
    final ItemStack is = item.getItemStack();
    if (!DisplayItem.checkIsGuardItemStack(is)) {
        return;
    }
    // item.remove();
    event.getHook().remove();
    // event.getCaught().remove();
    event.setCancelled(true);
    sendAlert(
            "[DisplayGuard] Player "
                    + event.getPlayer().getName()
                    + " trying hook item use Fishing Rod, QuickShop already removed it.");
    Util.inventoryCheck(event.getPlayer().getInventory());
}
 
源代码23 项目: QuickShop-Reremake   文件: RealDisplayItem.java
@Override
public boolean checkIsShopEntity(@NotNull Entity entity) {
    if (!(entity instanceof Item)) {
        return false;
    }
    return DisplayItem.checkIsGuardItemStack(((Item) entity).getItemStack());
}
 
源代码24 项目: LagMonitor   文件: GraphListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onDrop(PlayerDropItemEvent dropItemEvent) {
    Item itemDrop = dropItemEvent.getItemDrop();
    ItemStack mapItem = itemDrop.getItemStack();
    if (isOurGraph(mapItem)) {
        mapItem.setAmount(0);
    }
}
 
源代码25 项目: civcraft   文件: BonusGoodie.java
public void setItem(Item item) {
	this.item = item;
	if (item != null) {
		// If we are an entity on the ground, we cannot have a holder or be in a frame.
		this.frameStore = null;
		holderStore = null;
	}
}
 
源代码26 项目: BedwarsRel   文件: ResourceSpawner.java
public void dropItem(Location dropLocation, ItemStack itemStack) {
  Item item = this.game.getRegion().getWorld().dropItemNaturally(dropLocation, itemStack);
  item.setPickupDelay(0);
  if (this.spread != 1.0) {
    item.setVelocity(item.getVelocity().multiply(this.spread));
  }
}
 
源代码27 项目: Slimefun4   文件: ClearLagHook.java
@EventHandler
public void onEntityRemove(EntityRemoveEvent e) {
    Iterator<Entity> iterator = e.getEntityList().iterator();

    while (iterator.hasNext()) {
        Entity n = iterator.next();

        if (n instanceof Item && SlimefunUtils.hasNoPickupFlag((Item) n)) {
            iterator.remove();
        }
    }
}
 
源代码28 项目: NBTEditor   文件: FireBomb.java
@Override
public void onTrigger(final Item item) {
	item.setFireTicks(50);
	int jumpFuse = getFuse() - 10;
	if (jumpFuse > 0) {
		Bukkit.getScheduler().runTaskLater(getPlugin(), new Runnable() {
			@Override
			public void run() {
				if (!item.isDead()) {
					item.setVelocity(item.getVelocity().setY(0.5));
				}
			}
		}, jumpFuse);
	}
}
 
源代码29 项目: FastAsyncWorldedit   文件: AsyncWorld.java
@Override
public Item dropItem(final Location location, final ItemStack item) {
    return TaskManager.IMP.sync(new RunnableVal<Item>() {
        @Override
        public void run(Item value) {
            this.value = parent.dropItem(location, item);
        }
    });
}
 
源代码30 项目: Slimefun4   文件: AncientAltarListener.java
public Item findItem(Block b) {
    for (Entity n : b.getChunk().getEntities()) {
        if (n instanceof Item && b.getLocation().add(0.5, 1.2, 0.5).distanceSquared(n.getLocation()) < 0.5D && n.getCustomName() != null) {
            return (Item) n;
        }
    }
    return null;
}