org.bukkit.entity.Player#getItemInHand ( )源码实例Demo

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

源代码1 项目: uSkyBlock   文件: PlayerEvents.java
@EventHandler(priority = EventPriority.NORMAL)
public void onClickOnObsidian(final PlayerInteractEvent event) {
    if (!plugin.getWorldManager().isSkyWorld(event.getPlayer().getWorld())) {
        return;
    }
    long now = System.currentTimeMillis();
    Player player = event.getPlayer();
    PlayerInventory inventory = player.getInventory();
    Block block = event.getClickedBlock();
    Long lastClick = obsidianClick.get(player.getUniqueId());
    if (lastClick != null && (lastClick + OBSIDIAN_SPAM) >= now) {
        plugin.notifyPlayer(player, tr("\u00a74You can only convert obsidian once every 10 seconds"));
        return;
    }
    if (Settings.extras_obsidianToLava && plugin.playerIsOnIsland(player)
            && plugin.getWorldManager().isSkyWorld(player.getWorld())
            && event.getAction() == Action.RIGHT_CLICK_BLOCK
            && player.getItemInHand() != null
            && player.getItemInHand().getType() == Material.BUCKET
            && block != null
            && block.getType() == Material.OBSIDIAN
            && !testForObsidian(block)) {
        if (inventory.firstEmpty() != -1) {
            obsidianClick.put(player.getUniqueId(), now);
            player.sendMessage(tr("\u00a7eChanging your obsidian back into lava. Be careful!"));
            inventory.removeItem(new ItemStack(Material.BUCKET, 1));
            inventory.addItem(new ItemStack(Material.LAVA_BUCKET, 1));
            player.updateInventory();
            block.setType(Material.AIR);
            event.setCancelled(true); // Don't execute the click anymore (since that would re-place the lava).
        } else {
            player.sendMessage(tr("\u00a7eYour inventory must have another empty space!"));
        }
    }
}
 
源代码2 项目: askyblock   文件: Util.java
/**
 * Results a list of items in a player's hands. Works for older versions of servers
 * @param player
 * @return list of itemstacks
 */
@SuppressWarnings("deprecation")
public static List<ItemStack> getPlayerInHandItems(Player player) {
    List<ItemStack> result = new ArrayList<ItemStack>(2);
    if (plugin.getServer().getVersion().contains("(MC: 1.7")
            || plugin.getServer().getVersion().contains("(MC: 1.8")) {
        if (player.getItemInHand() != null)
            result.add(player.getItemInHand());
        return result;
    }
    if (player.getInventory().getItemInMainHand() != null)
        result.add(player.getInventory().getItemInMainHand());
    if (player.getInventory().getItemInOffHand() != null)
        result.add(player.getInventory().getItemInOffHand());
    return result;
}
 
源代码3 项目: Minepacks   文件: ItemShortcut.java
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onItemFrameInteract(PlayerInteractEntityEvent event)
{
	Player player = event.getPlayer();
	ItemStack item;
	if(MCVersion.isDualWieldingMC())
	{
		item = (event.getHand() == EquipmentSlot.HAND) ? player.getInventory().getItemInMainHand() : player.getInventory().getItemInOffHand();
	}
	else
	{
		item = player.getItemInHand();
	}
	if(isItemShortcut(item))
	{
		event.getPlayer().performCommand(openCommand);
		event.setCancelled(true);
	}
}
 
源代码4 项目: ProjectAres   文件: GrenadeListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onGrenadeLaunch(final ProjectileLaunchEvent event) {
    if (event.getEntity().getShooter() instanceof Player) {
        Player player = (Player) event.getEntity().getShooter();
        ItemStack stack = player.getItemInHand();

        if(stack != null) {
            // special case for grenade arrows
            if (stack.getType() == Material.BOW) {
                int arrows = player.getInventory().first(Material.ARROW);
                if (arrows == -1) return;
                stack = player.getInventory().getItem(arrows);
            }

            Grenade grenade = Grenade.ITEM_TAG.get(stack);
            if(grenade != null) {
                grenade.set(plugin, event.getEntity());
            }
        }
    }
}
 
