org.bukkit.inventory.InventoryView#getInventory ( )源码实例Demo

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

源代码1 项目: IF   文件: GuiListener.java
/**
 * Handles clicks in inventories
 *
 * @param event the event fired
 * @since 0.5.4
 */
@EventHandler(ignoreCancelled = true)
public void onInventoryClick(@NotNull InventoryClickEvent event) {
    if (!(event.getInventory().getHolder() instanceof Gui)) {
        return;
    }

    Gui gui = (Gui) event.getInventory().getHolder();
    InventoryView view = event.getView();
    Inventory inventory = view.getInventory(event.getRawSlot());

    if (inventory == null) {
        gui.callOnOutsideClick(event);
        return;
    }

    gui.callOnGlobalClick(event);
    if (inventory.equals(view.getTopInventory())) {
        gui.callOnTopClick(event);
    } else {
        gui.callOnBottomClick(event);
    }

    if ((inventory.equals(view.getBottomInventory()) && gui.getState() == Gui.State.TOP) ||
        event.getCurrentItem() == null) {
        return;
    }

    List<Pane> panes = gui.getPanes();

    //loop through the panes reverse, because the pane with the highest priority (last in list) is most likely to have the correct item
    for (int i = panes.size() - 1; i >= 0; i--) {
        if (panes.get(i).click(gui, event, 0, 0, 9, gui.getRows() + 4))
            break;
    }
}
 
源代码2 项目: IF   文件: MasonryPane.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    int length = Math.min(this.length, maxLength);
    int height = Math.min(this.height, maxHeight);

    int slot = event.getSlot();
    InventoryView view = event.getView();
    Inventory inventory = view.getInventory(event.getRawSlot());

    int x, y;

    if (inventory != null && inventory.equals(view.getBottomInventory())) {
        x = (slot % 9) - getX() - paneOffsetX;
        y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

        if (slot / 9 == 0) {
            y = (gui.getRows() + 3) - getY() - paneOffsetY;
        }
    } else {
        x = (slot % 9) - getX() - paneOffsetX;
        y = (slot / 9) - getY() - paneOffsetY;
    }

    if (x < 0 || x >= length || y < 0 || y >= height)
        return false;

    callOnClick(event);

    boolean success = false;

    for (Pane pane : panes) {
        success = success || pane.click(gui, event, paneOffsetX + getX(),
            paneOffsetY + getY(), length, height);
    }

    return success;
}
 
源代码3 项目: IF   文件: PercentageBar.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    int length = Math.min(this.length, maxLength);
    int height = Math.min(this.height, maxHeight);

    int slot = event.getSlot();
    InventoryView view = event.getView();
    Inventory inventory = view.getInventory(event.getRawSlot());

    int x, y;

    if (inventory != null && inventory.equals(view.getBottomInventory())) {
        x = (slot % 9) - getX() - paneOffsetX;
        y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

        if (slot / 9 == 0) {
            y = (gui.getRows() + 3) - getY() - paneOffsetY;
        }
    } else {
        x = (slot % 9) - getX() - paneOffsetX;
        y = (slot / 9) - getY() - paneOffsetY;
    }

    if (x < 0 || x >= length || y < 0 || y >= height) {
        return false;
    }

    callOnClick(event);

    event.setCancelled(true);

    int newPaneOffsetX = paneOffsetX + getX();
    int newPaneOffsetY = paneOffsetY + getY();

    return this.fillPane.click(gui, event, newPaneOffsetX, newPaneOffsetY, length, height) ||
        this.backgroundPane.click(gui, event, newPaneOffsetX, newPaneOffsetY, length, height);
}
 
源代码4 项目: IF   文件: PaginatedPane.java
@Override
  public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY, int maxLength,
                       int maxHeight) {
      int length = Math.min(this.length, maxLength);
      int height = Math.min(this.height, maxHeight);

      int slot = event.getSlot();
      InventoryView view = event.getView();
      Inventory inventory = view.getInventory(event.getRawSlot());

      int x, y;

      if (inventory != null && inventory.equals(view.getBottomInventory())) {
          x = (slot % 9) - getX() - paneOffsetX;
          y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

          if (slot / 9 == 0) {
              y = (gui.getRows() + 3) - getY() - paneOffsetY;
          }
      } else {
          x = (slot % 9) - getX() - paneOffsetX;
          y = (slot / 9) - getY() - paneOffsetY;
      }

      //this isn't our item
      if (x < 0 || x >= length || y < 0 || y >= height) {
          return false;
      }

callOnClick(event);

      List<Pane> panes = this.panes.get(page);

      if (panes == null) {
          return false;
      }

      boolean success = false;

      for (Pane pane : panes) {
          success = success || pane.click(gui, event, paneOffsetX + getX(),
              paneOffsetY + getY(), length, height);
      }

      return success;
  }
 
源代码5 项目: IF   文件: StaticPane.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                        int maxLength, int maxHeight) {
	int length = Math.min(this.length, maxLength);
	int height = Math.min(this.height, maxHeight);

	int slot = event.getSlot();
       InventoryView view = event.getView();
       Inventory inventory = view.getInventory(event.getRawSlot());

       int x, y;

       if (inventory != null && inventory.equals(view.getBottomInventory())) {
           x = (slot % 9) - getX() - paneOffsetX;
           y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

           if (slot / 9 == 0) {
               y = (gui.getRows() + 3) - getY() - paneOffsetY;
           }
       } else {
           x = (slot % 9) - getX() - paneOffsetX;
           y = (slot / 9) - getY() - paneOffsetY;
       }

	//this isn't our item
	if (x < 0 || x >= length || y < 0 || y >= height)
		return false;

	callOnClick(event);

       ItemStack itemStack = event.getCurrentItem();

       if (itemStack == null) {
           return false;
       }

       GuiItem clickedItem = findMatchingItem(items.values(), itemStack);

       if (clickedItem == null) {
           return false;
       }

       clickedItem.callAction(event);

       return true;
}
 
源代码6 项目: IF   文件: OutlinePane.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    int length = Math.min(this.length, maxLength);
    int height = Math.min(this.height, maxHeight);

    int slot = event.getSlot();
    InventoryView inventoryView = event.getView();
    Inventory inventory = inventoryView.getInventory(event.getRawSlot());

    int x, y;

    if (inventory != null && inventory.equals(inventoryView.getBottomInventory())) {
        x = (slot % 9) - getX() - paneOffsetX;
        y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

        if (slot / 9 == 0) {
            y = (gui.getRows() + 3) - getY() - paneOffsetY;
        }
    } else {
        x = (slot % 9) - getX() - paneOffsetX;
        y = (slot / 9) - getY() - paneOffsetY;
    }

    //this isn't our item
    if (x < 0 || x >= length || y < 0 || y >= height)
        return false;

    callOnClick(event);

    ItemStack itemStack = event.getCurrentItem();

    if (itemStack == null) {
        return false;
    }

    GuiItem item = findMatchingItem(items, itemStack);

    if (item == null) {
        return false;
    }

    item.callAction(event);

    return true;
}
 
源代码7 项目: IF   文件: Slider.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    int length = Math.min(this.length, maxLength);
    int height = Math.min(this.height, maxHeight);

    int slot = event.getSlot();
    InventoryView view = event.getView();
    Inventory inventory = view.getInventory(event.getRawSlot());

    int x, y;

    if (inventory != null && inventory.equals(view.getBottomInventory())) {
        x = (slot % 9) - getX() - paneOffsetX;
        y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

        if (slot / 9 == 0) {
            y = (gui.getRows() + 3) - getY() - paneOffsetY;
        }
    } else {
        x = (slot % 9) - getX() - paneOffsetX;
        y = (slot / 9) - getY() - paneOffsetY;
    }

    if (x < 0 || x >= length || y < 0 || y >= height) {
        return false;
    }

    callOnClick(event);

    int newPaneOffsetX = paneOffsetX + getX();
    int newPaneOffsetY = paneOffsetY + getY();

    boolean success = this.fillPane.click(gui, event, newPaneOffsetX, newPaneOffsetY, length, height) ||
        this.backgroundPane.click(gui, event, newPaneOffsetX, newPaneOffsetY, length, height);

    if (orientation == Orientation.HORIZONTAL) {
        setValue((float) (x + 1) / length);
    } else if (orientation == Orientation.VERTICAL) {
        setValue((float) (y + 1) / height);
    } else {
        throw new UnsupportedOperationException("Unknown orientation");
    }

    gui.update();

    return success;
}
 
源代码8 项目: IF   文件: CycleButton.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    int length = Math.min(this.length, maxLength);
    int height = Math.min(this.height, maxHeight);

    int slot = event.getSlot();
    InventoryView view = event.getView();
    Inventory inventory = view.getInventory(event.getRawSlot());

    int x, y;

    if (inventory != null && inventory.equals(view.getBottomInventory())) {
        x = (slot % 9) - getX() - paneOffsetX;
        y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

        if (slot / 9 == 0) {
            y = (gui.getRows() + 3) - getY() - paneOffsetY;
        }
    } else {
        x = (slot % 9) - getX() - paneOffsetX;
        y = (slot / 9) - getY() - paneOffsetY;
    }

    //this isn't our item
    if (x < 0 || x >= length || y < 0 || y >= height) {
        return false;
    }

    callOnClick(event);

    panes.get(position).click(gui, event, paneOffsetX + x, paneOffsetY + y, length, height);

    position++;

    if (position == panes.size()) {
        position = 0;
    }

    gui.update();

    return true;
}
 
源代码9 项目: IF   文件: ToggleButton.java
@Override
public boolean click(@NotNull Gui gui, @NotNull InventoryClickEvent event, int paneOffsetX, int paneOffsetY,
                     int maxLength, int maxHeight) {
    int length = Math.min(this.length, maxLength);
    int height = Math.min(this.height, maxHeight);

    int slot = event.getSlot();
    InventoryView view = event.getView();
    Inventory inventory = view.getInventory(event.getRawSlot());

    int x, y;

    if (inventory != null && inventory.equals(view.getBottomInventory())) {
        x = (slot % 9) - getX() - paneOffsetX;
        y = ((slot / 9) + gui.getRows() - 1) - getY() - paneOffsetY;

        if (slot / 9 == 0) {
            y = (gui.getRows() + 3) - getY() - paneOffsetY;
        }
    } else {
        x = (slot % 9) - getX() - paneOffsetX;
        y = (slot / 9) - getY() - paneOffsetY;
    }

    //this isn't our item
    if (x < 0 || x >= length || y < 0 || y >= height) {
        return false;
    }

    callOnClick(event);

    int newX = paneOffsetX + x;
    int newY = paneOffsetY + y;

    if (enabled) {
        enabledPane.click(gui, event, newX, newY, length, height);
    } else {
        disabledPane.click(gui, event, newX, newY, length, height);
    }

    toggle();

    gui.update();

    return true;
}