Untitled

 avatar
unknown
plain_text
2 months ago
1.6 kB
14
Indexable
    @EventHandler
    public void onInvSee(final InventoryClickEvent e) {
        if (!(e.getWhoClicked() instanceof final Player p)) return;

        final String invName = e.getView().getTitle();
        if (!invName.startsWith(CC.translate("&7Inventory of "))) return;

        final Player target = Bukkit.getPlayer(invName.replace(CC.translate("&7Inventory of "), ""));
        if (target == null) {
            p.sendMessage(CC.translate("&cQuesto giocatore è offline."));
            e.setCancelled(true);
            return;
        }

        if (e.getClickedInventory() == null || !e.getClickedInventory().equals(e.getView().getTopInventory())) return;

        switch (e.getAction()) {
            case MOVE_TO_OTHER_INVENTORY, DROP_ONE_SLOT, PLACE_ALL, PLACE_ONE, PICKUP_ALL, SWAP_WITH_CURSOR,
                 DROP_ALL_CURSOR, DROP_ONE_CURSOR, DROP_ALL_SLOT, HOTBAR_SWAP, HOTBAR_MOVE_AND_READD, PICKUP_HALF,
                 PICKUP_ONE, PICKUP_SOME, PLACE_SOME, CLONE_STACK, COLLECT_TO_CURSOR:
                Bukkit.getScheduler().runTaskLater(RedAPI.getPlugin(), () -> syncCustomInventoryToTarget(e.getClickedInventory(), target), 1L);
                break;
            default:
                e.setCancelled(true);
                break;
        }
    }

    private void syncCustomInventoryToTarget(final Inventory customInventory, final Player target) {
        final PlayerInventory targetInv = target.getInventory();

        for (int i = 0; i <= 40; i++) {
            targetInv.setItem(i, customInventory.getItem(i));
        }
    }
Editor is loading...
Leave a Comment