源代码5 项目: SuperVanish   文件: SilentOpenChest.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onChestInteract(PlayerInteractEvent e) {
    Player p = e.getPlayer();
    if (!plugin.getVanishStateMgr().isVanished(p.getUniqueId())) return;
    if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
    if (p.getGameMode() == GameMode.SPECTATOR) return;
    //noinspection deprecation
    if (p.isSneaking() && p.getItemInHand() != null
            && (p.getItemInHand().getType().isBlock() || p.getItemInHand().getType() == ITEM_FRAME)
            && p.getItemInHand().getType() != Material.AIR)
        return;
    Block block = e.getClickedBlock();
    if (block == null) return;
    if (block.getType() == ENDER_CHEST) {
        e.setCancelled(true);
        p.openInventory(p.getEnderChest());
        return;
    }
    if (!(block.getType() == CHEST || block.getType() == TRAPPED_CHEST
            || plugin.getVersionUtil().isOneDotXOrHigher(11) && shulkerBoxes.contains(block.getType())))
        return;
    StateInfo stateInfo = StateInfo.extract(p);
    playerStateInfoMap.put(p, stateInfo);
    p.setGameMode(GameMode.SPECTATOR);
}
 
源代码6 项目: civcraft   文件: DebugCommand.java
public void getdura_cmd() throws CivException {
	Player player = getPlayer();
	ItemStack inHand = player.getItemInHand();
	CivMessage.send(player, "Durability:"+inHand.getDurability());
	CivMessage.send(player, "MaxDura:"+inHand.getType().getMaxDurability());
	
}
 
源代码7 项目: TabooLib   文件: BookFormatter.java
public static void forceOpen(Player player, ItemStack book) {
    ItemStack hand = player.getItemInHand();
    player.setItemInHand(book);
    try {
        NMS.handle().openBook(player, book);
    } catch (Throwable t) {
        t.printStackTrace();
    }
    player.setItemInHand(hand);
}
 
源代码8 项目: QualityArmory   文件: Grenade.java
@SuppressWarnings("deprecation")
@Override
public boolean onRMB(Player thrower, ItemStack usedItem) {
	if (throwItems.containsKey(thrower)) {
		ThrowableHolder holder = throwItems.get(thrower);
		ItemStack grenadeStack = thrower.getItemInHand();
		ItemStack temp = grenadeStack.clone();
		temp.setAmount(1);
		if (thrower.getGameMode() != GameMode.CREATIVE) {
			if (grenadeStack.getAmount() > 1) {
				grenadeStack.setAmount(grenadeStack.getAmount() - 1);
			} else {
				grenadeStack = null;
			}
			thrower.setItemInHand(grenadeStack);
		}
		Item grenade = holder.getHolder().getWorld().dropItem(holder.getHolder().getLocation().add(0, 1.5, 0),
				temp);
		grenade.setPickupDelay(Integer.MAX_VALUE);
		grenade.setVelocity(thrower.getLocation().getDirection().normalize().multiply(1.2));
		holder.setHolder(grenade);
		thrower.getWorld().playSound(thrower.getLocation(), Sound.ENTITY_ARROW_SHOOT, 1, 1.5f);

		throwItems.put(grenade, holder);
		throwItems.remove(thrower);
		QAMain.DEBUG("Throw grenade");
	} else {
		thrower.sendMessage(QAMain.prefix + QAMain.S_GRENADE_PULLPIN);
	}
	return true;
}
 
源代码9 项目: ObsidianDestroyer   文件: PlayerListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onInteract(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    ItemStack inHand = player.getItemInHand();
    // They no longer throw the interact event if the player is in creative, so lets do right click.
    if (inHand == null || event.getAction() != Action.RIGHT_CLICK_BLOCK || !event.hasBlock()
            || !player.hasPermission("obsidiandestroyer.check")) {
        return;
    }

    Material type = inHand.getType();
    Block block = event.getClickedBlock();
    if (!ConfigManager.getInstance().getDurabilityCheckItem().equals(type)) {
        return;
    }

    MaterialManager mm = MaterialManager.getInstance();
    if (block != null && mm.getDurabilityEnabled(block.getType().name())) {
        int amount = ChunkManager.getInstance().getMaterialDurability(block);
        double mult = Util.getMultiplier(block.getLocation());
        if (mult == 0) {
            player.sendMessage(ConfigManager.getInstance().getDurabilityMessage().replace("{DURABILITY}", "∞"));
        } else {
            int max = (int) Math.round(mm.getDurability(block.getType().name(), block.getData()) * Util.getMultiplier(block.getLocation()));
            player.sendMessage(ConfigManager.getInstance().getDurabilityMessage().replace("{DURABILITY}", !mm.isDestructible(block.getType().name(), block.getData()) ? "∞" : (max - amount) + "/" + max));
        }
    }
}
 
源代码10 项目: civcraft   文件: DebugCommand.java
public void loretest_cmd() throws CivException {
	Player player = getPlayer();
	
	org.bukkit.inventory.ItemStack inHand = player.getItemInHand();
	if (inHand != null) {
		ItemMeta meta = inHand.getItemMeta();
		List<String> newLore = meta.getLore();
		if (newLore != null && newLore.size() > 0 && newLore.get(0).equalsIgnoreCase("RJMAGIC")) {
			CivMessage.sendSuccess(player, "found magic lore");
		} else {
			CivMessage.sendSuccess(player, "No magic lore.");
		}
	}
}
 
源代码11 项目: UhcCore   文件: ItemsListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onRightClickItem(PlayerInteractEvent event){
	if (
			event.getAction() != Action.RIGHT_CLICK_AIR &&
			event.getAction() != Action.RIGHT_CLICK_BLOCK
	){
		return;
	}

	Player player = event.getPlayer();
	GameManager gm = GameManager.getGameManager();
	UhcPlayer uhcPlayer = gm.getPlayersManager().getUhcPlayer(player);
	ItemStack hand = player.getItemInHand();

	if (GameItem.isGameItem(hand)){
		event.setCancelled(true);
		GameItem gameItem = GameItem.getGameItem(hand);
		handleGameItemInteract(gameItem, player, uhcPlayer, hand);
		return;
	}

	if ( (gm.getGameState().equals(GameState.PLAYING) || gm.getGameState().equals(GameState.DEATHMATCH))
			&& UhcItems.isRegenHeadItem(hand)
			&& uhcPlayer.getState().equals(PlayerState.PLAYING)
			&& (event.getAction() == Action.RIGHT_CLICK_AIR
			|| event.getAction() == Action.RIGHT_CLICK_BLOCK)
	) {
		event.setCancelled(true);
		uhcPlayer.getTeam().regenTeam(gm.getConfiguration().getEnableDoubleRegenHead());
		player.getInventory().remove(hand);
	}
}
 
源代码12 项目: civcraft   文件: DebugCommand.java
public void dupe_cmd() throws CivException {
	Player player = getPlayer();
	
	if (player.getItemInHand() == null || ItemManager.getId(player.getItemInHand()) == 0) {
		throw new CivException("No item in hand.");
	}
	
	player.getInventory().addItem(player.getItemInHand());
	CivMessage.sendSuccess(player, player.getItemInHand().getType().name()+ "duplicated.");
}
 
