Untitled
unknown
plain_text
10 months ago
1.6 kB
32
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