@Override public BaseItemStack getItemInHand(HandSide handSide) { Optional<ItemStack> is = this.player.getItemInHand(handSide == HandSide.MAIN_HAND ? HandTypes.MAIN_HAND : HandTypes.OFF_HAND); return is.map(itemStack -> new BaseItemStack(ItemTypes.get(itemStack.getType().getId()))).orElse(null); }
@Override public ItemStack getItem(Player player) { return player.getItemInHand(HandTypes.MAIN_HAND).orElse(null); } }
@Override public ItemStack getItem(Player player) { return player.getItemInHand().orElse(null); } }
public String getCurrentToolId() { // @Update should have some support for sniper tools in offhands return getToolId((getPlayer().getItemInHand(HandTypes.MAIN_HAND).isPresent()) ? getPlayer().getItemInHand(HandTypes.MAIN_HAND).get() : null); }
@Listener public void onInteract(InteractEvent event, @Root Player player) { if (player.getItemInHand(HandTypes.MAIN_HAND).isPresent()) { if (ArmorType.isArmor(player.getItemInHand(HandTypes.MAIN_HAND).get().getItem().getId())) sendDelayedArmorUpdate(player); } }
@Listener public void onInteract(InteractEvent event, @Root Player player) { if (player.getItemInHand().isPresent()) { if (ArmorType.isArmor(player.getItemInHand().get().getItem().getId())) sendDelayedArmorUpdate(player); } }
@Listener(order = Order.POST) public void onInteract(InteractBlockEvent event, @First Player player) { // Sponge will never give you back a null. Instead if a value can be missing it will // give you back an Optional. // See https://docs.spongepowered.org/stable/en/plugin/optional/index.html // for more info on Optional. Optional<ItemStack> option = Optional .ofNullable(player.getItemInHand(HandTypes.MAIN_HAND) .orElse(player.getItemInHand(HandTypes.OFF_HAND).orElse(null))); if (option.isPresent()) { ItemType itemType = option.get().getType(); if (itemType.equals(ItemTypes.STICK)) { spawnFireball(player, false); } else if (itemType.equals(ItemTypes.BLAZE_ROD)) { if (player.hasPermission("simplefireball.large")) { spawnFireball(player, true); } else { player.sendMessage(NO_PERMISSION); } } } }
@Listener public void onPlayerInteract(InteractBlockEvent.Secondary event, @First Player player) { event.getTargetBlock().getLocation().ifPresent((location) -> { int powerLevel = BlockUtil.getDirectBlockPowerLevel(location).orElse(-1); HandType hand = event instanceof InteractBlockEvent.Secondary.MainHand ? HandTypes.MAIN_HAND : HandTypes.OFF_HAND; if (powerLevel >= 0 && permissionNode.hasPermission(player) && player.getItemInHand(hand).isPresent() && player.getItemInHand(hand).get().getType() == ammeterItem.getValue().getType()) { player.sendMessage(getCurrentLine(powerLevel)); event.setCancelled(true); } }); }
private Runnable handlePlayerKill(long time, UUID victimUUID, Player killer) { Optional<ItemStack> inMainHand = killer.getItemInHand(HandTypes.MAIN_HAND); ItemStack inHand = inMainHand.orElse(killer.getItemInHand(HandTypes.OFF_HAND).orElse(ItemStack.empty())); ItemType type = inHand.isEmpty() ? ItemTypes.AIR : inHand.getType(); return victimUUID != null ? new PlayerKillProcessor(killer.getUniqueId(), time, victimUUID, new ItemNameFormatter().apply(type.getName())) : new MobKillProcessor(killer.getUniqueId()); }
@Listener public void onPlayerInteract(InteractBlockEvent.Secondary event, @First Player player) { event.getTargetBlock().getLocation().ifPresent((location) -> { int lightLevel = BlockUtil.getLightLevel(location.getRelative(event.getTargetSide())); HandType hand = event instanceof InteractBlockEvent.Secondary.MainHand ? HandTypes.MAIN_HAND : HandTypes.OFF_HAND; if (lightLevel >= 0 && permissionNode.hasPermission(player) && player.getItemInHand(hand).isPresent() && player.getItemInHand(hand).get().getType() == lightstoneItem.getValue().getType()) { player.sendMessage(getCurrentLine(lightLevel)); event.setCancelled(true); } }); }
@Listener public void onPlayerInteract(InteractBlockEvent.Secondary.MainHand event, @First Player player) { event.getTargetBlock().getLocation().filter((this::isValid)).ifPresent(location -> { if (!sneakState.getValue().doesPass(player.get(Keys.IS_SNEAKING).orElse(false) || !usePermissions.hasPermission(player))) { return; //Don't alert the player with this mechanic. } if (!readWhenHoldingBlock.getValue()) { ItemStack stack = player.getItemInHand(HandTypes.MAIN_HAND).filter((itemStack -> itemStack.getType().getBlock().isPresent())).orElse(null); if (stack != null) return; } String line = bookLines[ThreadLocalRandom.current().nextInt(bookLines.length)]; player.sendMessage(Text.of(TextColors.YELLOW, "You pick up a book...")); for (String lineSegment : line.split("\\\\n")) { player.sendMessage(TextSerializers.FORMATTING_CODE.deserialize(lineSegment)); } }); }
@Listener public final void onPlayerInteract(InteractItemEvent.Secondary.MainHand event, @Root Player player) { if (!player.hasPermission(VoxelSniperConfiguration.PERMISSION_SNIPER)) { return; } Sniper sniper = SniperManager.get().getSniperForPlayer(player); if (sniper.isEnabled() && sniper.snipe(InteractionType.SECONDARY_MAINHAND, player.getItemInHand(HandTypes.MAIN_HAND).orElse(null))) { event.setCancelled(true); } }
@Listener public void onBlockBreak(ChangeBlockEvent.Break event, @First Player player) { if (event.getCause().containsType(PluginContainer.class)) { return; //Ignore plugin caused breaks. } if(ItemUtil.doesStackPassFilters(allowedItems.getValue(), player.getItemInHand(HandTypes.MAIN_HAND).orElse(null)) && !disabledPlayers.getValue().contains(player.getUniqueId())) { event.getTransactions().stream().filter((t) -> BlockUtil.doesStatePassFilters(allowedBlocks.getValue(), t.getOriginal().getState())).forEach(transaction -> { Optional<TreeType> treeType = transaction.getOriginal().get(Keys.TREE_TYPE); treeType.ifPresent(treeType1 -> transaction.getOriginal().getLocation().ifPresent(location -> { List<Location> traversed = Lists.newArrayList(location); for(Direction dir : BlockUtil.getDirectFaces()) { checkBlocks(location.getRelative(dir), player, treeType1, traversed); } })); }); } }
@Listener public void onInteract(InteractBlockEvent.Primary.MainHand event, @Root Player player) { Optional<ItemStack> item = player.getItemInHand(HandTypes.MAIN_HAND); if (item.isPresent() && item.get().getType().equals(ItemTypes.WOODEN_AXE)) { get(player).setPos1(event.getTargetBlock().getPosition()); player.sendMessage(Text.of(TextColors.LIGHT_PURPLE, "Position 1 set to " + event.getTargetBlock().getPosition())); event.setCancelled(true); } }
if (ItemUtil.ALL_ANY_SIZE.compare(key.get().createStack(), player.getItemInHand(HandTypes.MAIN_HAND).orElse(ItemStack.empty())) != 0 && ItemUtil.ALL_ANY_SIZE.compare(key.get().createStack(), player.getItemInHand(HandTypes.OFF_HAND).orElse(ItemStack.empty())) != 0) { player.sendMessage(Text.of(TextColors.RED, "The key doesn't fit.")); return;
int level = ((Player) killer).getItemInHand(HandTypes.MAIN_HAND).filter(item -> item.get(Keys.ITEM_ENCHANTMENTS).isPresent()) .map(item -> item.get(Keys.ITEM_ENCHANTMENTS).get().stream() .filter(enchant -> enchant.getType().equals(EnchantmentTypes.LOOTING)).findFirst())
@Listener public void onInteract(InteractBlockEvent.Secondary.MainHand event, @Root Player player) { Optional<ItemStack> item = player.getItemInHand(HandTypes.MAIN_HAND); if (item.isPresent() && item.get().getType().equals(ItemTypes.WOODEN_AXE) && event.getTargetBlock() != BlockSnapshot.NONE) { get(player).setPos2(event.getTargetBlock().getPosition()); player.sendMessage(Text.of(TextColors.LIGHT_PURPLE, "Position 2 set to " + event.getTargetBlock().getPosition())); event.setCancelled(true); } }
bottleCount.set(0); for (HandType handType : Sponge.getRegistry().getAllOf(HandType.class)) { player.getItemInHand(handType).filter(itemStack -> itemStack.getType() == ItemTypes.GLASS_BOTTLE) .ifPresent((itemStack -> bottleCount.addAndGet(itemStack.getQuantity())));
if (isValid(location)) { location.getTileEntity().map(sign -> (Sign) sign).ifPresent(sign -> { ItemStack itemStack = player.getItemInHand(event.getHandType()).filter(stack -> FuelSource.canCookWith(stack.getType())).orElse(null); if (itemStack != null) { if (refuelPermissions.hasPermission(player)) {
: (event instanceof InteractBlockEvent.Secondary.MainHand ? HandTypes.MAIN_HAND : HandTypes.OFF_HAND); player.getItemInHand(hand).ifPresent(itemStack -> { if (itemStack.getType() == signCopierItem.getValue().getType()) { event.getTargetBlock().getLocation().ifPresent(location -> {