源代码13 项目: civcraft   文件: DebugCommand.java
public void getspecial_cmd() throws CivException {
	Player player = getPlayer();
	ItemStack inHand = player.getItemInHand();
	if (inHand == null) {
		throw new CivException("You need an item in your hand.");
	}
	
	AttributeUtil attrs = new AttributeUtil(inHand);
	String value = attrs.getCivCraftProperty("soulbound");
	
	CivMessage.send(player, "Got:"+value);
}
 
源代码14 项目: civcraft   文件: DebugCommand.java
public void setspecial_cmd() throws CivException {
	Player player = getPlayer();
	ItemStack inHand = player.getItemInHand();
	if (inHand == null) {
		throw new CivException("You need an item in your hand.");
	}
	
//	AttributeUtil attrs = new AttributeUtil(inHand);
//	attrs.setCivCraftProperty("customId", "testMyCustomId");
	ItemStack stack = LoreMaterial.addEnhancement(inHand, new LoreEnhancementSoulBound());
	player.setItemInHand(stack);
	CivMessage.send(player, "Set it.");
}
 
源代码15 项目: civcraft   文件: DebugCommand.java
public void colorme_cmd() throws CivException {
	Player player = getPlayer();
	String hex = getNamedString(1, "color code");
	long value = Long.decode(hex);
	
	ItemStack inHand = player.getItemInHand();
	if (inHand == null || ItemManager.getId(inHand) == CivData.AIR) {
		throw new CivException("please have an item in your hand.");
	}
	
	AttributeUtil attrs = new AttributeUtil(inHand);
	attrs.setColor(value);		
	player.setItemInHand(attrs.getStack());
	CivMessage.sendSuccess(player, "Set color.");
}
 
