mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Stored Bee API
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
--- a/src/main/java/org/bukkit/block/EntityBlockStorage.java
|
||||
+++ b/src/main/java/org/bukkit/block/EntityBlockStorage.java
|
||||
@@ -47,6 +_,25 @@
|
||||
@NotNull
|
||||
List<T> releaseEntities();
|
||||
|
||||
+ // Purpur start - Stored Bee API
|
||||
+ /**
|
||||
+ * Releases a stored entity, and returns the entity in the world.
|
||||
+ *
|
||||
+ * @param entity Entity to release
|
||||
+ * @return The entity which was released, or null if the stored entity is not in the hive
|
||||
+ */
|
||||
+ @org.jetbrains.annotations.Nullable
|
||||
+ T releaseEntity(@NotNull org.purpurmc.purpur.entity.StoredEntity<T> entity);
|
||||
+
|
||||
+ /**
|
||||
+ * Gets all the entities currently stored in the block.
|
||||
+ *
|
||||
+ * @return List of all entities which are stored in the block
|
||||
+ */
|
||||
+ @NotNull
|
||||
+ List<org.purpurmc.purpur.entity.StoredEntity<T>> getEntities();
|
||||
+ // Purpur end - Stored Bee API
|
||||
+
|
||||
/**
|
||||
* Add an entity to the block.
|
||||
*
|
||||
@@ -0,0 +1,52 @@
|
||||
package org.purpurmc.purpur.entity;
|
||||
|
||||
import org.bukkit.Nameable;
|
||||
import org.bukkit.block.EntityBlockStorage;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.persistence.PersistentDataHolder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Represents an entity stored in a block
|
||||
*
|
||||
* @see org.bukkit.block.EntityBlockStorage
|
||||
*/
|
||||
public interface StoredEntity<T extends Entity> extends PersistentDataHolder, Nameable {
|
||||
/**
|
||||
* Checks if this entity has been released yet
|
||||
*
|
||||
* @return if this entity has been released
|
||||
*/
|
||||
boolean hasBeenReleased();
|
||||
|
||||
/**
|
||||
* Releases the entity from its stored block
|
||||
*
|
||||
* @return the released entity, or null if unsuccessful (including if this entity has already been released)
|
||||
*/
|
||||
@Nullable
|
||||
T release();
|
||||
|
||||
/**
|
||||
* Returns the block in which this entity is stored
|
||||
*
|
||||
* @return the EntityBlockStorage in which this entity is stored, or null if it has been released
|
||||
*/
|
||||
@Nullable
|
||||
EntityBlockStorage<T> getBlockStorage();
|
||||
|
||||
/**
|
||||
* Gets the entity type of this stored entity
|
||||
*
|
||||
* @return the type of entity this stored entity represents
|
||||
*/
|
||||
@NotNull
|
||||
EntityType getType();
|
||||
|
||||
/**
|
||||
* Writes data to the block entity snapshot. {@link EntityBlockStorage#update()} must be run in order to update the block in game.
|
||||
*/
|
||||
void update();
|
||||
}
|
||||
Reference in New Issue
Block a user