Examples of SlotTakeEvent


Examples of org.getspout.spoutapi.event.slot.SlotTakeEvent

        stackOnCursor.setAmount(amountCursor);
        stackInSlot.setAmount(amountSlot);
        if (amountSlot == 0) {
          stackInSlot = new ItemStack(0);
        }
        SlotEvent s = new SlotTakeEvent(p, slot, stackInSlot, !slot.onItemTake(stackOnCursor));
        Bukkit.getPluginManager().callEvent(s);
        if (!s.isCancelled()) {
          slot.setItem(stackInSlot);
        } else {
          slot.setDirty(true); // We need to tell the client that the operation was denied.
          return;
        }
      } else if (stackOnCursor != null && (stackInSlot.getTypeId() == 0 || (stackInSlot.getTypeId() == stackOnCursor.getTypeId() && stackInSlot.getDurability() == stackOnCursor.getDurability()))) { // Put item
        ItemStack toPut = stackOnCursor.clone();
        int putAmount = toPut.getAmount();
        if (button == 1) {
          putAmount = 1;
        }
        int amount = stackInSlot.getTypeId() == 0 ? 0 : stackInSlot.getAmount();
        amount += putAmount;
        int maxStackSize = toPut.getMaxStackSize();
        if (maxStackSize == -1) {
          maxStackSize = 64;
        }
        if (amount > maxStackSize) {
          putAmount -= amount - maxStackSize;
          amount = maxStackSize;
        }
        if (putAmount <= 0) {
          return;
        }
        toPut.setAmount(putAmount);
        SlotEvent s = new SlotPutEvent(p, slot, stackInSlot, !slot.onItemPut(toPut));
        Bukkit.getPluginManager().callEvent(s);
        if (!s.isCancelled()) {
          stackOnCursor.setAmount(stackOnCursor.getAmount() - putAmount);
          if (stackOnCursor.getAmount() == 0) {
            stackOnCursor = new ItemStack(0);
          }
          ItemStack put = toPut.clone();
          put.setAmount(amount);
          slot.setItem(put);
        } else {
          slot.setDirty(true); // We need to tell the client that the operation was denied.
        }
      } else if (stackOnCursor == null || stackOnCursor.getTypeId() == 0) { //Take item or shift click
        if (holdingShift) {
          slot.onItemShiftClicked();
          SlotEvent s = new SlotShiftClickEvent(p, slot);
          Bukkit.getPluginManager().callEvent(s);
        } else { // Take item
          SlotEvent s = new SlotTakeEvent(p, slot, stackInSlot, !slot.onItemTake(stackInSlot));
          Bukkit.getPluginManager().callEvent(s);
          if (!s.isCancelled()) {
            stackOnCursor = stackInSlot;
            slot.setItem(new ItemStack(0));
          } else {
            slot.setDirty(true); // We need to tell the client that the operation was denied.
          }
        }
      } else if (stackOnCursor.getTypeId() != stackInSlot.getTypeId() || stackOnCursor.getDurability() != stackInSlot.getDurability()) { // Exchange slot stack and cursor stack
        SlotEvent s = new SlotExchangeEvent(p, slot, stackInSlot, stackOnCursor.clone(), !slot.onItemExchange(stackInSlot, stackOnCursor.clone()));
        Bukkit.getPluginManager().callEvent(s);
        if (!s.isCancelled()) {
          slot.setItem(stackOnCursor.clone());
          stackOnCursor = stackInSlot;
        } else {
          slot.setDirty(true); // We need to tell the client that the operation was denied.
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.