源代码16 项目: IridiumSkyblock   文件: PlayerInteractListener.java
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
    try {
        final Player player = event.getPlayer();
        final Location playerLocation = player.getLocation();
        final IslandManager islandManager = IridiumSkyblock.getIslandManager();
        if (!islandManager.isIslandWorld(playerLocation)) return;

        final User user = User.getUser(player);
        final Block block = event.getClickedBlock();

        if (event.getAction().toString().startsWith("RIGHT_CLICK")) {
            if (player.getItemInHand() != null) {
                int crystals = Utils.getCrystals(player.getItemInHand()) * player.getItemInHand().getAmount();
                if (crystals != 0) {
                    player.setItemInHand(null);
                    user.getIsland().setCrystals(user.getIsland().getCrystals() + crystals);
                    player.sendMessage(Utils.color(IridiumSkyblock.getMessages().depositedCrystals.replace("%amount%", crystals + "").replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
                }
            }
        }

        if (block != null) {
            final Location location = block.getLocation();
            final Island island = islandManager.getIslandViaLocation(location);
            if (island != null) {
                if (!island.getPermissions(user).interact) {
                    event.setCancelled(true);
                    return;
                }
                final ItemStack itemInHand = player.getItemInHand();
                if (itemInHand.getType().equals(Material.BUCKET) && island.failedGenerators.remove(location)) {
                    if (itemInHand.getAmount() == 1)
                        itemInHand.setType(Material.LAVA_BUCKET);
                    else {
                        player.getInventory().addItem(new ItemStack(Material.LAVA_BUCKET));
                        player.getItemInHand().setAmount(itemInHand.getAmount() - 1);
                    }
                    block.setType(Material.AIR);
                }
            } else if (!user.bypassing) {
                event.setCancelled(true);
                return;
            }
        }

        final ItemStack item = event.getItem();
        if (IridiumSkyblock.getConfiguration().allowWaterInNether
                && event.getAction().equals(Action.RIGHT_CLICK_BLOCK)
                && item != null
                && block != null) {
            final World world = block.getWorld();
            if (!world.getEnvironment().equals(World.Environment.NETHER)) return;
            if (!item.getType().equals(Material.WATER_BUCKET)) return;

            event.setCancelled(true);

            final BlockFace face = event.getBlockFace();
            block.getRelative(face).setType(Material.WATER);

            final Block relative = block.getRelative(face);
            final BlockPlaceEvent blockPlaceEvent = new BlockPlaceEvent(relative, relative.getState(), block, item, player, false);
            if (blockPlaceEvent.isCancelled()) {
                block.getRelative(face).setType(Material.AIR);
            } else if (player.getGameMode().equals(GameMode.SURVIVAL)) {
                if (item.getAmount() == 1) {
                    item.setType(Material.BUCKET);
                } else {
                    item.setAmount(item.getAmount() - 1);
                    player.getInventory().addItem(new ItemStack(Material.BUCKET));
                }
            }
        }
    } catch (Exception e) {
        IridiumSkyblock.getInstance().sendErrorMessage(e);
    }
}
 
源代码17 项目: GriefDefender   文件: CommandClaimBan.java
@CommandCompletion("@gdbantypes @gdmcids @gddummy")
@CommandAlias("claimban")
@Description("Bans target id from all usage.")
@Syntax("hand | <type> <target> [<message>]")
@Subcommand("ban")
public void execute(Player player, String type, @Optional String id, @Optional String message) {
    Component component = null;
    if (type.equalsIgnoreCase("block")) {
        if (!BlockTypeRegistryModule.getInstance().getById(id).isPresent()) {
            TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.REGISTRY_BLOCK_NOT_FOUND,
                    ImmutableMap.of("id", TextComponent.of(id, TextColor.LIGHT_PURPLE))));
            return;
        }
        if (message == null) {
            component = TextComponent.empty();
        } else {
            component = LegacyComponentSerializer.legacy().deserialize(message, '&');
        }
        GriefDefenderPlugin.getGlobalConfig().getConfig().bans.addBlockBan(id, component);
        GriefDefenderPlugin.getGlobalConfig().save();
        TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.COMMAND_CLAIMBAN_SUCCESS_BLOCK,
                ImmutableMap.of("id", TextComponent.of(id, TextColor.LIGHT_PURPLE))));
    } else if (type.equalsIgnoreCase("entity")) {
        if (!EntityTypeRegistryModule.getInstance().getById(id).isPresent()) {
            TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.REGISTRY_ENTITY_NOT_FOUND,
                    ImmutableMap.of("id", TextComponent.of(id, TextColor.LIGHT_PURPLE))));
            return;
        }
        if (message == null) {
            component = TextComponent.empty();
        } else {
            component = LegacyComponentSerializer.legacy().deserialize(message, '&');
        }
        GriefDefenderPlugin.getGlobalConfig().getConfig().bans.addEntityBan(id, component);
        GriefDefenderPlugin.getGlobalConfig().save();
        TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.COMMAND_CLAIMBAN_SUCCESS_ENTITY,
                ImmutableMap.of("id", TextComponent.of(id, TextColor.LIGHT_PURPLE))));
    } else if (type.equalsIgnoreCase("item")) {
        if (!ItemTypeRegistryModule.getInstance().getById(id).isPresent()) {
            TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.REGISTRY_ITEM_NOT_FOUND,
                    ImmutableMap.of("id", TextComponent.of(id, TextColor.LIGHT_PURPLE))));
            return;
        }
        if (message == null) {
            component = TextComponent.empty();
        } else {
            component = LegacyComponentSerializer.legacy().deserialize(message, '&');
        }
        GriefDefenderPlugin.getGlobalConfig().getConfig().bans.addItemBan(id, component);
        GriefDefenderPlugin.getGlobalConfig().save();
        TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.COMMAND_CLAIMBAN_SUCCESS_ITEM,
                ImmutableMap.of("id", TextComponent.of(id, TextColor.LIGHT_PURPLE))));
    } else if (type.equalsIgnoreCase("hand")) {
        final ItemStack itemInHand = player.getItemInHand();
        final String handItemId = ItemTypeRegistryModule.getInstance().getNMSKey(itemInHand);
        if (message == null) {
            component = TextComponent.empty();
        } else {
            component = LegacyComponentSerializer.legacy().deserialize(message, '&');
        }
        GriefDefenderPlugin.getGlobalConfig().getConfig().bans.addItemBan(handItemId, component);
        GriefDefenderPlugin.getGlobalConfig().save();
        TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.COMMAND_CLAIMBAN_SUCCESS_ITEM,
                ImmutableMap.of("id", TextComponent.of(handItemId, TextColor.LIGHT_PURPLE))));
    }
    if (component == null) {
        TextAdapter.sendComponent(player, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.COMMAND_INVALID_TYPE,
                ImmutableMap.of("type", type)));
    }
}
 
源代码18 项目: UhcCore   文件: VeinMinerListener.java
@EventHandler
public void onBlockBreak(BlockBreakEvent e){
    Player player = e.getPlayer();

    if (!player.isSneaking()){
        return;
    }

    Block block = e.getBlock();
    ItemStack tool = player.getItemInHand();

    if (block.getType() == UniversalMaterial.GLOWING_REDSTONE_ORE.getType()){
        block.setType(Material.REDSTONE_ORE);
    }

    if (!UniversalMaterial.isCorrectTool(block.getType(), player.getItemInHand().getType())){
        return;
    }

    // find all surrounding blocks
    Vein vein = new Vein(block);
    vein.process();

    player.getWorld().dropItem(player.getLocation().getBlock().getLocation().add(.5,.5,.5), vein.getDrops(getVeinMultiplier(vein.getDropType())));

    if (vein.getTotalXp() != 0){
        UhcItems.spawnExtraXp(player.getLocation(), vein.getTotalXp());
    }

    // Process blood diamonds.
    if (isActivated(Scenario.BLOODDIAMONDS) && vein.getDropType() == Material.DIAMOND){
        player.getWorld().playSound(player.getLocation(), UniversalSound.PLAYER_HURT.getSound(), 1, 1);

        if (player.getHealth() < vein.getOres()){
            player.setHealth(0);
        }else {
            player.setHealth(player.getHealth() - vein.getOres());
        }
    }

    int newDurability = tool.getDurability()-vein.getOres();
    if (newDurability<1) newDurability = 1;

    tool.setDurability((short) newDurability);
    player.setItemInHand(tool);
}
 
源代码19 项目: CratesPlus   文件: Version_Util.java
public ItemStack getItemInPlayersHand(Player player) {
    return player.getItemInHand();
}
 
源代码20 项目: AnnihilationPro   文件: KitLoading.java
@EventHandler(priority=EventPriority.HIGHEST)
public void navCompassCheck(PlayerInteractEvent event)
{
	if(event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_AIR)
	{
		final Player player = event.getPlayer();
		ItemStack item = player.getItemInHand();
		String name = null;
		Loc target = null;
		if(KitUtils.itemHasName(item, CustomItem.NAVCOMPASS.getName()))
		{
			name = redcompass;
			target = AnniTeam.Red.getNexus().getLocation();
		}
		else if(KitUtils.itemHasName(item, redcompass))
		{
			name = bluecompass;
			target = AnniTeam.Blue.getNexus().getLocation();
		}
		else if(KitUtils.itemHasName(item, bluecompass))
		{
			name = greencompass;
			target = AnniTeam.Green.getNexus().getLocation();
		}
		else if(KitUtils.itemHasName(item, greencompass))
		{
			name = yellowcompass;
			target = AnniTeam.Yellow.getNexus().getLocation();
		}
		else if(KitUtils.itemHasName(item, yellowcompass))
		{
			name = redcompass;
			target = AnniTeam.Red.getNexus().getLocation();
		}
		
		if(name != null && target != null)
		{
			ItemMeta m = item.getItemMeta();
			m.setDisplayName(name);
			item.setItemMeta(m);
			player.setCompassTarget(target.toLocation());
		}
	}
}