diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditListener.java b/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditListener.java index b490151e7..fbb335543 100644 --- a/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditListener.java +++ b/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditListener.java @@ -21,6 +21,12 @@ package com.sk89q.worldedit.bukkit; +import com.sk89q.util.StringUtil; +import com.sk89q.worldedit.LocalPlayer; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.WorldVector; +import com.sk89q.worldedit.internal.LocalWorldAdapter; +import com.sk89q.worldedit.world.World; import org.bukkit.Bukkit; import org.bukkit.block.Block; import org.bukkit.event.Event.Result; @@ -33,12 +39,6 @@ import org.bukkit.event.player.PlayerGameModeChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; -import com.sk89q.util.StringUtil; -import com.sk89q.worldedit.LocalPlayer; -import com.sk89q.worldedit.LocalWorld; -import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.WorldVector; - /** * Handles all events thrown in relation to a Player */ @@ -119,14 +119,13 @@ public class WorldEditListener implements Listener { } final LocalPlayer player = plugin.wrapPlayer(event.getPlayer()); - final LocalWorld world = player.getWorld(); + final World world = player.getWorld(); final WorldEdit we = plugin.getWorldEdit(); Action action = event.getAction(); if (action == Action.LEFT_CLICK_BLOCK) { final Block clickedBlock = event.getClickedBlock(); - final WorldVector pos = new WorldVector(world, clickedBlock.getX(), - clickedBlock.getY(), clickedBlock.getZ()); + final WorldVector pos = new WorldVector(LocalWorldAdapter.wrap(world), clickedBlock.getX(), clickedBlock.getY(), clickedBlock.getZ()); if (we.handleBlockLeftClick(player, pos)) { event.setCancelled(true); @@ -160,7 +159,7 @@ public class WorldEditListener implements Listener { } else if (action == Action.RIGHT_CLICK_BLOCK) { final Block clickedBlock = event.getClickedBlock(); - final WorldVector pos = new WorldVector(world, clickedBlock.getX(), + final WorldVector pos = new WorldVector(LocalWorldAdapter.wrap(world), clickedBlock.getX(), clickedBlock.getY(), clickedBlock.getZ()); if (we.handleBlockRightClick(player, pos)) { diff --git a/src/main/java/com/sk89q/worldedit/EditSession.java b/src/main/java/com/sk89q/worldedit/EditSession.java index a10f50055..c611465a6 100644 --- a/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/src/main/java/com/sk89q/worldedit/EditSession.java @@ -70,6 +70,7 @@ import com.sk89q.worldedit.util.Countable; import com.sk89q.worldedit.util.TreeGenerator; import com.sk89q.worldedit.util.collection.DoubleArrayList; import com.sk89q.worldedit.util.eventbus.EventBus; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.util.*; @@ -100,7 +101,7 @@ public class EditSession implements Extent { } @SuppressWarnings("ProtectedField") - protected final LocalWorld world; + protected final World world; private final ChangeSet changeSet = new BlockOptimizedHistory(); private final FastModeExtent fastModeExtent; @@ -147,7 +148,7 @@ public class EditSession implements Extent { * @param blockBag an optional {@link BlockBag} to use, otherwise null * @param event the event to call with the extent */ - EditSession(EventBus eventBus, LocalWorld world, int maxBlocks, @Nullable BlockBag blockBag, EditSessionEvent event) { + EditSession(EventBus eventBus, World world, int maxBlocks, @Nullable BlockBag blockBag, EditSessionEvent event) { checkNotNull(eventBus); checkNotNull(world); checkArgument(maxBlocks >= -1, "maxBlocks >= -1 required"); @@ -164,7 +165,7 @@ public class EditSession implements Extent { extent = wrapExtent(extent, eventBus, event, Stage.BEFORE_CHANGE); extent = quirkExtent = new BlockQuirkExtent(extent, world); extent = validator = new DataValidatorExtent(extent, world); - extent = blockBagExtent = new BlockBagExtent(extent, world, blockBag); + extent = blockBagExtent = new BlockBagExtent(extent, blockBag); // This extent can be skipped by calling rawSetBlock() extent = reorderExtent = new MultiStageReorder(extent, false); @@ -193,7 +194,7 @@ public class EditSession implements Extent { * * @return the world */ - public LocalWorld getWorld() { + public World getWorld() { return world; } diff --git a/src/main/java/com/sk89q/worldedit/EditSessionFactory.java b/src/main/java/com/sk89q/worldedit/EditSessionFactory.java index 8ce7ed09e..e16da791f 100644 --- a/src/main/java/com/sk89q/worldedit/EditSessionFactory.java +++ b/src/main/java/com/sk89q/worldedit/EditSessionFactory.java @@ -22,6 +22,7 @@ package com.sk89q.worldedit; import com.sk89q.worldedit.event.extent.EditSessionEvent; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.util.eventbus.EventBus; +import com.sk89q.worldedit.world.World; import static com.google.common.base.Preconditions.checkNotNull; @@ -35,16 +36,26 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class EditSessionFactory { - /** - * Construct an edit session with a maximum number of blocks. - * - * @param world the world - * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit - */ + @Deprecated public EditSession getEditSession(LocalWorld world, int maxBlocks) { + return getEditSession((World) world, maxBlocks); + } + + /** + * Construct an edit session with a maximum number of blocks. + * + * @param world the world + * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit + */ + public EditSession getEditSession(World world, int maxBlocks) { throw new IllegalArgumentException("This class is being removed"); } + @Deprecated + public EditSession getEditSession(LocalWorld world, int maxBlocks, LocalPlayer player) { + return getEditSession((World) world, maxBlocks, player); + } + /** * Construct an edit session with a maximum number of blocks. * @@ -52,10 +63,15 @@ public class EditSessionFactory { * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit * @param player the player that the {@link EditSession} is for */ - public EditSession getEditSession(LocalWorld world, int maxBlocks, LocalPlayer player) { + public EditSession getEditSession(World world, int maxBlocks, LocalPlayer player) { throw new IllegalArgumentException("This class is being removed"); } + @Deprecated + public EditSession getEditSession(LocalWorld world, int maxBlocks, BlockBag blockBag) { + return getEditSession((World) world, maxBlocks, blockBag); + } + /** * Construct an edit session with a maximum number of blocks and a block bag. * @@ -63,10 +79,15 @@ public class EditSessionFactory { * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit * @param blockBag an optional {@link BlockBag} to use, otherwise null */ - public EditSession getEditSession(LocalWorld world, int maxBlocks, BlockBag blockBag) { + public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag) { throw new IllegalArgumentException("This class is being removed"); } + @Deprecated + public EditSession getEditSession(LocalWorld world, int maxBlocks, BlockBag blockBag, LocalPlayer player) { + return getEditSession((World) world, maxBlocks, blockBag, player); + } + /** * Construct an edit session with a maximum number of blocks and a block bag. * @@ -75,7 +96,7 @@ public class EditSessionFactory { * @param blockBag an optional {@link BlockBag} to use, otherwise null * @param player the player that the {@link EditSession} is for */ - public EditSession getEditSession(LocalWorld world, int maxBlocks, BlockBag blockBag, LocalPlayer player) { + public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag, LocalPlayer player) { throw new IllegalArgumentException("This class is being removed"); } @@ -97,22 +118,22 @@ public class EditSessionFactory { } @Override - public EditSession getEditSession(LocalWorld world, int maxBlocks) { + public EditSession getEditSession(World world, int maxBlocks) { return new EditSession(eventBus, world, maxBlocks, null, new EditSessionEvent(world, null, maxBlocks, null)); } @Override - public EditSession getEditSession(LocalWorld world, int maxBlocks, LocalPlayer player) { + public EditSession getEditSession(World world, int maxBlocks, LocalPlayer player) { return new EditSession(eventBus, world, maxBlocks, null, new EditSessionEvent(world, player, maxBlocks, null)); } @Override - public EditSession getEditSession(LocalWorld world, int maxBlocks, BlockBag blockBag) { + public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag) { return new EditSession(eventBus, world, maxBlocks, blockBag, new EditSessionEvent(world, null, maxBlocks, null)); } @Override - public EditSession getEditSession(LocalWorld world, int maxBlocks, BlockBag blockBag, LocalPlayer player) { + public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag, LocalPlayer player) { return new EditSession(eventBus, world, maxBlocks, blockBag, new EditSessionEvent(world, player, maxBlocks, null)); } diff --git a/src/main/java/com/sk89q/worldedit/LocalSession.java b/src/main/java/com/sk89q/worldedit/LocalSession.java index 59259038b..6470e50d3 100644 --- a/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -27,6 +27,7 @@ import com.sk89q.worldedit.command.tool.BlockTool; import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.command.tool.SinglePickaxe; import com.sk89q.worldedit.command.tool.Tool; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.internal.cui.CUIRegion; @@ -36,6 +37,7 @@ import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.session.request.Request; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.snapshot.Snapshot; import java.util.*; @@ -175,6 +177,11 @@ public class LocalSession { return null; } + @Deprecated + public RegionSelector getRegionSelector(LocalWorld world) { + return getRegionSelector((World) world); + } + /** * Get the region selector for defining the selection. If the selection * was defined for a different world, the old selection will be discarded. @@ -182,7 +189,7 @@ public class LocalSession { * @param world * @return position */ - public RegionSelector getRegionSelector(LocalWorld world) { + public RegionSelector getRegionSelector(World world) { if (selector.getIncompleteRegion().getWorld() == null) { selector = new CuboidRegionSelector(world); } else if (!selector.getIncompleteRegion().getWorld().equals(world)) { @@ -203,13 +210,18 @@ public class LocalSession { return selector; } + @Deprecated + public void setRegionSelector(LocalWorld world, RegionSelector selector) { + setRegionSelector((World) world, selector); + } + /** * Set the region selector. * * @param world * @param selector */ - public void setRegionSelector(LocalWorld world, RegionSelector selector) { + public void setRegionSelector(World world, RegionSelector selector) { selector.getIncompleteRegion().setWorld(world); this.selector = selector; } @@ -224,13 +236,18 @@ public class LocalSession { return selector.isDefined(); } + @Deprecated + public boolean isSelectionDefined(LocalWorld world) { + return isSelectionDefined((World) world); + } + /** * Returns true if the region is fully defined for the specified world. * * @param world * @return */ - public boolean isSelectionDefined(LocalWorld world) { + public boolean isSelectionDefined(World world) { if (selector.getIncompleteRegion().getWorld() == null || !selector.getIncompleteRegion().getWorld().equals(world)) { return false; } @@ -248,6 +265,11 @@ public class LocalSession { return selector.getRegion(); } + @Deprecated + public Region getSelection(LocalWorld world) throws IncompleteRegionException { + return getSelection((World) world); + } + /** * Get the selection region. If you change the region, you should * call learnRegionChanges(). If the selection is defined in @@ -258,7 +280,7 @@ public class LocalSession { * @return region * @throws IncompleteRegionException */ - public Region getSelection(LocalWorld world) throws IncompleteRegionException { + public Region getSelection(World world) throws IncompleteRegionException { if (selector.getIncompleteRegion().getWorld() == null || !selector.getIncompleteRegion().getWorld().equals(world)) { throw new IncompleteRegionException(); } @@ -270,7 +292,7 @@ public class LocalSession { * * @return */ - public LocalWorld getSelectionWorld() { + public World getSelectionWorld() { return selector.getIncompleteRegion().getWorld(); } @@ -544,7 +566,7 @@ public class LocalSession { * @param player * @param event */ - public void dispatchCUIEvent(LocalPlayer player, CUIEvent event) { + public void dispatchCUIEvent(Actor player, CUIEvent event) { if (hasCUISupport) { player.dispatchCUIEvent(event); } @@ -585,7 +607,7 @@ public class LocalSession { } } - public void describeCUI(LocalPlayer player) { + public void describeCUI(Actor player) { if (!hasCUISupport) { return; } diff --git a/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java b/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java index c7e58fdeb..2f25cf454 100644 --- a/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java +++ b/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java @@ -19,30 +19,23 @@ package com.sk89q.worldedit.command; -import static com.sk89q.minecraft.util.commands.Logging.LogMode.REGION; - -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import com.sk89q.minecraft.util.commands.Command; import com.sk89q.minecraft.util.commands.CommandContext; import com.sk89q.minecraft.util.commands.CommandPermissions; import com.sk89q.minecraft.util.commands.Logging; -import com.sk89q.worldedit.BiomeType; -import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.LocalPlayer; -import com.sk89q.worldedit.LocalSession; -import com.sk89q.worldedit.LocalWorld; -import com.sk89q.worldedit.Vector; -import com.sk89q.worldedit.Vector2D; -import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.*; import com.sk89q.worldedit.masks.BiomeTypeMask; import com.sk89q.worldedit.masks.InvertedMask; import com.sk89q.worldedit.masks.Mask; import com.sk89q.worldedit.regions.FlatRegion; import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.world.World; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import static com.sk89q.minecraft.util.commands.Logging.LogMode.REGION; public class BiomeCommands { @@ -116,7 +109,7 @@ public class BiomeCommands { BiomeType biome = player.getWorld().getBiome(player.getPosition().toVector2D()); player.print("Biome: " + biome.getName()); } else { - LocalWorld world = player.getWorld(); + World world = player.getWorld(); Region region = session.getSelection(world); Set biomes = new HashSet(); @@ -180,7 +173,7 @@ public class BiomeCommands { } } else { int affected = 0; - LocalWorld world = player.getWorld(); + World world = player.getWorld(); Region region = session.getSelection(world); if (region instanceof FlatRegion) { diff --git a/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java b/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java index 008221f02..eec97d650 100644 --- a/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java +++ b/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java @@ -19,19 +19,17 @@ package com.sk89q.worldedit.command; -import com.sk89q.minecraft.util.commands.Command; -import com.sk89q.minecraft.util.commands.CommandContext; -import com.sk89q.minecraft.util.commands.CommandPermissions; -import com.sk89q.minecraft.util.commands.Logging; -import static com.sk89q.minecraft.util.commands.Logging.LogMode.*; - -import com.sk89q.minecraft.util.commands.NestedCommand; +import com.sk89q.minecraft.util.commands.*; import com.sk89q.worldedit.*; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.blocks.BlockID; import com.sk89q.worldedit.regions.CuboidRegion; -import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; +import com.sk89q.worldedit.world.World; + +import static com.sk89q.minecraft.util.commands.Logging.LogMode.PLACEMENT; +import static com.sk89q.minecraft.util.commands.Logging.LogMode.REGION; /** * Clipboard commands. @@ -103,7 +101,7 @@ public class ClipboardCommands { EditSession editSession) throws WorldEditException { BaseBlock block = new BaseBlock(BlockID.AIR); - LocalWorld world = player.getWorld(); + World world = player.getWorld(); if (args.argsLength() > 0) { block = we.getBlock(player, args.getString(0)); @@ -176,7 +174,7 @@ public class ClipboardCommands { } if (args.hasFlag('s')) { - LocalWorld world = player.getWorld(); + World world = player.getWorld(); Vector pos2 = pos.add(clipboard.getSize().subtract(1, 1, 1)); if (!atOrigin) { pos2 = pos2.add(clipboard.getOffset()); diff --git a/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java b/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java index 701d90524..3e9f29faa 100644 --- a/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java +++ b/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java @@ -36,13 +36,13 @@ import com.sk89q.worldedit.CuboidClipboard; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalPlayer; import com.sk89q.worldedit.LocalSession; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector2D; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.blocks.BlockType; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.ChunkStore; import com.sk89q.worldedit.regions.selector.ConvexPolyhedralRegionSelector; import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; @@ -215,7 +215,7 @@ public class SelectionCommands { final Vector min; final Vector max; - final LocalWorld world = player.getWorld(); + final World world = player.getWorld(); if (args.hasFlag('s')) { Region region = session.getSelection(world); @@ -733,7 +733,7 @@ public class SelectionCommands { public void select(CommandContext args, LocalSession session, LocalPlayer player, EditSession editSession) throws WorldEditException { - final LocalWorld world = player.getWorld(); + final World world = player.getWorld(); if (args.argsLength() == 0) { session.getRegionSelector(world).clear(); session.dispatchCUISelection(player); diff --git a/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java b/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java index 156c7ed0e..702c3d368 100644 --- a/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java +++ b/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java @@ -27,6 +27,7 @@ import com.sk89q.worldedit.patterns.Pattern; import com.sk89q.worldedit.patterns.SingleBlockPattern; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.world.World; import java.util.Comparator; import java.util.Set; @@ -176,7 +177,7 @@ public class UtilityCommands { int size = args.argsLength() > 0 ? Math.max(1, args.getInteger(0)) : 1; we.checkMaxRadius(size); - LocalWorld world = player.getWorld(); + World world = player.getWorld(); int height = args.argsLength() > 1 ? Math.min((world.getMaxY() + 1), args.getInteger(1) + 2) : (world.getMaxY() + 1); int affected = editSession.removeAbove( @@ -198,7 +199,7 @@ public class UtilityCommands { int size = args.argsLength() > 0 ? Math.max(1, args.getInteger(0)) : 1; we.checkMaxRadius(size); - LocalWorld world = player.getWorld(); + World world = player.getWorld(); int height = args.argsLength() > 1 ? Math.min((world.getMaxY() + 1), args.getInteger(1) + 2) : (world.getMaxY() + 1); int affected = editSession.removeBelow(session.getPlacementPosition(player), size, height); @@ -398,7 +399,7 @@ public class UtilityCommands { killed = player.getWorld().killMobs(session.getPlacementPosition(player), radius, flags.flags); } else { killed = 0; - for (LocalWorld world : we.getServer().getWorlds()) { + for (World world : we.getServer().getWorlds()) { killed += world.killMobs(new Vector(), radius, flags.flags); } } @@ -486,7 +487,7 @@ public class UtilityCommands { Vector origin = session.getPlacementPosition(player); removed = player.getWorld().removeEntities(type, origin, radius); } else { - for (LocalWorld world : we.getServer().getWorlds()) { + for (World world : we.getServer().getWorlds()) { removed += world.removeEntities(type, new Vector(), radius); } } diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java b/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java index f67f2d515..fe1811c02 100644 --- a/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java +++ b/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.command.tool.brush; import com.sk89q.worldedit.EditSession; +import com.sk89q.worldedit.internal.LocalWorldAdapter; import com.sk89q.worldedit.math.convolution.HeightMap; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.Vector; @@ -43,10 +44,9 @@ public class SmoothBrush implements Brush { this.naturalOnly = naturalOnly; } - public void build(EditSession editSession, Vector pos, Pattern mat, double size) - throws MaxChangedBlocksException { + public void build(EditSession editSession, Vector pos, Pattern mat, double size) throws MaxChangedBlocksException { double rad = size; - WorldVector min = new WorldVector(editSession.getWorld(), pos.subtract(rad, rad, rad)); + WorldVector min = new WorldVector(LocalWorldAdapter.wrap(editSession.getWorld()), pos.subtract(rad, rad, rad)); Vector max = pos.add(rad, rad + 10, rad); Region region = new CuboidRegion(editSession.getWorld(), min, max); HeightMap heightMap = new HeightMap(editSession, region, naturalOnly); diff --git a/src/main/java/com/sk89q/worldedit/entity/Entity.java b/src/main/java/com/sk89q/worldedit/entity/Entity.java index b40b27790..73fc3a56e 100644 --- a/src/main/java/com/sk89q/worldedit/entity/Entity.java +++ b/src/main/java/com/sk89q/worldedit/entity/Entity.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.entity; import com.sk89q.worldedit.*; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.World; /** * A reference to an instance of an entity that exists in an {@link Extent} @@ -217,6 +218,6 @@ public interface Entity { * * @return the world */ - LocalWorld getWorld(); + World getWorld(); } diff --git a/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java b/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java index 4b4ca0d26..29f6161c1 100644 --- a/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java +++ b/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java @@ -20,12 +20,12 @@ package com.sk89q.worldedit.event.extent; import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.event.Event; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; @@ -59,7 +59,7 @@ import static com.sk89q.worldedit.EditSession.Stage; */ public class EditSessionEvent extends Event { - private final LocalWorld world; + private final World world; private final Actor actor; private final int maxBlocks; private final Stage stage; @@ -73,7 +73,7 @@ public class EditSessionEvent extends Event { * @param maxBlocks the maximum number of block changes * @param stage the stage */ - public EditSessionEvent(LocalWorld world, Actor actor, int maxBlocks, Stage stage) { + public EditSessionEvent(World world, Actor actor, int maxBlocks, Stage stage) { checkNotNull(world); this.world = world; this.actor = actor; @@ -95,7 +95,7 @@ public class EditSessionEvent extends Event { * * @return the world */ - public LocalWorld getWorld() { + public World getWorld() { return world; } diff --git a/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java b/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java index cc79d96e1..49b345d71 100644 --- a/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java +++ b/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java @@ -19,12 +19,11 @@ package com.sk89q.worldedit.extension.input; -import com.sk89q.worldedit.LocalPlayer; import com.sk89q.worldedit.LocalSession; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.registry.MaskRegistry; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; @@ -38,7 +37,7 @@ public class ParserContext { private @Nullable Extent extent; private @Nullable LocalSession session; - private @Nullable LocalWorld world; + private @Nullable World world; private @Nullable Actor actor; private boolean restricted = true; private boolean preferringWildcard; @@ -80,11 +79,11 @@ public class ParserContext { } /** - * Get the {@link LocalWorld} set on this context. + * Get the {@link World} set on this context. * * @return a world */ - public @Nullable LocalWorld getWorld() { + public @Nullable World getWorld() { return world; } @@ -93,7 +92,7 @@ public class ParserContext { * * @param world a world, or null if none is available */ - public void setWorld(@Nullable LocalWorld world) { + public void setWorld(@Nullable World world) { this.world = world; } @@ -144,13 +143,13 @@ public class ParserContext { } /** - * Get the {@link LocalWorld} set on this context. + * Get the {@link World} set on this context. * * @return a world - * @throws InputParseException thrown if no {@link LocalWorld} is set + * @throws InputParseException thrown if no {@link World} is set */ - public LocalWorld requireWorld() throws InputParseException { - LocalWorld world = getWorld(); + public World requireWorld() throws InputParseException { + World world = getWorld(); if (world == null) { throw new InputParseException("No world is known"); } @@ -161,7 +160,7 @@ public class ParserContext { * Get the {@link Actor} set on this context. * * @return an actor - * @throws InputParseException thrown if no {@link LocalPlayer} is set + * @throws InputParseException thrown if no {@link Actor} is set */ public Actor requireActor() throws InputParseException { Actor actor = getActor(); diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java b/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java index 98a330a59..4f84ff8bd 100644 --- a/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java +++ b/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java @@ -22,7 +22,7 @@ package com.sk89q.worldedit.extension.platform; import com.sk89q.minecraft.util.commands.Command; import com.sk89q.minecraft.util.commands.CommandsManager; import com.sk89q.worldedit.LocalPlayer; -import com.sk89q.worldedit.LocalWorld; +import com.sk89q.worldedit.world.World; import java.util.Collections; import java.util.List; @@ -38,7 +38,7 @@ public abstract class AbstractPlatform implements Platform { } @Override - public List getWorlds() { + public List getWorlds() { return Collections.emptyList(); } diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java b/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java index fafafc86a..2e00f5e7c 100644 --- a/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java +++ b/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java @@ -27,6 +27,7 @@ import com.sk89q.worldedit.blocks.ItemID; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.util.TargetBlock; +import com.sk89q.worldedit.world.World; import java.io.File; @@ -94,7 +95,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { @Override public void findFreePosition(WorldVector searchPos) { - LocalWorld world = searchPos.getWorld(); + World world = searchPos.getWorld(); int x = searchPos.getBlockX(); int y = Math.max(0, searchPos.getBlockY()); int origY = y; @@ -126,7 +127,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { @Override public void setOnGround(WorldVector searchPos) { - LocalWorld world = searchPos.getWorld(); + World world = searchPos.getWorld(); int x = searchPos.getBlockX(); int y = Math.max(0, searchPos.getBlockY()); int z = searchPos.getBlockZ(); @@ -155,7 +156,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { final int x = pos.getBlockX(); int y = Math.max(0, pos.getBlockY()); final int z = pos.getBlockZ(); - final LocalWorld world = pos.getWorld(); + final World world = pos.getWorld(); byte free = 0; byte spots = 0; @@ -196,7 +197,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { final int x = pos.getBlockX(); int y = Math.max(0, pos.getBlockY() - 1); final int z = pos.getBlockZ(); - final LocalWorld world = pos.getWorld(); + final World world = pos.getWorld(); byte free = 0; @@ -247,7 +248,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { int initialY = Math.max(0, pos.getBlockY()); int y = Math.max(0, pos.getBlockY() + 2); int z = pos.getBlockZ(); - LocalWorld world = getPosition().getWorld(); + World world = getPosition().getWorld(); // No free space above if (world.getBlockType(new Vector(x, y, z)) != 0) { @@ -281,7 +282,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { int y = Math.max(0, pos.getBlockY() + 1); final int z = pos.getBlockZ(); final int maxY = Math.min(getWorld().getMaxY() + 1, initialY + distance); - final LocalWorld world = getPosition().getWorld(); + final World world = getPosition().getWorld(); while (y <= world.getMaxY() + 2) { if (!BlockType.canPassThrough(world.getBlock(new Vector(x, y, z)))) { @@ -383,7 +384,7 @@ public abstract class AbstractPlayerActor implements Actor, Player { public boolean passThroughForwardWall(int range) { int searchDist = 0; TargetBlock hitBlox = new TargetBlock(this, range, 0.2); - LocalWorld world = getPosition().getWorld(); + World world = getPosition().getWorld(); BlockWorldVector block; boolean firstBlock = true; int freeToFind = 2; diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java b/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java index f31094962..9dfb769bf 100644 --- a/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java +++ b/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.extension.platform; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.WorldEditPermissionException; import com.sk89q.worldedit.internal.cui.CUIEvent; +import com.sk89q.worldedit.world.World; import java.io.File; @@ -42,7 +42,7 @@ public interface Actor { * * @return the world */ - LocalWorld getWorld(); + World getWorld(); /** * Print a message. diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java index 0a784ade2..deaa7056d 100644 --- a/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java +++ b/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java @@ -24,7 +24,7 @@ import com.sk89q.minecraft.util.commands.CommandsManager; import com.sk89q.worldedit.BiomeTypes; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalPlayer; -import com.sk89q.worldedit.LocalWorld; +import com.sk89q.worldedit.world.World; import java.util.List; @@ -75,7 +75,7 @@ public interface Platform { */ int schedule(long delay, long period, Runnable task); - List getWorlds(); + List getWorlds(); @Deprecated void onCommandRegistration(List commands); diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/ServerInterfaceAdapter.java b/src/main/java/com/sk89q/worldedit/extension/platform/ServerInterfaceAdapter.java index d07ea2809..e916cfcfb 100644 --- a/src/main/java/com/sk89q/worldedit/extension/platform/ServerInterfaceAdapter.java +++ b/src/main/java/com/sk89q/worldedit/extension/platform/ServerInterfaceAdapter.java @@ -22,6 +22,7 @@ package com.sk89q.worldedit.extension.platform; import com.sk89q.minecraft.util.commands.Command; import com.sk89q.minecraft.util.commands.CommandsManager; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.world.World; import java.util.List; @@ -70,7 +71,7 @@ class ServerInterfaceAdapter extends ServerInterface { } @Override - public List getWorlds() { + public List getWorlds() { return platform.getWorlds(); } diff --git a/src/main/java/com/sk89q/worldedit/extension/registry/DefaultBlockParser.java b/src/main/java/com/sk89q/worldedit/extension/registry/DefaultBlockParser.java index c26489a02..fe7a63b09 100644 --- a/src/main/java/com/sk89q/worldedit/extension/registry/DefaultBlockParser.java +++ b/src/main/java/com/sk89q/worldedit/extension/registry/DefaultBlockParser.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.extension.input.NoMatchException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.registry.InputParser; +import com.sk89q.worldedit.world.World; /** * Parses block input strings. @@ -79,7 +80,7 @@ class DefaultBlockParser extends InputParser { data = blockInHand.getData(); } else if ("pos1".equalsIgnoreCase(testID)) { // Get the block type from the "primary position" - final LocalWorld world = context.requireWorld(); + final World world = context.requireWorld(); final BlockVector primaryPosition; try { primaryPosition = context.requireSession().getRegionSelector(world).getPrimaryPosition(); diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java b/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java index 0243c7d80..0d29fea34 100644 --- a/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java +++ b/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java @@ -19,12 +19,12 @@ package com.sk89q.worldedit.extent.inventory; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; -import com.sk89q.worldedit.blocks.BaseBlock; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.util.HashMap; @@ -37,7 +37,6 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class BlockBagExtent extends AbstractDelegateExtent { - private final LocalWorld world; private Map missingBlocks = new HashMap(); private BlockBag blockBag; @@ -48,10 +47,8 @@ public class BlockBagExtent extends AbstractDelegateExtent { * @param world the world * @param blockBag the block bag */ - public BlockBagExtent(Extent extent, LocalWorld world, @Nullable BlockBag blockBag) { + public BlockBagExtent(Extent extent, @Nullable BlockBag blockBag) { super(extent); - checkNotNull(world); - this.world = world; this.blockBag = blockBag; } diff --git a/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java b/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java index 35eecf6d1..e9a2752fa 100644 --- a/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java +++ b/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java @@ -19,12 +19,12 @@ package com.sk89q.worldedit.extent.validation; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.World; import static com.google.common.base.Preconditions.checkNotNull; @@ -33,7 +33,7 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class DataValidatorExtent extends AbstractDelegateExtent { - private final LocalWorld world; + private final World world; /** * Create a new instance. @@ -41,7 +41,7 @@ public class DataValidatorExtent extends AbstractDelegateExtent { * @param extent the extent * @param world the world */ - public DataValidatorExtent(Extent extent, LocalWorld world) { + public DataValidatorExtent(Extent extent, World world) { super(extent); checkNotNull(world); this.world = world; diff --git a/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java b/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java index 0be64ad97..46a40ed5c 100644 --- a/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java +++ b/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.extent.world; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseBlock; @@ -27,6 +26,7 @@ import com.sk89q.worldedit.blocks.BlockID; import com.sk89q.worldedit.blocks.BlockType; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.World; import static com.google.common.base.Preconditions.checkNotNull; @@ -36,7 +36,7 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class BlockQuirkExtent extends AbstractDelegateExtent { - private final LocalWorld world; + private final World world; /** * Create a new instance. @@ -44,7 +44,7 @@ public class BlockQuirkExtent extends AbstractDelegateExtent { * @param extent the extent * @param world the world */ - public BlockQuirkExtent(Extent extent, LocalWorld world) { + public BlockQuirkExtent(Extent extent, World world) { super(extent); checkNotNull(world); this.world = world; diff --git a/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java b/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java index 7975d753e..f417a3c7f 100644 --- a/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java +++ b/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java @@ -19,12 +19,12 @@ package com.sk89q.worldedit.extent.world; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.World; import static com.google.common.base.Preconditions.checkNotNull; @@ -33,7 +33,7 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class ChunkLoadingExtent extends AbstractDelegateExtent { - private final LocalWorld world; + private final World world; private boolean enabled; /** @@ -43,7 +43,7 @@ public class ChunkLoadingExtent extends AbstractDelegateExtent { * @param world the world * @param enabled true to enable */ - public ChunkLoadingExtent(Extent extent, LocalWorld world, boolean enabled) { + public ChunkLoadingExtent(Extent extent, World world, boolean enabled) { super(extent); checkNotNull(world); this.enabled = enabled; @@ -56,7 +56,7 @@ public class ChunkLoadingExtent extends AbstractDelegateExtent { * @param extent the extent * @param world the world */ - public ChunkLoadingExtent(Extent extent, LocalWorld world) { + public ChunkLoadingExtent(Extent extent, World world) { this(extent, world, true); } diff --git a/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java b/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java index c4546ebb6..be421cbc2 100644 --- a/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java +++ b/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java @@ -20,13 +20,13 @@ package com.sk89q.worldedit.extent.world; import com.sk89q.worldedit.BlockVector2D; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.operation.RunContext; +import com.sk89q.worldedit.world.World; import java.util.HashSet; import java.util.Set; @@ -38,7 +38,7 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class FastModeExtent extends AbstractDelegateExtent { - private final LocalWorld world; + private final World world; private final Set dirtyChunks = new HashSet(); private boolean enabled = true; @@ -47,7 +47,7 @@ public class FastModeExtent extends AbstractDelegateExtent { * * @param world the world */ - public FastModeExtent(LocalWorld world) { + public FastModeExtent(World world) { this(world, true); } @@ -57,7 +57,7 @@ public class FastModeExtent extends AbstractDelegateExtent { * @param world the world * @param enabled true to enable fast mode */ - public FastModeExtent(LocalWorld world, boolean enabled) { + public FastModeExtent(World world, boolean enabled) { super(world); checkNotNull(world); this.world = world; diff --git a/src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java b/src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java new file mode 100644 index 000000000..3d153caa1 --- /dev/null +++ b/src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java @@ -0,0 +1,316 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.internal; + +import com.sk89q.worldedit.*; +import com.sk89q.worldedit.blocks.BaseBlock; +import com.sk89q.worldedit.blocks.BaseItemStack; +import com.sk89q.worldedit.function.mask.Mask; +import com.sk89q.worldedit.function.operation.Operation; +import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.util.TreeGenerator.TreeType; +import com.sk89q.worldedit.world.World; + +import javax.annotation.Nullable; + +import static com.google.common.base.Preconditions.checkNotNull; + +/** + * Wraps {@link World}s into {@link LocalWorld}. + */ +public class LocalWorldAdapter extends LocalWorld { + + private final World world; + + private LocalWorldAdapter(World world) { + checkNotNull(world); + this.world = world; + } + + @Override + public String getName() { + return world.getName(); + } + + @Override + public int getMaxY() { + return world.getMaxY(); + } + + @Override + public boolean isValidBlockType(int id) { + return world.isValidBlockType(id); + } + + @Override + public boolean usesBlockData(int id) { + return world.usesBlockData(id); + } + + @Override + public Mask createLiquidMask() { + return world.createLiquidMask(); + } + + @Override + @Deprecated + public int getBlockType(Vector pt) { + return world.getBlockType(pt); + } + + @Override + @Deprecated + public int getBlockData(Vector pt) { + return world.getBlockData(pt); + } + + @Override + public boolean setBlock(Vector position, BaseBlock block, boolean notifyAndLight) { + return world.setBlock(position, block, notifyAndLight); + } + + @Override + @Deprecated + public boolean setBlockType(Vector position, int type) { + return world.setBlockType(position, type); + } + + @Override + @Deprecated + public boolean setBlockTypeFast(Vector position, int type) { + return world.setBlockTypeFast(position, type); + } + + @Override + @Deprecated + public void setBlockData(Vector position, int data) { + world.setBlockData(position, data); + } + + @Override + @Deprecated + public void setBlockDataFast(Vector position, int data) { + world.setBlockDataFast(position, data); + } + + @Override + @Deprecated + public boolean setTypeIdAndData(Vector position, int type, int data) { + return world.setTypeIdAndData(position, type, data); + } + + @Override + @Deprecated + public boolean setTypeIdAndDataFast(Vector position, int type, int data) { + return world.setTypeIdAndDataFast(position, type, data); + } + + @Override + public int getBlockLightLevel(Vector position) { + return world.getBlockLightLevel(position); + } + + @Override + public boolean clearContainerBlockContents(Vector position) { + return world.clearContainerBlockContents(position); + } + + @Override + public BiomeType getBiome(Vector2D position) { + return world.getBiome(position); + } + + @Override + public void setBiome(Vector2D position, BiomeType biome) { + world.setBiome(position, biome); + } + + @Override + public void dropItem(Vector position, BaseItemStack item, int count) { + world.dropItem(position, item, count); + } + + @Override + public void dropItem(Vector position, BaseItemStack item) { + world.dropItem(position, item); + } + + @Override + public void simulateBlockMine(Vector position) { + world.simulateBlockMine(position); + } + + @Override + public LocalEntity[] getEntities(Region region) { + return world.getEntities(region); + } + + @Override + public int killEntities(LocalEntity... entity) { + return world.killEntities(entity); + } + + @Override + @Deprecated + public int killMobs(Vector origin, int radius) { + return world.killMobs(origin, radius); + } + + @Override + @Deprecated + public int killMobs(Vector origin, int radius, boolean killPets) { + return world.killMobs(origin, radius, killPets); + } + + @Override + public int killMobs(Vector origin, double radius, int flags) { + return world.killMobs(origin, radius, flags); + } + + @Override + public int removeEntities(EntityType type, Vector origin, int radius) { + return world.removeEntities(type, origin, radius); + } + + @Override + public boolean regenerate(Region region, EditSession editSession) { + return world.regenerate(region, editSession); + } + + @Override + public boolean generateTree(TreeType type, EditSession editSession, Vector position) throws MaxChangedBlocksException { + return world.generateTree(type, editSession, position); + } + + @Override + @Deprecated + public boolean generateTree(EditSession editSession, Vector position) throws MaxChangedBlocksException { + return world.generateTree(editSession, position); + } + + @Override + @Deprecated + public boolean generateBigTree(EditSession editSession, Vector position) throws MaxChangedBlocksException { + return world.generateBigTree(editSession, position); + } + + @Override + @Deprecated + public boolean generateBirchTree(EditSession editSession, Vector position) throws MaxChangedBlocksException { + return world.generateBirchTree(editSession, position); + } + + @Override + @Deprecated + public boolean generateRedwoodTree(EditSession editSession, Vector position) throws MaxChangedBlocksException { + return world.generateRedwoodTree(editSession, position); + } + + @Override + @Deprecated + public boolean generateTallRedwoodTree(EditSession editSession, Vector position) throws MaxChangedBlocksException { + return world.generateTallRedwoodTree(editSession, position); + } + + @Override + public void checkLoadedChunk(Vector position) { + world.checkLoadedChunk(position); + } + + @Override + public void fixAfterFastMode(Iterable chunks) { + world.fixAfterFastMode(chunks); + } + + @Override + public void fixLighting(Iterable chunks) { + world.fixLighting(chunks); + } + + @Override + public boolean playEffect(Vector position, int type, int data) { + return world.playEffect(position, type, data); + } + + @Override + public boolean queueBlockBreakEffect(ServerInterface server, Vector position, int blockId, double priority) { + return world.queueBlockBreakEffect(server, position, blockId, priority); + } + + @Override + public boolean equals(Object other) { + return world.equals(other); + } + + @Override + public int hashCode() { + return world.hashCode(); + } + + @Override + public Vector getMinimumPoint() { + return world.getMinimumPoint(); + } + + @Override + public Vector getMaximumPoint() { + return world.getMaximumPoint(); + } + + @Override + public BaseBlock getBlock(Vector position) { + return world.getBlock(position); + } + + @Override + public boolean copyFromWorld(Vector position, BaseBlock block) { + return false; + } + + @Override + public boolean copyToWorld(Vector position, BaseBlock block) { + return false; + } + + @Override + public BaseBlock getLazyBlock(Vector position) { + return world.getLazyBlock(position); + } + + @Override + public boolean setBlock(Vector position, BaseBlock block) { + try { + return world.setBlock(position, block); + } catch (WorldEditException e) { + throw new RuntimeException(e); + } + } + + @Override + @Nullable + public Operation commit() { + return world.commit(); + } + + public static LocalWorldAdapter wrap(World world) { + return new LocalWorldAdapter(world); + } + +} diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java b/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java index eb77f2d2a..f4bfd934c 100644 --- a/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java +++ b/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.internal.cui; import com.sk89q.worldedit.LocalPlayer; import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.extension.platform.Actor; public interface CUIRegion { @@ -30,7 +31,7 @@ public interface CUIRegion { * value supplied by getProtocolVersion(). * */ - public void describeCUI(LocalSession session, LocalPlayer player); + public void describeCUI(LocalSession session, Actor player); /** * Sends CUI events describing the region for @@ -38,7 +39,7 @@ public interface CUIRegion { * supplied by getProtocolVersion(). * */ - public void describeLegacyCUI(LocalSession session, LocalPlayer player); + public void describeLegacyCUI(LocalSession session, Actor player); /** * Returns the CUI version that is required to send diff --git a/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java b/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java index c6b6db3c9..0b5e6e059 100644 --- a/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java @@ -22,6 +22,7 @@ package com.sk89q.worldedit.regions; import com.sk89q.worldedit.*; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.regions.iterator.RegionIterator; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.ChunkStore; import java.util.*; @@ -30,9 +31,9 @@ public abstract class AbstractRegion implements Region { /** * Stores the world. */ - protected LocalWorld world; + protected World world; - public AbstractRegion(LocalWorld world) { + public AbstractRegion(World world) { this.world = world; } @@ -46,23 +47,33 @@ public abstract class AbstractRegion implements Region { * * @return iterator of points inside the region */ + @Override public Iterator iterator() { return new RegionIterator(this); } - public LocalWorld getWorld() { + @Override + public World getWorld() { return world; } + @Override public void setWorld(LocalWorld world) { + setWorld((World) world); + } + + @Override + public void setWorld(World world) { this.world = world; } + @Override public void shift(Vector change) throws RegionOperationException { expand(change); contract(change); } + @Override public AbstractRegion clone() { try { return (AbstractRegion) super.clone(); @@ -95,6 +106,7 @@ public abstract class AbstractRegion implements Region { * * @return number of blocks */ + @Override public int getArea() { Vector min = getMinimumPoint(); Vector max = getMaximumPoint(); @@ -109,6 +121,7 @@ public abstract class AbstractRegion implements Region { * * @return width */ + @Override public int getWidth() { Vector min = getMinimumPoint(); Vector max = getMaximumPoint(); @@ -121,6 +134,7 @@ public abstract class AbstractRegion implements Region { * * @return height */ + @Override public int getHeight() { Vector min = getMinimumPoint(); Vector max = getMaximumPoint(); @@ -133,6 +147,7 @@ public abstract class AbstractRegion implements Region { * * @return length */ + @Override public int getLength() { Vector min = getMinimumPoint(); Vector max = getMaximumPoint(); @@ -145,6 +160,7 @@ public abstract class AbstractRegion implements Region { * * @return */ + @Override public Set getChunks() { final Set chunks = new HashSet(); diff --git a/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java b/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java index da0879168..879628391 100644 --- a/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java @@ -30,6 +30,7 @@ import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.regions.polyhedron.Edge; import com.sk89q.worldedit.regions.polyhedron.Triangle; +import com.sk89q.worldedit.world.World; public class ConvexPolyhedralRegion extends AbstractRegion { /** @@ -72,6 +73,11 @@ public class ConvexPolyhedralRegion extends AbstractRegion { * * @param world */ + public ConvexPolyhedralRegion(World world) { + super(world); + } + + @Deprecated public ConvexPolyhedralRegion(LocalWorld world) { super(world); } @@ -79,7 +85,7 @@ public class ConvexPolyhedralRegion extends AbstractRegion { /** * Constructs an independent copy of the given region. * - * @param world + * @param region the region to copy */ public ConvexPolyhedralRegion(ConvexPolyhedralRegion region) { this(region.world); diff --git a/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java b/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java index 888911a38..cd5e491e8 100644 --- a/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.regions; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.ChunkStore; import java.util.HashSet; @@ -47,6 +48,11 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion { this(null, pos1, pos2); } + @Deprecated + public CuboidRegion(LocalWorld world, Vector pos1, Vector pos2) { + this((World) world, pos1, pos2); + } + /** * Construct a new instance of this cuboid using two corners of the cuboid. * @@ -54,7 +60,7 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion { * @param pos1 the first position * @param pos2 the second position */ - public CuboidRegion(LocalWorld world, Vector pos1, Vector pos2) { + public CuboidRegion(World world, Vector pos1, Vector pos2) { super(world); checkNotNull(pos1); checkNotNull(pos2); diff --git a/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java b/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java index 78941e720..73d1e0f44 100644 --- a/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java @@ -22,6 +22,7 @@ package com.sk89q.worldedit.regions; import com.sk89q.worldedit.*; import com.sk89q.worldedit.regions.iterator.FlatRegion3DIterator; import com.sk89q.worldedit.regions.iterator.FlatRegionIterator; +import com.sk89q.worldedit.world.World; import java.util.ArrayList; import java.util.Iterator; @@ -43,19 +44,28 @@ public class CylinderRegion extends AbstractRegion implements FlatRegion { * Construct the region */ public CylinderRegion() { - this((LocalWorld) null); + this((World) null); } + @Deprecated + public CylinderRegion(LocalWorld world) { + this((World) world); + } /** * Construct the region. * * @param world */ - public CylinderRegion(LocalWorld world) { + public CylinderRegion(World world) { this(world, new Vector(), new Vector2D(), 0, 0); hasY = false; } + @Deprecated + public CylinderRegion(LocalWorld world, Vector center, Vector2D radius, int minY, int maxY) { + this((World) world, center, radius, minY, maxY); + } + /** * Construct the region. * @@ -65,7 +75,7 @@ public class CylinderRegion extends AbstractRegion implements FlatRegion { * @param minY * @param maxY */ - public CylinderRegion(LocalWorld world, Vector center, Vector2D radius, int minY, int maxY) { + public CylinderRegion(World world, Vector center, Vector2D radius, int minY, int maxY) { super(world); setCenter(center.toVector2D()); setRadius(radius); diff --git a/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java b/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java index a0a38e188..8d0ab0b8d 100644 --- a/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.BlockVector2D; import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector2D; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.ChunkStore; import java.util.Set; import java.util.HashSet; @@ -38,7 +39,7 @@ public class EllipsoidRegion extends AbstractRegion { */ private Vector center; /** - * Stores the radiuses plus 0.5 on each axis. + * Stores the radii plus 0.5 on each axis. */ private Vector radius; /** @@ -51,6 +52,11 @@ public class EllipsoidRegion extends AbstractRegion { this(null, pos1, pos2); } + @Deprecated + public EllipsoidRegion(LocalWorld world, Vector center, Vector radius) { + this((World) world, center, radius); + } + /** * Construct a new instance of this ellipsoid region. * @@ -58,7 +64,7 @@ public class EllipsoidRegion extends AbstractRegion { * @param center * @param radius */ - public EllipsoidRegion(LocalWorld world, Vector center, Vector radius) { + public EllipsoidRegion(World world, Vector center, Vector radius) { super(world); this.center = center; setRadius(radius); diff --git a/src/main/java/com/sk89q/worldedit/regions/NullRegion.java b/src/main/java/com/sk89q/worldedit/regions/NullRegion.java index a95f87a96..0f5839ad0 100644 --- a/src/main/java/com/sk89q/worldedit/regions/NullRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/NullRegion.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.regions; import com.sk89q.worldedit.*; import com.sk89q.worldedit.Vector; +import com.sk89q.worldedit.world.World; import java.util.*; @@ -29,7 +30,7 @@ import java.util.*; */ public class NullRegion implements Region { - private LocalWorld world; + private World world; @Override public Vector getMinimumPoint() { @@ -97,15 +98,20 @@ public class NullRegion implements Region { } @Override - public LocalWorld getWorld() { + public World getWorld() { return world; } @Override - public void setWorld(LocalWorld world) { + public void setWorld(World world) { this.world = world; } + @Override + public void setWorld(LocalWorld world) { + setWorld((World) world); + } + @Override public NullRegion clone() { return new NullRegion(); diff --git a/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java b/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java index ffe2b11ac..6eeffb466 100644 --- a/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java +++ b/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java @@ -30,6 +30,7 @@ import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector2D; import com.sk89q.worldedit.regions.iterator.FlatRegion3DIterator; import com.sk89q.worldedit.regions.iterator.FlatRegionIterator; +import com.sk89q.worldedit.world.World; /** * Represents a 2D polygonal region. @@ -48,7 +49,12 @@ public class Polygonal2DRegion extends AbstractRegion implements FlatRegion { * Construct the region */ public Polygonal2DRegion() { - this((LocalWorld) null); + this((World) null); + } + + @Deprecated + public Polygonal2DRegion(LocalWorld world) { + this((World) world); } /** @@ -56,11 +62,16 @@ public class Polygonal2DRegion extends AbstractRegion implements FlatRegion { * * @param world */ - public Polygonal2DRegion(LocalWorld world) { + public Polygonal2DRegion(World world) { this(world, Collections.emptyList(), 0, 0); hasY = false; } + @Deprecated + public Polygonal2DRegion(LocalWorld world, List points, int minY, int maxY) { + this((World) world, points, minY, maxY); + } + /** * Construct the region. * @@ -69,7 +80,7 @@ public class Polygonal2DRegion extends AbstractRegion implements FlatRegion { * @param minY * @param maxY */ - public Polygonal2DRegion(LocalWorld world, List points, int minY, int maxY) { + public Polygonal2DRegion(World world, List points, int minY, int maxY) { super(world); this.points = new ArrayList(points); this.minY = minY; diff --git a/src/main/java/com/sk89q/worldedit/regions/Region.java b/src/main/java/com/sk89q/worldedit/regions/Region.java index 17f0f1d09..b175d851c 100644 --- a/src/main/java/com/sk89q/worldedit/regions/Region.java +++ b/src/main/java/com/sk89q/worldedit/regions/Region.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.BlockVector2D; import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector2D; +import com.sk89q.worldedit.world.World; import java.util.List; import java.util.Set; @@ -135,13 +136,21 @@ public interface Region extends Iterable, Cloneable { * * @return */ - public LocalWorld getWorld(); + public World getWorld(); /** * Sets the world the selection is in * * @return */ + public void setWorld(World world); + + /** + * Sets the world the selection is in + * + * @return + */ + @Deprecated public void setWorld(LocalWorld world); public Region clone(); diff --git a/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java index ed003dfb3..405f411d8 100644 --- a/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.regions; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.extension.platform.Actor; import java.util.List; @@ -49,28 +50,37 @@ public interface RegionSelector { /** * Tell the player information about his/her primary selection. * - * @param player the player + * @param actor the actor * @param session the session * @param position position */ + public void explainPrimarySelection(Actor actor, LocalSession session, Vector position); + + @Deprecated public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position); /** * Tell the player information about his/her secondary selection. * - * @param player the player + * @param actor the actor * @param session the session * @param position position */ + public void explainSecondarySelection(Actor actor, LocalSession session, Vector position); + + @Deprecated public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position); /** * The the player information about the region's changes. This may resend * all the defining region information if needed. * - * @param player the player + * @param actor the actor * @param session the session */ + public void explainRegionAdjust(Actor actor, LocalSession session); + + @Deprecated public void explainRegionAdjust(LocalPlayer player, LocalSession session); /** diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java index fd03ab740..e05bdab45 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.regions.selector; import com.sk89q.worldedit.*; import com.sk89q.worldedit.Vector; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.cui.CUIRegion; import com.sk89q.worldedit.internal.cui.SelectionPointEvent; import com.sk89q.worldedit.internal.cui.SelectionPolygonEvent; @@ -29,6 +30,7 @@ import com.sk89q.worldedit.regions.ConvexPolyhedralRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.regions.polyhedron.Triangle; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.util.*; @@ -44,13 +46,18 @@ public class ConvexPolyhedralRegionSelector extends com.sk89q.worldedit.regions. private final ConvexPolyhedralRegion region; private BlockVector pos1; + @Deprecated + public ConvexPolyhedralRegionSelector(@Nullable LocalWorld world, int maxVertices) { + this((World) world, maxVertices); + } + /** * Create a new selector. * * @param world the world * @param maxVertices the maximum number of vertices, where a number below 0 means unbounded */ - public ConvexPolyhedralRegionSelector(@Nullable LocalWorld world, int maxVertices) { + public ConvexPolyhedralRegionSelector(@Nullable World world, int maxVertices) { this.maxVertices = maxVertices; region = new ConvexPolyhedralRegion(world); } @@ -165,21 +172,21 @@ public class ConvexPolyhedralRegionSelector extends com.sk89q.worldedit.regions. @Override - public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainPrimarySelection(Actor player, LocalSession session, Vector pos) { session.describeCUI(player); player.print("Started new selection with vertex "+pos+"."); } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { session.describeCUI(player); player.print("Added vertex "+pos+" to the selection."); } @Override - public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + public void explainRegionAdjust(Actor player, LocalSession session) { session.describeCUI(player); } @@ -195,7 +202,7 @@ public class ConvexPolyhedralRegionSelector extends com.sk89q.worldedit.regions. } @Override - public void describeCUI(LocalSession session, LocalPlayer player) { + public void describeCUI(LocalSession session, Actor player) { Collection vertices = region.getVertices(); Collection triangles = region.getTriangles(); @@ -223,7 +230,7 @@ public class ConvexPolyhedralRegionSelector extends com.sk89q.worldedit.regions. } @Override - public void describeLegacyCUI(LocalSession session, LocalPlayer player) { + public void describeLegacyCUI(LocalSession session, Actor player) { if (isDefined()) { session.dispatchCUIEvent(player, new SelectionPointEvent(0, region.getMinimumPoint(), getArea())); session.dispatchCUIEvent(player, new SelectionPointEvent(1, region.getMaximumPoint(), getArea())); @@ -232,4 +239,19 @@ public class ConvexPolyhedralRegionSelector extends com.sk89q.worldedit.regions. } } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } + } diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java index b7b26c935..18f2a23a7 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java @@ -20,11 +20,13 @@ package com.sk89q.worldedit.regions.selector; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.cui.CUIRegion; import com.sk89q.worldedit.internal.cui.SelectionPointEvent; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionSelector; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.util.ArrayList; @@ -45,7 +47,12 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi * Create a new region selector with no world. */ public CuboidRegionSelector() { - this((LocalWorld) null); + this((World) null); + } + + @Deprecated + public CuboidRegionSelector(@Nullable LocalWorld world) { + this((World) world); } /** @@ -53,7 +60,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi * * @param world the world */ - public CuboidRegionSelector(@Nullable LocalWorld world) { + public CuboidRegionSelector(@Nullable World world) { region = new CuboidRegion(world, new Vector(), new Vector()); } @@ -85,6 +92,11 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi region.setPos2(pos2); } + @Deprecated + public CuboidRegionSelector(@Nullable LocalWorld world, Vector pos1, Vector pos2) { + this((World) world, pos1, pos2); + } + /** * Create a new region selector with the given two positions. * @@ -92,7 +104,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi * @param pos1 position 1 * @param pos2 position 2 */ - public CuboidRegionSelector(@Nullable LocalWorld world, Vector pos1, Vector pos2) { + public CuboidRegionSelector(@Nullable World world, Vector pos1, Vector pos2) { this(world); checkNotNull(world); checkNotNull(pos1); @@ -126,7 +138,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi } @Override - public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainPrimarySelection(Actor player, LocalSession session, Vector pos) { if (pos1 != null && pos2 != null) { player.print("First position set to " + pos1 + " (" + region.getArea() + ")."); } else { @@ -137,7 +149,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { if (pos1 != null && pos2 != null) { player.print("Second position set to " + pos2 + " (" + region.getArea() + ")."); } else { @@ -148,7 +160,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi } @Override - public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + public void explainRegionAdjust(Actor player, LocalSession session) { if (pos1 != null) { session.dispatchCUIEvent(player, new SelectionPointEvent(0, pos1, getArea())); } @@ -232,7 +244,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi } @Override - public void describeCUI(LocalSession session, LocalPlayer player) { + public void describeCUI(LocalSession session, Actor player) { if (pos1 != null) { session.dispatchCUIEvent(player, new SelectionPointEvent(0, pos1, getArea())); } @@ -243,7 +255,7 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi } @Override - public void describeLegacyCUI(LocalSession session, LocalPlayer player) { + public void describeLegacyCUI(LocalSession session, Actor player) { describeCUI(session, player); } @@ -262,5 +274,19 @@ public class CuboidRegionSelector extends com.sk89q.worldedit.regions.CuboidRegi return "cuboid"; } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } } diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java index c3117cb81..ffd9c94b0 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java @@ -20,10 +20,12 @@ package com.sk89q.worldedit.regions.selector; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.cui.*; import com.sk89q.worldedit.regions.CylinderRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionSelector; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.text.NumberFormat; @@ -45,12 +47,17 @@ public class CylinderRegionSelector extends com.sk89q.worldedit.regions.Cylinder format.setMaximumFractionDigits(3); } + @Deprecated + public CylinderRegionSelector(@Nullable LocalWorld world) { + this((World) world); + } + /** * Create a new region selector. * * @param world the world */ - public CylinderRegionSelector(@Nullable LocalWorld world) { + public CylinderRegionSelector(@Nullable World world) { region = new CylinderRegion(world); } @@ -134,14 +141,14 @@ public class CylinderRegionSelector extends com.sk89q.worldedit.regions.Cylinder } @Override - public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainPrimarySelection(Actor player, LocalSession session, Vector pos) { player.print("Starting a new cylindrical selection at " + pos + "."); session.describeCUI(player); } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { Vector center = region.getCenter(); if (!center.equals(Vector.ZERO)) { player.print("Radius set to " + format.format(region.getRadius().getX()) + "/" + format.format(region.getRadius().getZ()) + " blocks. (" + region.getArea() + ")."); @@ -154,7 +161,7 @@ public class CylinderRegionSelector extends com.sk89q.worldedit.regions.Cylinder } @Override - public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + public void explainRegionAdjust(Actor player, LocalSession session) { session.describeCUI(player); } @@ -220,13 +227,13 @@ public class CylinderRegionSelector extends com.sk89q.worldedit.regions.Cylinder } @Override - public void describeCUI(LocalSession session, LocalPlayer player) { + public void describeCUI(LocalSession session, Actor player) { session.dispatchCUIEvent(player, new SelectionCylinderEvent(region.getCenter(), region.getRadius())); session.dispatchCUIEvent(player, new SelectionMinMaxEvent(region.getMinimumY(), region.getMaximumY())); } @Override - public void describeLegacyCUI(LocalSession session, LocalPlayer player) { + public void describeLegacyCUI(LocalSession session, Actor player) { if (isDefined()) { session.dispatchCUIEvent(player, new SelectionPointEvent(0, region.getMinimumPoint(), getArea())); session.dispatchCUIEvent(player, new SelectionPointEvent(1, region.getMaximumPoint(), getArea())); @@ -250,4 +257,19 @@ public class CylinderRegionSelector extends com.sk89q.worldedit.regions.Cylinder return "cuboid"; } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } + } diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java index ad4b840df..3aed786a1 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java @@ -20,12 +20,14 @@ package com.sk89q.worldedit.regions.selector; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.cui.CUIRegion; import com.sk89q.worldedit.internal.cui.SelectionEllipsoidPointEvent; import com.sk89q.worldedit.internal.cui.SelectionPointEvent; import com.sk89q.worldedit.regions.EllipsoidRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionSelector; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.util.ArrayList; @@ -42,18 +44,23 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso /** * Create a new selector. - * - * @param world the world */ + public EllipsoidRegionSelector() { + this((World) null); + } + + @Deprecated public EllipsoidRegionSelector(@Nullable LocalWorld world) { - region = new EllipsoidRegion(world, new Vector(), new Vector()); + this((World) world); } /** * Create a new selector. + * + * @param world the world */ - public EllipsoidRegionSelector() { - this((LocalWorld) null); + public EllipsoidRegionSelector(@Nullable World world) { + region = new EllipsoidRegion(world, new Vector(), new Vector()); } /** @@ -118,7 +125,7 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso } @Override - public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainPrimarySelection(Actor player, LocalSession session, Vector pos) { if (isDefined()) { player.print("Center position set to " + region.getCenter() + " (" + region.getArea() + ")."); } else { @@ -129,7 +136,7 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { if (isDefined()) { player.print("Radius set to " + region.getRadius() + " (" + region.getArea() + ")."); } else { @@ -140,7 +147,7 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso } @Override - public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + public void explainRegionAdjust(Actor player, LocalSession session) { session.describeCUI(player); } @@ -201,13 +208,13 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso } @Override - public void describeCUI(LocalSession session, LocalPlayer player) { + public void describeCUI(LocalSession session, Actor player) { session.dispatchCUIEvent(player, new SelectionEllipsoidPointEvent(0, region.getCenter())); session.dispatchCUIEvent(player, new SelectionEllipsoidPointEvent(1, region.getRadius())); } @Override - public void describeLegacyCUI(LocalSession session, LocalPlayer player) { + public void describeLegacyCUI(LocalSession session, Actor player) { session.dispatchCUIEvent(player, new SelectionPointEvent(0, region.getMinimumPoint(), getArea())); session.dispatchCUIEvent(player, new SelectionPointEvent(1, region.getMaximumPoint(), getArea())); } @@ -232,4 +239,19 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso return region.getCenter().toBlockVector(); } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } + } diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java index c8730b68b..518d1b707 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java @@ -20,8 +20,10 @@ package com.sk89q.worldedit.regions.selector; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.RegionSelector; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; @@ -31,12 +33,17 @@ import javax.annotation.Nullable; */ public class ExtendingCuboidRegionSelector extends CuboidRegionSelector { + @Deprecated + public ExtendingCuboidRegionSelector(@Nullable LocalWorld world) { + this((World) world); + } + /** * Create a new selector. * * @param world the world */ - public ExtendingCuboidRegionSelector(@Nullable LocalWorld world) { + public ExtendingCuboidRegionSelector(@Nullable World world) { super(world); } @@ -118,17 +125,32 @@ public class ExtendingCuboidRegionSelector extends CuboidRegionSelector { } @Override - public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainPrimarySelection(Actor player, LocalSession session, Vector pos) { player.print("Started selection at " + pos + " (" + region.getArea() + ")."); explainRegionAdjust(player, session); } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { player.print("Extended selection to encompass " + pos + " (" + region.getArea() + ")."); explainRegionAdjust(player, session); } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } + } diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java index 8c5d5a33a..6e8c149cd 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.regions.selector; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.cui.CUIRegion; import com.sk89q.worldedit.internal.cui.SelectionMinMaxEvent; import com.sk89q.worldedit.internal.cui.SelectionPoint2DEvent; @@ -27,6 +28,7 @@ import com.sk89q.worldedit.internal.cui.SelectionShapeEvent; import com.sk89q.worldedit.regions.Polygonal2DRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionSelector; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; import java.util.Collections; @@ -51,13 +53,18 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg this(world, 50); } + @Deprecated + public Polygonal2DRegionSelector(@Nullable LocalWorld world, int maxPoints) { + this((World) world, maxPoints); + } + /** * Create a new selector. * * @param world the world * @param maxPoints the maximum number of points */ - public Polygonal2DRegionSelector(@Nullable LocalWorld world, int maxPoints) { + public Polygonal2DRegionSelector(@Nullable World world, int maxPoints) { this.maxPoints = maxPoints; region = new Polygonal2DRegion(world); } @@ -101,6 +108,11 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg } } + @Deprecated + public Polygonal2DRegionSelector(@Nullable LocalWorld world, List points, int minY, int maxY) { + this((World) world, points, minY, maxY); + } + /** * Create a new selector. * @@ -109,7 +121,7 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg * @param minY the minimum Y * @param maxY the maximum Y */ - public Polygonal2DRegionSelector(@Nullable LocalWorld world, List points, int minY, int maxY) { + public Polygonal2DRegionSelector(@Nullable World world, List points, int minY, int maxY) { checkNotNull(points); final BlockVector2D pos2D = points.get(0); @@ -153,7 +165,7 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg } @Override - public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainPrimarySelection(Actor player, LocalSession session, Vector pos) { player.print("Starting a new polygon at " + pos + "."); session.dispatchCUIEvent(player, new SelectionShapeEvent(getTypeID())); @@ -162,7 +174,7 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { player.print("Added point #" + region.size() + " at " + pos + "."); session.dispatchCUIEvent(player, new SelectionPoint2DEvent(region.size() - 1, pos, getArea())); @@ -170,7 +182,7 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg } @Override - public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + public void explainRegionAdjust(Actor player, LocalSession session) { session.dispatchCUIEvent(player, new SelectionShapeEvent(getTypeID())); describeCUI(session, player); } @@ -241,7 +253,7 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg } @Override - public void describeCUI(LocalSession session, LocalPlayer player) { + public void describeCUI(LocalSession session, Actor player) { final List points = region.getPoints(); for (int id = 0; id < points.size(); id++) { session.dispatchCUIEvent(player, new SelectionPoint2DEvent(id, points.get(id), getArea())); @@ -251,7 +263,7 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg } @Override - public void describeLegacyCUI(LocalSession session, LocalPlayer player) { + public void describeLegacyCUI(LocalSession session, Actor player) { describeCUI(session, player); } @@ -270,4 +282,19 @@ public class Polygonal2DRegionSelector extends com.sk89q.worldedit.regions.Polyg return "polygon2d"; } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } + } diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java b/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java index 373872f45..f6f043778 100644 --- a/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java +++ b/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java @@ -23,7 +23,9 @@ import com.sk89q.worldedit.LocalPlayer; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.regions.RegionSelector; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; @@ -32,12 +34,17 @@ import javax.annotation.Nullable; */ public class SphereRegionSelector extends EllipsoidRegionSelector { + @Deprecated + public SphereRegionSelector(@Nullable LocalWorld world) { + this((World) world); + } + /** * Create a new selector. * * @param world the world */ - public SphereRegionSelector(@Nullable LocalWorld world) { + public SphereRegionSelector(@Nullable World world) { super(world); } @@ -80,7 +87,7 @@ public class SphereRegionSelector extends EllipsoidRegionSelector { } @Override - public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector pos) { + public void explainSecondarySelection(Actor player, LocalSession session, Vector pos) { if (isDefined()) { player.print("Radius set to " + region.getRadius().getX() + " (" + region.getArea() + ")."); } else { @@ -95,4 +102,19 @@ public class SphereRegionSelector extends EllipsoidRegionSelector { return "sphere"; } + @Override + public void explainPrimarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainPrimarySelection((Actor) player, session, position); + } + + @Override + public void explainSecondarySelection(LocalPlayer player, LocalSession session, Vector position) { + explainSecondarySelection((Actor) player, session, position); + } + + @Override + public void explainRegionAdjust(LocalPlayer player, LocalSession session) { + explainRegionAdjust((Actor) player, session); + } + } diff --git a/src/main/java/com/sk89q/worldedit/session/request/Request.java b/src/main/java/com/sk89q/worldedit/session/request/Request.java index 7dd4dba29..99993ffa3 100644 --- a/src/main/java/com/sk89q/worldedit/session/request/Request.java +++ b/src/main/java/com/sk89q/worldedit/session/request/Request.java @@ -21,7 +21,7 @@ package com.sk89q.worldedit.session.request; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; -import com.sk89q.worldedit.LocalWorld; +import com.sk89q.worldedit.world.World; import javax.annotation.Nullable; @@ -37,7 +37,7 @@ public final class Request { } }; - private @Nullable LocalWorld world; + private @Nullable World world; private @Nullable LocalSession session; private @Nullable EditSession editSession; @@ -49,7 +49,7 @@ public final class Request { * * @return the world, which may be null */ - public @Nullable LocalWorld getWorld() { + public @Nullable World getWorld() { return world; } @@ -58,7 +58,7 @@ public final class Request { * * @param world the world, which may be null */ - public void setWorld(@Nullable LocalWorld world) { + public void setWorld(@Nullable World world) { this.world = world; } diff --git a/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java b/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java index ef802854a..3ac222542 100644 --- a/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java +++ b/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.*; import com.sk89q.worldedit.regions.NullRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionOperationException; +import com.sk89q.worldedit.world.World; import java.util.Iterator; import java.util.List; @@ -45,7 +46,7 @@ public class RequestSelection implements Region { */ protected Region getRegion() { LocalSession session = Request.request().getSession(); - LocalWorld world = Request.request().getWorld(); + World world = Request.request().getWorld(); if (session != null && world != null) { try { @@ -123,12 +124,17 @@ public class RequestSelection implements Region { } @Override - public LocalWorld getWorld() { + public World getWorld() { return getRegion().getWorld(); } @Override public void setWorld(LocalWorld world) { + setWorld((World) world); + } + + @Override + public void setWorld(World world) { getRegion().setWorld(world); } diff --git a/src/main/java/com/sk89q/worldedit/util/TargetBlock.java b/src/main/java/com/sk89q/worldedit/util/TargetBlock.java index 761fc4227..700dce3f8 100644 --- a/src/main/java/com/sk89q/worldedit/util/TargetBlock.java +++ b/src/main/java/com/sk89q/worldedit/util/TargetBlock.java @@ -19,14 +19,11 @@ package com.sk89q.worldedit.util; -import com.sk89q.worldedit.BlockWorldVector; -import com.sk89q.worldedit.LocalPlayer; -import com.sk89q.worldedit.LocalWorld; -import com.sk89q.worldedit.Vector; -import com.sk89q.worldedit.WorldVectorFace; +import com.sk89q.worldedit.*; import com.sk89q.worldedit.blocks.BlockID; import com.sk89q.worldedit.blocks.BlockType; import com.sk89q.worldedit.entity.Entity; +import com.sk89q.worldedit.internal.LocalWorldAdapter; /** * This class uses an inefficient method to figure out what block a player @@ -52,7 +49,7 @@ public class TargetBlock { * @param player player to work with */ public TargetBlock(LocalPlayer player) { - this.world = player.getWorld(); + this.world = LocalWorldAdapter.wrap(player.getWorld()); this.setValues(player.getPosition(), player.getYaw(), player.getPitch(), 300, 1.65, 0.2); } @@ -76,7 +73,7 @@ public class TargetBlock { * @param checkDistance how often to check for blocks, the smaller the more precise */ public TargetBlock(Entity player, int maxDistance, double checkDistance) { - this.world = player.getWorld(); + this.world = LocalWorldAdapter.wrap(player.getWorld()); this.setValues(player.getPosition(), player.getYaw(), player.getPitch(), maxDistance, 1.65, checkDistance); } diff --git a/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java b/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java index 11f3ba73d..497935a7f 100644 --- a/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java +++ b/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java @@ -19,25 +19,19 @@ package com.sk89q.worldedit.world.chunk; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.sk89q.jnbt.ByteArrayTag; -import com.sk89q.jnbt.ByteTag; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.NBTUtils; -import com.sk89q.jnbt.Tag; +import com.sk89q.jnbt.*; import com.sk89q.worldedit.BlockVector; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.blocks.TileEntityBlock; import com.sk89q.worldedit.world.DataException; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.InvalidFormatException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class AnvilChunk implements Chunk { private CompoundTag rootTag; @@ -49,7 +43,7 @@ public class AnvilChunk implements Chunk { private Map> tileEntities; @SuppressWarnings("unused") - private LocalWorld world; // TODO: remove if stays unused. + private World world; // TODO: remove if stays unused. /** * Construct the chunk with a compound tag. @@ -58,7 +52,7 @@ public class AnvilChunk implements Chunk { * @param tag the tag to read * @throws DataException on a data error */ - public AnvilChunk(LocalWorld world, CompoundTag tag) throws DataException { + public AnvilChunk(World world, CompoundTag tag) throws DataException { rootTag = tag; this.world = world; diff --git a/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java b/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java index 30c5c12d6..4996ba399 100644 --- a/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java +++ b/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java @@ -21,11 +21,11 @@ package com.sk89q.worldedit.world.chunk; import com.sk89q.jnbt.*; import com.sk89q.worldedit.BlockVector; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.blocks.TileEntityBlock; import com.sk89q.worldedit.world.DataException; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.InvalidFormatException; import java.util.HashMap; @@ -46,7 +46,7 @@ public class OldChunk implements Chunk { private Map> tileEntities; @SuppressWarnings("unused") - private LocalWorld world; // TODO: remove if stays unused. + private World world; // TODO: remove if stays unused. /** * Construct the chunk with a compound tag. @@ -54,7 +54,7 @@ public class OldChunk implements Chunk { * @param tag * @throws DataException */ - public OldChunk(LocalWorld world, CompoundTag tag) throws DataException { + public OldChunk(World world, CompoundTag tag) throws DataException { rootTag = tag; this.world = world; diff --git a/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java b/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java index eb473ab5c..bf24dc068 100644 --- a/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java +++ b/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java @@ -19,16 +19,20 @@ package com.sk89q.worldedit.world.storage; -import java.io.IOException; -import java.util.Map; - -import com.sk89q.jnbt.*; -import com.sk89q.worldedit.*; +import com.sk89q.jnbt.CompoundTag; +import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.BlockVector2D; +import com.sk89q.worldedit.Vector; +import com.sk89q.worldedit.Vector2D; import com.sk89q.worldedit.world.DataException; +import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.chunk.AnvilChunk; import com.sk89q.worldedit.world.chunk.Chunk; import com.sk89q.worldedit.world.chunk.OldChunk; +import java.io.IOException; +import java.util.Map; + /** * Represents chunk storage mechanisms. * @@ -61,7 +65,7 @@ public abstract class ChunkStore { * @throws DataException * @throws IOException */ - public abstract CompoundTag getChunkTag(Vector2D pos, LocalWorld world) + public abstract CompoundTag getChunkTag(Vector2D pos, World world) throws DataException, IOException; /** @@ -73,8 +77,7 @@ public abstract class ChunkStore { * @throws IOException * @throws DataException */ - public Chunk getChunk(Vector2D pos, LocalWorld world) - throws DataException, IOException { + public Chunk getChunk(Vector2D pos, World world) throws DataException, IOException { CompoundTag tag = getChunkTag(pos, world); Map tags = tag.getValue(); diff --git a/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java b/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java index a9b8a6c50..3a4c73119 100644 --- a/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java +++ b/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java @@ -24,6 +24,7 @@ import com.sk89q.jnbt.NBTInputStream; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.*; import com.sk89q.worldedit.world.DataException; +import com.sk89q.worldedit.world.World; import java.io.File; import java.io.IOException; @@ -78,8 +79,7 @@ public abstract class LegacyChunkStore extends ChunkStore { * @throws IOException */ @Override - public CompoundTag getChunkTag(Vector2D pos, LocalWorld world) - throws DataException, IOException { + public CompoundTag getChunkTag(Vector2D pos, World world) throws DataException, IOException { int x = pos.getBlockX(); int z = pos.getBlockZ(); diff --git a/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java b/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java index 0718d57d3..4350c2060 100644 --- a/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java +++ b/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java @@ -19,15 +19,16 @@ package com.sk89q.worldedit.world.storage; -import java.io.IOException; -import java.io.InputStream; -import java.util.Map; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.NBTInputStream; import com.sk89q.jnbt.Tag; -import com.sk89q.worldedit.LocalWorld; import com.sk89q.worldedit.Vector2D; import com.sk89q.worldedit.world.DataException; +import com.sk89q.worldedit.world.World; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; public abstract class McRegionChunkStore extends ChunkStore { protected String curFilename = null; @@ -67,8 +68,7 @@ public abstract class McRegionChunkStore extends ChunkStore { } @Override - public CompoundTag getChunkTag(Vector2D pos, LocalWorld world) throws DataException, - IOException { + public CompoundTag getChunkTag(Vector2D pos, World world) throws DataException, IOException { McRegionReader reader = getReader(pos, world.getName());