All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.event.player.PlayerEditBookEvent Maven / Gradle / Ivy

There is a newer version: 2.4.0
Show newest version
package org.bukkit.event.player;

import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.meta.BookMeta;

/**
 * Called when a player edits or signs a book and quill item. If the event is
 * cancelled, no changes are made to the BookMeta
 */
public class PlayerEditBookEvent extends PlayerEvent implements Cancellable {
  private static final HandlerList handlers = new HandlerList();

  private final BookMeta previousBookMeta;
  private final int slot;
  private BookMeta newBookMeta;
  private boolean isSigning;
  private boolean cancel;

  public PlayerEditBookEvent(Player who, int slot, BookMeta previousBookMeta, BookMeta newBookMeta, boolean isSigning) {
    super(who);

    Validate.isTrue(slot >= 0 && slot <= 8, "Slot must be in range 0-8 inclusive");
    Validate.notNull(previousBookMeta, "Previous book meta must not be null");
    Validate.notNull(newBookMeta, "New book meta must not be null");

    Bukkit.getItemFactory().equals(previousBookMeta, newBookMeta);

    this.previousBookMeta = previousBookMeta;
    this.newBookMeta = newBookMeta;
    this.slot = slot;
    this.isSigning = isSigning;
    this.cancel = false;
  }

  public static HandlerList getHandlerList() {
    return handlers;
  }

  /**
   * Gets the book meta currently on the book.
   * 

* Note: this is a copy of the book meta. You cannot use this object to * change the existing book meta. * * @return the book meta currently on the book */ public BookMeta getPreviousBookMeta() { return previousBookMeta.clone(); } /** * Gets the book meta that the player is attempting to add to the book. *

* Note: this is a copy of the proposed new book meta. Use {@link * #setNewBookMeta(BookMeta)} to change what will actually be added to the * book. * * @return the book meta that the player is attempting to add */ public BookMeta getNewBookMeta() { return newBookMeta.clone(); } /** * Sets the book meta that will actually be added to the book. * * @param newBookMeta new book meta * @throws IllegalArgumentException if the new book meta is null */ public void setNewBookMeta(BookMeta newBookMeta) throws IllegalArgumentException { Validate.notNull(newBookMeta, "New book meta must not be null"); Bukkit.getItemFactory().equals(newBookMeta, null); this.newBookMeta = newBookMeta.clone(); } /** * Gets the inventory slot number for the book item that triggered this * event. *

* This is a slot number on the player's hotbar in the range 0-8. * * @return the inventory slot number that the book item occupies */ public int getSlot() { return slot; } /** * Gets whether or not the book is being signed. If a book is signed the * Material changes from BOOK_AND_QUILL to WRITTEN_BOOK. * * @return true if the book is being signed */ public boolean isSigning() { return isSigning; } /** * Sets whether or not the book is being signed. If a book is signed the * Material changes from BOOK_AND_QUILL to WRITTEN_BOOK. * * @param signing whether or not the book is being signed. */ public void setSigning(boolean signing) { isSigning = signing; } @Override public HandlerList getHandlers() { return handlers; } public boolean isCancelled() { return cancel; } public void setCancelled(boolean cancel) { this.cancel = cancel; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy