diff --git a/src/main/java/net/pietru/cookie_utils/mixins/BlockPlaceMixin.java b/src/main/java/net/pietru/cookie_utils/mixins/BlockPlaceMixin.java index 8702c7f..67c058c 100644 --- a/src/main/java/net/pietru/cookie_utils/mixins/BlockPlaceMixin.java +++ b/src/main/java/net/pietru/cookie_utils/mixins/BlockPlaceMixin.java @@ -4,6 +4,7 @@ import com.llamalad7.mixinextras.sugar.Local; import finalforeach.cosmicreach.accounts.Account; import finalforeach.cosmicreach.blocks.BlockPosition; import finalforeach.cosmicreach.blocks.BlockState; +import finalforeach.cosmicreach.blocks.BlockStateMissing; import finalforeach.cosmicreach.networking.NetworkIdentity; import finalforeach.cosmicreach.networking.NetworkSide; import finalforeach.cosmicreach.networking.packets.MessagePacket; @@ -33,6 +34,10 @@ public class BlockPlaceMixin { @Inject(method = "handle", at = @At("HEAD"), cancellable = true) private void event_block_place(CallbackInfo ci, @Local NetworkIdentity identity, @Local ChannelHandlerContext ctx){ if (identity.getSide() != NetworkSide.CLIENT) { + if (targetBlockState instanceof BlockStateMissing) + ci.cancel(); + } + if (identity.getSide() != NetworkSide.CLIENT && ci.isCancelled()) { Account account = ServerSingletons.getAccount(identity); if (!Permissions.has_user_special_perm(account.getUniqueId()) && !can_edit_block(blockPos,"place",account.getUniqueId())) { ci.cancel();