mirror of
https://github.com/Minestom/Minestom.git
synced 2024-12-26 19:18:12 +01:00
Added PlayerBlockPlaceEvent#setBlockData
This commit is contained in:
parent
349364e15d
commit
7c5bb7126a
@ -1,6 +1,7 @@
|
||||
package net.minestom.server.event.player;
|
||||
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.data.Data;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.event.CancellableEvent;
|
||||
import net.minestom.server.event.PlayerEvent;
|
||||
@ -8,7 +9,9 @@ import net.minestom.server.instance.block.Block;
|
||||
import net.minestom.server.instance.block.BlockManager;
|
||||
import net.minestom.server.instance.block.CustomBlock;
|
||||
import net.minestom.server.utils.BlockPosition;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Called when a player tries placing a block.
|
||||
@ -19,6 +22,7 @@ public class PlayerBlockPlaceEvent extends PlayerEvent implements CancellableEve
|
||||
|
||||
private short blockStateId;
|
||||
private short customBlockId;
|
||||
private Data blockData;
|
||||
private final BlockPosition blockPosition;
|
||||
private final Player.Hand hand;
|
||||
|
||||
@ -52,6 +56,7 @@ public class PlayerBlockPlaceEvent extends PlayerEvent implements CancellableEve
|
||||
*/
|
||||
public void setCustomBlock(short customBlockId) {
|
||||
final CustomBlock customBlock = BLOCK_MANAGER.getCustomBlock(customBlockId);
|
||||
Check.notNull(customBlock, "The custom block with the id '" + customBlockId + "' does not exist");
|
||||
setCustomBlock(customBlock);
|
||||
}
|
||||
|
||||
@ -62,6 +67,7 @@ public class PlayerBlockPlaceEvent extends PlayerEvent implements CancellableEve
|
||||
*/
|
||||
public void setCustomBlock(@NotNull String customBlockId) {
|
||||
final CustomBlock customBlock = BLOCK_MANAGER.getCustomBlock(customBlockId);
|
||||
Check.notNull(customBlock, "The custom block with the identifier '" + customBlockId + "' does not exist");
|
||||
setCustomBlock(customBlock);
|
||||
}
|
||||
|
||||
@ -104,6 +110,25 @@ public class PlayerBlockPlaceEvent extends PlayerEvent implements CancellableEve
|
||||
this.blockStateId = blockStateId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data that the (not placed yet) block should have
|
||||
*
|
||||
* @return the block data, null if not any
|
||||
*/
|
||||
@Nullable
|
||||
public Data getBlockData() {
|
||||
return blockData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data of the block to place.
|
||||
*
|
||||
* @param blockData the block data, null if not any
|
||||
*/
|
||||
public void setBlockData(@Nullable Data blockData) {
|
||||
this.blockData = blockData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the block position.
|
||||
*
|
||||
|
@ -133,11 +133,9 @@ public class BlockPlacementListener {
|
||||
|
||||
// Place the block
|
||||
final short customBlockId = playerBlockPlaceEvent.getCustomBlockId();
|
||||
if (customBlockId != 0) {
|
||||
instance.setSeparateBlocks(blockPosition, blockStateId, customBlockId);
|
||||
} else {
|
||||
instance.setBlockStateId(blockPosition, blockStateId);
|
||||
}
|
||||
final Data blockData = playerBlockPlaceEvent.getBlockData(); // Possibly null
|
||||
instance.setSeparateBlocks(blockPosition.getX(), blockPosition.getY(), blockPosition.getZ(),
|
||||
blockStateId, customBlockId, blockData);
|
||||
|
||||
// Block consuming
|
||||
if (playerBlockPlaceEvent.doesConsumeBlock()) {
|
||||
|
Loading…
Reference in New Issue
Block a user