|
21 | 21 | import net.minecraft.world.item.ItemStack; |
22 | 22 | import net.minecraft.world.item.Items; |
23 | 23 | import net.minecraft.world.level.Level; |
24 | | -import net.minecraft.world.level.block.Block; |
25 | 24 | import net.minecraft.world.level.block.state.BlockState; |
26 | 25 | import net.minecraft.world.phys.AABB; |
27 | 26 | import net.minecraft.world.phys.BlockHitResult; |
@@ -109,31 +108,30 @@ public static boolean isTEAllowed(BlockState state) { |
109 | 108 | } |
110 | 109 |
|
111 | 110 | public static boolean placeBlock(Level level, Player player, BlockState block, BlockPos pos, @Nullable BlockItem item) { |
112 | | - if (!level.setBlockAndUpdate(pos, block)) { |
113 | | - ConstructionStick.LOGGER.info("Block could not be placed"); |
114 | | - return false; |
115 | | - } |
116 | | - |
117 | 111 | // Remove block if placeEvent is canceled |
118 | 112 | BlockSnapshot snapshot = BlockSnapshot.create(level.dimension(), level, pos); |
119 | 113 | BlockEvent.EntityPlaceEvent placeEvent = new BlockEvent.EntityPlaceEvent(snapshot, block, player); |
120 | 114 | NeoForge.EVENT_BUS.post(placeEvent); |
121 | 115 | if (placeEvent.isCanceled()) { |
122 | | - level.removeBlock(pos, false); |
123 | 116 | return false; |
124 | | - } |
| 117 | + } else { |
| 118 | + if (!level.setBlockAndUpdate(pos, block)) { |
| 119 | + ConstructionStick.LOGGER.info("Block could not be placed"); |
| 120 | + return false; |
| 121 | + } |
125 | 122 |
|
126 | | - ItemStack stack; |
127 | | - if (item == null) stack = new ItemStack(block.getBlock().asItem()); |
128 | | - else { |
129 | | - stack = new ItemStack(item); |
130 | | - player.awardStat(Stats.ITEM_USED.get(item)); |
131 | | - } |
| 123 | + ItemStack stack; |
| 124 | + if (item == null) stack = new ItemStack(block.getBlock().asItem()); |
| 125 | + else { |
| 126 | + stack = new ItemStack(item); |
| 127 | + player.awardStat(Stats.ITEM_USED.get(item)); |
| 128 | + } |
132 | 129 |
|
133 | | - // Call OnBlockPlaced method |
134 | | - block.getBlock().setPlacedBy(level, pos, block, player, stack); |
| 130 | + // Call OnBlockPlaced method |
| 131 | + block.getBlock().setPlacedBy(level, pos, block, player, stack); |
135 | 132 |
|
136 | | - return true; |
| 133 | + return true; |
| 134 | + } |
137 | 135 | } |
138 | 136 |
|
139 | 137 | public static boolean removeBlock(Level level, Player player, @Nullable BlockState block, BlockPos pos) { |
|
0 commit comments