Differentiate passthrough / abstract delegate

AbstractDelegateExtent allows overriding just the basic set/get to change behavior - at performance cost

Passthrough passes all operation, so each must be individually overrided.
This commit is contained in:
Jesse Boyd
2019-08-07 06:38:25 +10:00
parent 322a3e66be
commit 3c626ef25a
11 changed files with 338 additions and 33 deletions

View File

@ -59,6 +59,7 @@ import com.sk89q.worldedit.extent.AbstractDelegateExtent;
import com.sk89q.worldedit.extent.ChangeSetExtent;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.extent.MaskingExtent;
import com.sk89q.worldedit.extent.PassthroughExtent;
import com.sk89q.worldedit.extent.inventory.BlockBag;
import com.sk89q.worldedit.extent.inventory.BlockBagExtent;
import com.sk89q.worldedit.extent.world.SurvivalModeExtent;
@ -163,7 +164,7 @@ import org.slf4j.LoggerFactory;
* using the {@link ChangeSetExtent}.</p>
*/
@SuppressWarnings({"FieldCanBeLocal"})
public class EditSession extends AbstractDelegateExtent implements SimpleWorld, AutoCloseable {
public class EditSession extends PassthroughExtent implements SimpleWorld, AutoCloseable {
private static final Logger log = LoggerFactory.getLogger(EditSession.class);