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(); 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...")); player.sendMessage(Component.text("Setting blocks..."));
return Command.SINGLE_SUCCESS; return Command.SINGLE_SUCCESS;
@@ -308,7 +308,7 @@ public class BlockEditCommands {
Selection selection = bePlayer.getSelection(); 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...")); player.sendMessage(Component.text("Replacing blocks..."));
return Command.SINGLE_SUCCESS; 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. * Pastes blocks from a map of vectors and block states. Caution! Vectors must be floored to align with block locations.
* @param blockStateMap * @param blockStateMap
*/ */
@SuppressWarnings("UnstableApiUsage")
public record PasteOperation(Map<Vector, BlockState> blockStateMap) implements BlockEditOperation { public record PasteOperation(Map<Vector, BlockState> blockStateMap) implements BlockEditOperation {
@Override @Override
public void transformBlock(Block block) { public void transformBlock(Block block) {
if (!blockStateMap.containsKey(block.getLocation().toVector())) return; 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 me.youhavetrouble.blockedit.api.BlockEditOperation;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData; 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 @Override
public void transformBlock(Block block) { public void transformBlock(Block block) {
if (!block.getBlockData().matches(blockToReplace)) return; 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 me.youhavetrouble.blockedit.api.BlockEditOperation;
import org.bukkit.block.Block; 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 @Override
public void transformBlock(Block block) { public void transformBlock(Block block) {
block.setBlockData(blockData); BlockState newState = blockToSet.copy(block.getLocation());
newState.update(true, false);
} }
} }