geforkt von Mirrors/Paper
Add PlayerBookEditEvent. Adds BUKKIT-1995
Event related to book & quill and written book items. By: Des Herriott <des.herriott@gmail.com>
Dieser Commit ist enthalten in:
Ursprung
1839404cbf
Commit
0f08f915ec
125
paper-api/src/main/java/org/bukkit/event/player/PlayerEditBookEvent.java
Normale Datei
125
paper-api/src/main/java/org/bukkit/event/player/PlayerEditBookEvent.java
Normale Datei
@ -0,0 +1,125 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the book meta currently on the book.
|
||||||
|
* <p>
|
||||||
|
* 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.
|
||||||
|
* <p>
|
||||||
|
* 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the inventory slot number for the book item that triggered this
|
||||||
|
* event.
|
||||||
|
* <p>
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the book meta that will actually be added to the book.
|
||||||
|
*
|
||||||
|
* @param bookMeta 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 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 static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren