mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
Expand FallingBlock API
- add auto expire setting - add setter for block data - add accessors for block state Co-authored-by: Lukas Planz <lukas.planz@web.de>
This commit is contained in:
parent
b4044a82ea
commit
f1be44f667
2 changed files with 51 additions and 1 deletions
|
@ -2281,8 +2281,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
|||
* @return The spawned {@link FallingBlock} instance
|
||||
* @throws IllegalArgumentException if {@link Location} or {@link
|
||||
* MaterialData} are null or {@link Material} of the {@link MaterialData} is not a block
|
||||
* @deprecated Use {@link #spawn(Location, Class, Consumer)} (or a variation thereof) in combination with {@link FallingBlock#setBlockData(BlockData)}
|
||||
*/
|
||||
@NotNull
|
||||
@Deprecated(since = "1.20.2") // Paper
|
||||
public FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull MaterialData data) throws IllegalArgumentException;
|
||||
|
||||
/**
|
||||
|
@ -2295,8 +2297,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
|||
* @return The spawned {@link FallingBlock} instance
|
||||
* @throws IllegalArgumentException if {@link Location} or {@link
|
||||
* BlockData} are null
|
||||
* @deprecated Use {@link #spawn(Location, Class, Consumer)} (or a variation thereof) in combination with {@link FallingBlock#setBlockData(BlockData)}
|
||||
*/
|
||||
@NotNull
|
||||
@org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.2") // Paper
|
||||
public FallingBlock spawnFallingBlock(@NotNull Location location, @NotNull BlockData data) throws IllegalArgumentException;
|
||||
|
||||
/**
|
||||
|
@ -2313,7 +2317,7 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
|||
* @return The spawned {@link FallingBlock} instance
|
||||
* @throws IllegalArgumentException if {@link Location} or {@link
|
||||
* Material} are null or {@link Material} is not a block
|
||||
* @deprecated Magic value
|
||||
* @deprecated Magic value. Use {@link #spawn(Location, Class, Consumer)} (or a variation thereof) in combination with {@link FallingBlock#setBlockData(BlockData)}
|
||||
*/
|
||||
@Deprecated(since = "1.7.5")
|
||||
@NotNull
|
||||
|
|
|
@ -26,6 +26,33 @@ public interface FallingBlock extends Entity {
|
|||
*/
|
||||
@NotNull
|
||||
BlockData getBlockData();
|
||||
// Paper start
|
||||
/**
|
||||
* Sets the data for the falling block.
|
||||
* <br>
|
||||
* Any potential additional data currently stored in the falling blocks {@link #getBlockState()} will be
|
||||
* purged by calling this setter.
|
||||
*
|
||||
* @param blockData the data to use as the block
|
||||
*/
|
||||
void setBlockData(@NotNull BlockData blockData);
|
||||
|
||||
/**
|
||||
* Get the data of the falling block represented as a {@link org.bukkit.block.BlockState BlockState}
|
||||
* which includes potential NBT data that gets applied when the block gets placed on landing.
|
||||
*
|
||||
* @return the BlockState representing this block
|
||||
*/
|
||||
@NotNull
|
||||
org.bukkit.block.BlockState getBlockState();
|
||||
|
||||
/**
|
||||
* Sets the {@link BlockData} and possibly present tile entity data for the falling block.
|
||||
*
|
||||
* @param blockState the BlockState to use
|
||||
*/
|
||||
void setBlockState(@NotNull org.bukkit.block.BlockState blockState);
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* Get if the falling block will break into an item if it cannot be placed.
|
||||
|
@ -137,4 +164,23 @@ public interface FallingBlock extends Entity {
|
|||
default org.bukkit.Location getSourceLoc() {
|
||||
return this.getOrigin();
|
||||
}
|
||||
// Paper start - Auto expire setting
|
||||
/**
|
||||
* Sets if this falling block should expire after:
|
||||
* - 30 seconds
|
||||
* - 5 seconds and is outside of the world
|
||||
*
|
||||
* @return if this behavior occurs
|
||||
*/
|
||||
boolean doesAutoExpire();
|
||||
|
||||
/**
|
||||
* Sets if this falling block should expire after:
|
||||
* - 30 seconds
|
||||
* - 5 seconds and is outside of the world
|
||||
*
|
||||
* @param autoExpires if this behavior should occur
|
||||
*/
|
||||
void shouldAutoExpire(boolean autoExpires);
|
||||
// Paper end - Auto expire setting
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue