mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-14 19:55:52 -07:00
SPIGOT-2706: Implement support for Lock NBT Tag
Containers may now implement the Lockable interface. By: Senmori <thesenmori@gmail.com>
This commit is contained in:
@@ -9,7 +9,7 @@ import org.bukkit.potion.PotionEffectType;
|
|||||||
/**
|
/**
|
||||||
* Represents a beacon.
|
* Represents a beacon.
|
||||||
*/
|
*/
|
||||||
public interface Beacon extends BlockState, InventoryHolder {
|
public interface Beacon extends BlockState, InventoryHolder, Lockable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the list of players within the beacon's range of effect.
|
* Returns the list of players within the beacon's range of effect.
|
||||||
|
@@ -6,7 +6,7 @@ import org.bukkit.inventory.InventoryHolder;
|
|||||||
/**
|
/**
|
||||||
* Represents a brewing stand.
|
* Represents a brewing stand.
|
||||||
*/
|
*/
|
||||||
public interface BrewingStand extends BlockState, InventoryHolder {
|
public interface BrewingStand extends BlockState, InventoryHolder, Lockable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* How much time is left in the brewing cycle
|
* How much time is left in the brewing cycle
|
||||||
|
@@ -6,7 +6,7 @@ import org.bukkit.inventory.InventoryHolder;
|
|||||||
/**
|
/**
|
||||||
* Represents a chest.
|
* Represents a chest.
|
||||||
*/
|
*/
|
||||||
public interface Chest extends BlockState, InventoryHolder {
|
public interface Chest extends BlockState, InventoryHolder, Lockable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the chest's inventory. If this is a double chest, it returns
|
* Returns the chest's inventory. If this is a double chest, it returns
|
||||||
|
@@ -6,7 +6,7 @@ import org.bukkit.projectiles.BlockProjectileSource;
|
|||||||
/**
|
/**
|
||||||
* Represents a dispenser.
|
* Represents a dispenser.
|
||||||
*/
|
*/
|
||||||
public interface Dispenser extends BlockState, InventoryHolder {
|
public interface Dispenser extends BlockState, InventoryHolder, Lockable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the BlockProjectileSource object for this dispenser.
|
* Gets the BlockProjectileSource object for this dispenser.
|
||||||
|
@@ -5,7 +5,7 @@ import org.bukkit.inventory.InventoryHolder;
|
|||||||
/**
|
/**
|
||||||
* Represents a dropper.
|
* Represents a dropper.
|
||||||
*/
|
*/
|
||||||
public interface Dropper extends BlockState, InventoryHolder {
|
public interface Dropper extends BlockState, InventoryHolder, Lockable {
|
||||||
/**
|
/**
|
||||||
* Tries to drop a randomly selected item from the Dropper's inventory,
|
* Tries to drop a randomly selected item from the Dropper's inventory,
|
||||||
* following the normal behavior of a Dropper.
|
* following the normal behavior of a Dropper.
|
||||||
|
@@ -6,7 +6,7 @@ import org.bukkit.inventory.InventoryHolder;
|
|||||||
/**
|
/**
|
||||||
* Represents a furnace.
|
* Represents a furnace.
|
||||||
*/
|
*/
|
||||||
public interface Furnace extends BlockState, InventoryHolder {
|
public interface Furnace extends BlockState, InventoryHolder, Lockable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get burn time.
|
* Get burn time.
|
||||||
|
@@ -5,6 +5,6 @@ import org.bukkit.inventory.InventoryHolder;
|
|||||||
/**
|
/**
|
||||||
* Represents a hopper.
|
* Represents a hopper.
|
||||||
*/
|
*/
|
||||||
public interface Hopper extends BlockState, InventoryHolder {
|
public interface Hopper extends BlockState, InventoryHolder, Lockable {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
31
paper-api/src/main/java/org/bukkit/block/Lockable.java
Normal file
31
paper-api/src/main/java/org/bukkit/block/Lockable.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package org.bukkit.block;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a block (usually a container) that may be locked. When a lock is
|
||||||
|
* active an item with a name corresponding to the key will be required to open
|
||||||
|
* this block.
|
||||||
|
*/
|
||||||
|
public interface Lockable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the container has a valid (non empty) key.
|
||||||
|
*
|
||||||
|
* @return true if the key is valid.
|
||||||
|
*/
|
||||||
|
boolean isLocked();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the key needed to access the container.
|
||||||
|
*
|
||||||
|
* @return the key needed.
|
||||||
|
*/
|
||||||
|
String getLock();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the key required to access this container. Set to null (or empty
|
||||||
|
* string) to remove key.
|
||||||
|
*
|
||||||
|
* @param key the key required to access the container.
|
||||||
|
*/
|
||||||
|
void setLock(String key);
|
||||||
|
}
|
Reference in New Issue
Block a user