org.bukkit.event.inventory.InventoryInteractEvent#org.bukkit.event.inventory.InventoryDragEvent源码实例Demo

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

源代码1 项目: ProRecipes   文件: Recipes.java
@EventHandler
public void onDrag(InventoryDragEvent event){
//	int counter = 0;
	if(event.getInventory().getName() != null && event.getInventory().getName().equalsIgnoreCase(ProRecipes.getPlugin().ms.getMessage("Multi_Craft_GUI", ChatColor.GOLD + "Multi-Craft Table"))){
		for(int b : event.getInventorySlots()){
			if(((b-1) % 9 == 0 || (b-2) % 9 == 0 || (b-3) % 9 == 0 || (b-4) % 9 == 0) && event.getInventorySlots().size() > 1){
				if(empty(event.getInventory(), null) && !emptyResults(event.getInventory())){
					event.setCancelled(true);
					return;
				}else{
					callClick(b, event.getView());
					
				}
				
				continue;
			}else{
				event.setCancelled(true);
				break;
			}
		}

		
	}
}
 
源代码2 项目: ArmorStandTools   文件: ArmorStandGUI.java
@EventHandler
public void onInventoryDrag(InventoryDragEvent event) {
    if(!event.getInventory().equals(i) || !(event.getWhoClicked() instanceof Player)) return;
    Player p = (Player) event.getWhoClicked();
    boolean invModified = false;
    for(int slot : event.getRawSlots()) {
        if(slot < i.getSize()) {
            if(invSlots.contains(slot)) {
                invModified = true;
            } else {
                event.setCancelled(true);
                return;
            }
        }
    }
    if(invModified) {
        if(plugin.checkBlockPermission(p, as.getLocation().getBlock())) {
            updateInventory();
        } else {
            event.setCancelled(true);
            p.sendMessage(ChatColor.RED + Config.wgNoPerm);
        }
    }
}
 
源代码3 项目: civcraft   文件: LoreGuiItemListener.java
@EventHandler(priority = EventPriority.LOW) 
public void OnInventoryDragEvent(InventoryDragEvent event) {
	if (event.isCancelled()) {
		return;
	}
	
	for (int slot : event.getRawSlots()) {
		if (slot < event.getView().getTopInventory().getSize()) {
			if (guiInventories.containsKey(event.getView().getTopInventory().getName())) {
				event.setCancelled(true);
				return;
			}
		}
	}
	
}
 
源代码4 项目: InventoryGui   文件: InventoryGui.java
public void unregister() {
    InventoryClickEvent.getHandlerList().unregister(this);
    InventoryDragEvent.getHandlerList().unregister(this);
    InventoryCloseEvent.getHandlerList().unregister(this);
    InventoryMoveItemEvent.getHandlerList().unregister(this);
    BlockDispenseEvent.getHandlerList().unregister(this);
    BlockBreakEvent.getHandlerList().unregister(this);
    EntityDeathEvent.getHandlerList().unregister(this);
}
 
源代码5 项目: ProjectAres   文件: ItemTransferListener.java
@EventHandler(ignoreCancelled = true)
public void onPlayerDragInventory(InventoryDragEvent event) {
    // This is when you spread items evenly across slots by dragging
    if(!(event.getWhoClicked() instanceof Player)) {
        return;
    }
    Player player = (Player) event.getWhoClicked();

    ItemStack transferred = event.getOldCursor().clone();
    transferred.setAmount(0);
    Inventory externalInventory = null;

    for(Map.Entry<Integer, ItemStack> entry : event.getNewItems().entrySet()) {
        Inventory inventory = getLocalInventory(event.getView(), entry.getKey());
        if(inventory.getHolder() != player) {
            // Add stacks to the total if they are dragged over an external inventory
            externalInventory = inventory;
            transferred.setAmount(transferred.getAmount() + entry.getValue().getAmount());
        }
    }

    if(externalInventory != null) {
        int initialQuantity = transferred.getAmount();
        PlayerItemTransferEvent transferEvent = new PlayerItemTransferEvent(
            event, ItemTransferEvent.Type.PLACE, player,
            Optional.empty(),
            Optional.of(new InventorySlot<>(externalInventory)),
            transferred, null, initialQuantity,
            event.getOldCursor()
        );

        this.callEvent(transferEvent);

        if(initialQuantity != transferEvent.getQuantity()) {
            // If the quantity changes, we have to cancel the entire drag,
            // because bukkit does not let us modify the dragged stacks.
            event.setCancelled(true);
        }
    }
}
 
源代码6 项目: Transport-Pipes   文件: DuctSettingsInventory.java
@EventHandler
public void onDrag(InventoryDragEvent e) {
    if (e.getInventory() != null && e.getInventory().equals(inv) && e.getWhoClicked() instanceof Player) {
        if (drag((Player) e.getWhoClicked(), e.getRawSlots(), e.getType())) {
            e.setCancelled(true);
        }
    }
}
 
源代码7 项目: Civs   文件: MenuManager.java
@EventHandler(ignoreCancelled = true) @SuppressWarnings("unused")
public void onInventoryDrag(InventoryDragEvent event) {
    UUID uuid = event.getWhoClicked().getUniqueId();
    if (!openMenus.containsKey(uuid)) {
        return;
    }
    menus.get(openMenus.get(uuid)).onInventoryDrag(event);
}
 
源代码8 项目: Civs   文件: CivilianListener.java
@EventHandler(ignoreCancelled = true)
public void onCivilianDragItem(InventoryDragEvent event) {
    if (event.getView().getTopInventory().getHolder() instanceof Chest) {
        Location inventoryLocation = ((Chest) event.getView().getTopInventory().getHolder()).getLocation();
        UnloadedInventoryHandler.getInstance().updateInventoryAtLocation(inventoryLocation);
    }
    if (ConfigManager.getInstance().getAllowSharingCivsItems()) {
        return;
    }
    ItemStack dragged = event.getOldCursor();

    if (!CVItem.isCivsItem(dragged) ||
            MenuManager.getInstance().hasMenuOpen(event.getWhoClicked().getUniqueId())) {
        return;
    }

    int inventorySize = event.getInventory().getSize();
    for (int i : event.getRawSlots()) {
        if (i < inventorySize) {
            event.setCancelled(true);
            HumanEntity humanEntity = event.getWhoClicked();
            humanEntity.sendMessage(Civs.getPrefix() +
                    LocaleManager.getInstance().getTranslationWithPlaceholders((Player) humanEntity, LocaleConstants.PREVENT_CIVS_ITEM_SHARE));
            return;
        }
    }
}
 
源代码9 项目: black   文件: InventoryDragListener.java
/**
 * the listener that listens for inventory drags and informs the pages associated with them.
 *
 * @param event the event that happened
 * @see InventoryDragEvent
 */
@EventHandler
public void listener(final InventoryDragEvent event) {
    if (event.getInventory().getHolder() instanceof Page &&
            !(event.getInventory() instanceof PlayerInventory)) {

        ((Page) event.getInventory().getHolder()).accept(event);
    }
}
 
源代码10 项目: black   文件: AddedElementReq.java
@Override
public boolean control(final InventoryInteractEvent event) {
    if (event instanceof InventoryDragEvent) {
        return ((InventoryDragEvent) event).getNewItems().values()
            .stream().anyMatch(element::is);
    }
    return false;
}
 
源代码11 项目: black   文件: DraggedItemReq.java
@Override
public boolean control(final InventoryInteractEvent event) {
    if (event instanceof InventoryClickEvent) {
        return false;
    } else {
        return ((InventoryDragEvent) event).getOldCursor().equals(item);
    }
}
 
源代码12 项目: black   文件: DraggedElementReq.java
@Override
public boolean control(final InventoryInteractEvent event) {
    if (event instanceof InventoryClickEvent) {
        return false;
    } else {
        return element.is(((InventoryDragEvent) event).getCursor());
    }
}
 
源代码13 项目: black   文件: AddedItemReq.java
@Override
public boolean control(final InventoryInteractEvent event) {
    if (event instanceof InventoryDragEvent) {
        return ((InventoryDragEvent) event).getNewItems().values()
            .stream().anyMatch(this.item::equals);
    }
    return false;
}
 
源代码14 项目: black   文件: SlotReq.java
@Override
public boolean control(final InventoryInteractEvent event) {
    if (event instanceof InventoryClickEvent) {
        return ((InventoryClickEvent) event).getSlot() == slot;
    } else {
        return ((InventoryDragEvent) event).getInventorySlots().contains(slot);
    }
}
 
源代码15 项目: black   文件: DragTypeReq.java
@Override
public boolean control(final InventoryInteractEvent event) {
    if (event instanceof InventoryDragEvent) {
        return ((InventoryDragEvent) event).getType() == dragType;
    } else {
        return false;
    }
}
 
源代码16 项目: black   文件: DragTarget.java
@Override
public void handle(final InventoryInteractEvent event) {
    if (event instanceof InventoryDragEvent &&
            Arrays.stream(reqs).allMatch(req -> req.control(event))) {

        handler.accept(new ElementDragEvent((InventoryDragEvent) event));
    }
}
 
源代码17 项目: AnvilGUI   文件: AnvilGUI.java
@EventHandler
public void onInventoryDrag(InventoryDragEvent event) {
	if (event.getInventory().equals(inventory)) {
		for (int slot : Slot.values()) {
			if (event.getRawSlots().contains(slot)) {
				event.setCancelled(true);
				break;
			}
		}
	}
}
 
源代码18 项目: ProRecipes   文件: RecipeBuilder.java
@EventHandler
public void inventoryDrag(InventoryDragEvent event){
	if(!event.getInventory().getType().equals(InventoryType.WORKBENCH))return;
	if(!event.getWhoClicked().hasMetadata("recipeBuilder"))return;
	String step = event.getWhoClicked().getMetadata("recipeBuilder").get(0).asString();
	if(step.contains("itemRequest")){
		
			event.setCancelled(true);
			
		}
}
 
源代码19 项目: ProRecipes   文件: ItemBuilder.java
@EventHandler
public void inventoryDrag(InventoryDragEvent event){
	if(!event.getInventory().getType().equals(InventoryType.WORKBENCH))return;
	if(!event.getWhoClicked().hasMetadata("itemBuilder"))return;
	String step = event.getWhoClicked().getMetadata("itemBuilder").get(0).asString();
	if(step.equalsIgnoreCase("itemRequest")){
		
			event.setCancelled(true);
			
		}
}
 
源代码20 项目: NyaaUtils   文件: ExtraBackpackListener.java
@EventHandler
public void onInventoryDrag(InventoryDragEvent event) {
    if (event.getInventory().getHolder() instanceof ExtraBackpackGUI) {
        ((ExtraBackpackGUI) event.getInventory().getHolder()).taint();
        ((ExtraBackpackGUI) event.getInventory().getHolder()).onInventoryDrag(event);
    }
}
 
源代码21 项目: MCAuthenticator   文件: InventoryEvent.java
@EventHandler
public void onInventoryChange(InventoryDragEvent e) {
    if (!(e.getWhoClicked() instanceof Player)) return;
    if (isInQR((Player) e.getWhoClicked())) {
        e.setResult(Event.Result.DENY);
        e.getWhoClicked().closeInventory();//Should be viewing map
    }
}
 
源代码22 项目: TimeIsMoney   文件: ATM.java
@EventHandler
public void onInventoryDrag(InventoryDragEvent e) {
	if (e == null || e.getInventory() == null) return;

	if (openATMs.contains(e.getView().getTopInventory())) {
		e.setResult(Result.DENY);
	}
}
 
源代码23 项目: ArmorStandTools   文件: MainListener.java
@EventHandler
public void onInventoryDrag(InventoryDragEvent event) {
    if (event.isCancelled() || !(event.getWhoClicked() instanceof Player)) return;
    final Player p = (Player) event.getWhoClicked();
    if (event.getInventory().getHolder() != p && Utils.containsItems(event.getNewItems().values())) {
        event.setCancelled(true);
        //noinspection deprecation
        p.updateInventory();
    }
}
 
源代码24 项目: UHC   文件: PotionFuelsListener.java
@EventHandler(ignoreCancelled = true)
public void on(InventoryDragEvent event) {
    if (event.getInventory().getType() != InventoryType.BREWING) return;

    // if it's not a disabled type do nothing
    if (!disabled.contains(event.getOldCursor().getType())) return;

    // check if they dragged over the ingredient
    if (event.getRawSlots().contains(INGREDIENT_SLOT_ID)) {
        event.getWhoClicked().sendMessage(messages.get(event.getOldCursor().getType()));
        event.setCancelled(true);
    }
}
 
源代码25 项目: UHC   文件: HorseArmourModule.java
@EventHandler(ignoreCancelled = true)
public void on(InventoryDragEvent event) {
    if (isEnabled()) return;

    if (!(event.getView().getTopInventory() instanceof HorseInventory)) return;

    // if it's not a disabled type do nothing
    if (!DISABLED.contains(event.getOldCursor().getType())) return;

    event.getWhoClicked().sendMessage(messages.getRaw("disabled message"));
    event.setCancelled(true);
}
 
源代码26 项目: UHC   文件: IconInventory.java
@EventHandler
public void on(InventoryDragEvent event) {
    final Inventory inventory = event.getInventory();
    if (!inventory.getTitle().equals(title)) return;

    event.setCancelled(true);
}
 
源代码27 项目: ZombieEscape   文件: MenuManager.java
@EventHandler
public void onClick(InventoryDragEvent e) {
    Inventory inv = e.getWhoClicked().getOpenInventory().getTopInventory();
    for (Menu menu : menus.values()) {
        if (menu.getInventory().getName().equals(inv.getName())) {
            e.setCancelled(true);
        }
    }
}
 
源代码28 项目: ShopChest   文件: CreativeModeListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onInventoryDrag(InventoryDragEvent e) {
    // Cancel any inventory drags if SelectClickType is set
    HumanEntity entity = e.getWhoClicked();
    if (!(entity instanceof Player))
        return;

    ClickType clickType = ClickType.getPlayerClickType((Player) entity);
    if (clickType instanceof SelectClickType)
        e.setCancelled(true);
}
 
源代码29 项目: BetonQuest   文件: QuestItemHandler.java
@EventHandler(ignoreCancelled = true)
public void onItemDrag(final InventoryDragEvent event) {
    if (!(event.getWhoClicked() instanceof Player)) {
        return;
    }
    if (event.getWhoClicked().getGameMode() == GameMode.CREATIVE) {
        return;
    }
    final String playerID = PlayerConverter.getID((Player) event.getWhoClicked());
    if (Journal.isJournal(playerID, event.getOldCursor()) || Utils.isQuestItem(event.getOldCursor())) {
        event.setCancelled(true);
    }
}
 
源代码30 项目: civcraft   文件: TradeInventoryListener.java
@EventHandler(priority = EventPriority.LOW)
public void onInventoryDragEvent(InventoryDragEvent event) {
	if (!(event.getWhoClicked() instanceof Player)) {
		return;
	}
	Player player = (Player)event.getWhoClicked();
	Resident resident = CivGlobal.getResident(player);
	TradeInventoryPair pair = tradeInventories.get(getTradeInventoryKey(resident));
	if (pair == null) {
		return;
	}
	
	Inventory savedTradeInventory = pair.inv;
	if (savedTradeInventory == null) {
		return;
	}
	
	if (!savedTradeInventory.getName().equals(event.getInventory().getName())) {
		return;
	}
	
	for (int slot : event.getRawSlots()) {
		if (!handleSlotChange(slot, pair)) {
			event.setCancelled(true);
			return;
		}
	}
}