migrate from using block data to block state

This commit is contained in:
2024-12-01 18:04:30 +01:00
parent 50d1d83612
commit f217d4a191
4 changed files with 16 additions and 8 deletions
@@ -277,7 +277,7 @@ public class BlockEditCommands {
Selection selection = bePlayer.getSelection();
BlockEditAPI.runOperation(selection, 1, new SetOperation(blockState.getBlockData()));
BlockEditAPI.runOperation(selection, 1, new SetOperation(blockState));
player.sendMessage(Component.text("Setting blocks..."));
return Command.SINGLE_SUCCESS;
@@ -308,7 +308,7 @@ public class BlockEditCommands {
Selection selection = bePlayer.getSelection();
BlockEditAPI.runOperation(selection, 1, new ReplaceOperation(toReplace.getBlockData(), replaceWith.getBlockData()));
BlockEditAPI.runOperation(selection, 1, new ReplaceOperation(toReplace.getBlockData(), replaceWith));
player.sendMessage(Component.text("Replacing blocks..."));
return Command.SINGLE_SUCCESS;
@@ -11,11 +11,14 @@ import java.util.Map;
* Pastes blocks from a map of vectors and block states. Caution! Vectors must be floored to align with block locations.
* @param blockStateMap
*/
@SuppressWarnings("UnstableApiUsage")
public record PasteOperation(Map<Vector, BlockState> blockStateMap) implements BlockEditOperation {
@Override
public void transformBlock(Block block) {
if (!blockStateMap.containsKey(block.getLocation().toVector())) return;
block.setBlockData(blockStateMap.get(block.getLocation().toVector()).getBlockData());
BlockState blockState = blockStateMap.get(block.getLocation().toVector());
BlockState newState = blockState.copy(block.getLocation());
newState.update(true, false);
}
}
@@ -2,13 +2,16 @@ package me.youhavetrouble.blockedit.operations;
import me.youhavetrouble.blockedit.api.BlockEditOperation;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData;
public record ReplaceOperation(BlockData blockToReplace, BlockData blockToSet) implements BlockEditOperation {
@SuppressWarnings("UnstableApiUsage")
public record ReplaceOperation(BlockData blockToReplace, BlockState blockToSet) implements BlockEditOperation {
@Override
public void transformBlock(Block block) {
if (!block.getBlockData().matches(blockToReplace)) return;
block.setBlockData(blockToSet);
BlockState newState = blockToSet.copy(block.getLocation());
newState.update(true, false);
}
}
@@ -2,12 +2,14 @@ package me.youhavetrouble.blockedit.operations;
import me.youhavetrouble.blockedit.api.BlockEditOperation;
import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.BlockState;
public record SetOperation(BlockData blockData) implements BlockEditOperation {
@SuppressWarnings("UnstableApiUsage")
public record SetOperation(BlockState blockToSet) implements BlockEditOperation {
@Override
public void transformBlock(Block block) {
block.setBlockData(blockData);
BlockState newState = blockToSet.copy(block.getLocation());
newState.update(true, false);
}
}