From 048974dca5cafeb21a2cb2ceb16135d78fc60691 Mon Sep 17 00:00:00 2001 From: MattBDev <4009945+MattBDev@users.noreply.github.com> Date: Sun, 16 Feb 2020 15:14:34 -0500 Subject: [PATCH] Introduce Resettable interface --- .../main/java/com/boydti/fawe/Resettable.java | 6 ++ .../com/boydti/fawe/beta/IQueueWrapper.java | 2 +- .../queue/ParallelQueueExtent.java | 15 ++-- .../collection/LocalBlockVectorSet.java | 33 +++---- .../object/extent/MemoryCheckingExtent.java | 3 +- .../fawe/object/mask/ResettableMask.java | 6 +- .../fawe/object/pattern/PatternTraverser.java | 8 +- .../object/pattern/ResettablePattern.java | 6 +- .../boydti/fawe/util/EditSessionBuilder.java | 7 +- .../com/boydti/fawe/util/ExtentTraverser.java | 16 ++-- .../java/com/boydti/fawe/util/FaweTimer.java | 13 ++- .../com/boydti/fawe/util/TextureUtil.java | 1 + .../java/com/sk89q/worldedit/EditSession.java | 2 +- .../worldedit/command/RegionCommands.java | 5 +- .../worldedit/command/tool/BrushTool.java | 88 +++---------------- .../command/tool/LongRangeBuildTool.java | 20 ++--- .../worldedit/command/tool/QueryTool.java | 1 + .../command/tool/RecursivePickaxe.java | 1 + .../worldedit/command/tool/TreePlanter.java | 3 +- .../extension/platform/PlatformManager.java | 28 +++--- .../worldedit/extent/PassthroughExtent.java | 17 ---- 21 files changed, 100 insertions(+), 181 deletions(-) create mode 100644 worldedit-core/src/main/java/com/boydti/fawe/Resettable.java diff --git a/worldedit-core/src/main/java/com/boydti/fawe/Resettable.java b/worldedit-core/src/main/java/com/boydti/fawe/Resettable.java new file mode 100644 index 000000000..09b986edd --- /dev/null +++ b/worldedit-core/src/main/java/com/boydti/fawe/Resettable.java @@ -0,0 +1,6 @@ +package com.boydti.fawe; + +public interface Resettable { + + void reset(); +} diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueWrapper.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueWrapper.java index fe9ab65a2..41773b68e 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueWrapper.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueWrapper.java @@ -3,7 +3,7 @@ package com.boydti.fawe.beta; import com.boydti.fawe.beta.IQueueExtent; public interface IQueueWrapper { - default IQueueExtent wrapQueue(IQueueExtent queue) { + default IQueueExtent wrapQueue(IQueueExtent queue) { return queue; } } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/ParallelQueueExtent.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/ParallelQueueExtent.java index 3300a501a..8ba5ae97f 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/ParallelQueueExtent.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/ParallelQueueExtent.java @@ -1,6 +1,7 @@ package com.boydti.fawe.beta.implementation.queue; import com.boydti.fawe.FaweCache; +import com.boydti.fawe.beta.IQueueChunk; import com.boydti.fawe.beta.IQueueWrapper; import com.boydti.fawe.beta.implementation.filter.block.ChunkFilterBlock; import com.boydti.fawe.beta.Filter; @@ -64,12 +65,12 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap return false; } - private IQueueExtent getNewQueue() { + private IQueueExtent getNewQueue() { return wrapQueue(handler.getQueue(this.world, this.processor)); } @Override - public IQueueExtent wrapQueue(IQueueExtent queue) { + public IQueueExtent wrapQueue(IQueueExtent queue) { // TODO wrap queue.setProcessor(this.processor); return queue; @@ -91,22 +92,22 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap try { final Filter newFilter = filter.fork(); // Create a chunk that we will reuse/reset for each operation - final IQueueExtent queue = getNewQueue(); + final IQueueExtent queue = getNewQueue(); synchronized (queue) { ChunkFilterBlock block = null; while (true) { // Get the next chunk posWeakChunk - final int X, Z; + final int chunkX, chunkZ; synchronized (chunksIter) { if (!chunksIter.hasNext()) { break; } final BlockVector2 pos = chunksIter.next(); - X = pos.getX(); - Z = pos.getZ(); + chunkX = pos.getX(); + chunkZ = pos.getZ(); } - block = queue.apply(block, newFilter, region, X, Z, full); + block = queue.apply(block, newFilter, region, chunkX, chunkZ, full); } queue.flush(); } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/object/collection/LocalBlockVectorSet.java b/worldedit-core/src/main/java/com/boydti/fawe/object/collection/LocalBlockVectorSet.java index bc1388ab8..bcd4f23d0 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/object/collection/LocalBlockVectorSet.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/object/collection/LocalBlockVectorSet.java @@ -29,10 +29,6 @@ public class LocalBlockVectorSet implements Set { this.set = set; } - public SparseBitSet getBitSet() { - return set; - } - @Override public int size() { return set.cardinality(); @@ -69,10 +65,10 @@ public class LocalBlockVectorSet implements Set { if (size() < length * length * length) { int index = -1; while ((index = set.nextSetBit(index + 1)) != -1) { - int b1 = (index & 0xFF); - int b2 = ((byte) (index >> 8)) & 0x7F; - int b3 = ((byte) (index >> 15)) & 0xFF; - int b4 = ((byte) (index >> 23)) & 0xFF; + int b1 = (byte) (index >> 0) & 0xFF; + int b2 = (byte) (index >> 8) & 0x7F; + int b3 = (byte) (index >> 15) & 0xFF; + int b4 = (byte) (index >> 23) & 0xFF; if (Math.abs((offsetX + (((b3 + ((MathMan.unpair8x(b2)) << 8)) << 21) >> 21)) - x) <= radius && Math.abs((offsetZ + (((b4 + ((MathMan.unpair8y(b2)) << 8)) << 21) >> 21)) - z) <= radius && Math.abs((b1) - y) <= radius) { return true; } @@ -111,12 +107,12 @@ public class LocalBlockVectorSet implements Set { index = set.nextSetBit(index + 1); } if (index != -1) { - int b1 = (index & 0xFF); - int b2 = ((byte) (index >> 8)) & 0x7F; - int b3 = ((byte) (index >> 15)) & 0xFF; - int b4 = ((byte) (index >> 23)) & 0xFF; - int x = offsetX + (((b3 + ((MathMan.unpair8x(b2)) << 8)) << 21) >> 21); - int z = offsetZ + (((b4 + ((MathMan.unpair8y(b2)) << 8)) << 21) >> 21); + int b1 = (byte) (index >> 0) & 0xFF; + int b2 = (byte) (index >> 8) & 0x7F; + int b3 = (byte) (index >> 15) & 0xFF; + int b4 = (byte) (index >> 23) & 0xFF; + int x = offsetX + (((b3 + (MathMan.unpair8x(b2) << 8)) << 21) >> 21); + int z = offsetZ + (((b4 + (MathMan.unpair8y(b2) << 8)) << 21) >> 21); return MutableBlockVector3.get(x, b1, z); } return null; @@ -146,9 +142,9 @@ public class LocalBlockVectorSet implements Set { int b2 = ((byte) (index >> 8)) & 0x7F; int b3 = ((byte) (index >> 15)) & 0xFF; int b4 = ((byte) (index >> 23)) & 0xFF; - mutable.mutX(offsetX + (((b3 + ((MathMan.unpair8x(b2)) << 8)) << 21) >> 21)); + mutable.mutX(offsetX + (((b3 + (MathMan.unpair8x(b2) << 8)) << 21) >> 21)); mutable.mutY(b1); - mutable.mutZ(offsetZ + (((b4 + ((MathMan.unpair8y(b2)) << 8)) << 21) >> 21)); + mutable.mutZ(offsetZ + (((b4 + (MathMan.unpair8y(b2) << 8)) << 21) >> 21)); previous = index; index = set.nextSetBit(index + 1); return mutable; @@ -193,10 +189,7 @@ public class LocalBlockVectorSet implements Set { if (relX > 1023 || relX < -1024 || relZ > 1023 || relZ < -1024) { return false; } - if (y < 0 || y > 256) { - return false; - } - return true; + return y >= 0 && y <= 256; } public boolean add(int x, int y, int z) { diff --git a/worldedit-core/src/main/java/com/boydti/fawe/object/extent/MemoryCheckingExtent.java b/worldedit-core/src/main/java/com/boydti/fawe/object/extent/MemoryCheckingExtent.java index d5c309a1c..29f73f8cc 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/object/extent/MemoryCheckingExtent.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/object/extent/MemoryCheckingExtent.java @@ -21,7 +21,8 @@ public class MemoryCheckingExtent extends PassthroughExtent { public Extent getExtent() { if (MemUtil.isMemoryLimited()) { if (this.player != null) { - player.print(TranslatableComponent.of("fawe.cancel.worldedit.cancel.reason", (TranslatableComponent.of("fawe.cancel.worldedit.cancel.reason.low.memory")))); + player.print(TranslatableComponent.of("fawe.cancel.worldedit.cancel.reason", + TranslatableComponent.of("fawe.cancel.worldedit.cancel.reason.low.memory"))); if (Permission.hasPermission(this.player, "worldedit.fast")) { this.player.print(TranslatableComponent.of("fawe.info.worldedit.oom.admin")); } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/object/mask/ResettableMask.java b/worldedit-core/src/main/java/com/boydti/fawe/object/mask/ResettableMask.java index 67d9a00a1..1ee0dd538 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/object/mask/ResettableMask.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/object/mask/ResettableMask.java @@ -1,5 +1,9 @@ package com.boydti.fawe.object.mask; -public interface ResettableMask { +import com.boydti.fawe.Resettable; + +public interface ResettableMask extends Resettable { + + @Override void reset(); } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/PatternTraverser.java b/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/PatternTraverser.java index 2e4b701b5..833829536 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/PatternTraverser.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/PatternTraverser.java @@ -1,5 +1,6 @@ package com.boydti.fawe.object.pattern; +import com.boydti.fawe.Resettable; import com.boydti.fawe.object.mask.ResettableMask; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.Pattern; @@ -21,11 +22,8 @@ public class PatternTraverser { if (pattern == null) { return; } - if (pattern instanceof ResettablePattern) { - ((ResettablePattern) pattern).reset(); - } - if (pattern instanceof ResettableMask) { - ((ResettableMask) pattern).reset(); + if (pattern instanceof Resettable) { + ((Resettable) pattern).reset(); } Class current = pattern.getClass(); while (current.getSuperclass() != null) { diff --git a/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/ResettablePattern.java b/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/ResettablePattern.java index 359305141..17881717f 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/ResettablePattern.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/ResettablePattern.java @@ -1,5 +1,9 @@ package com.boydti.fawe.object.pattern; -public interface ResettablePattern { +import com.boydti.fawe.Resettable; + +public interface ResettablePattern extends Resettable { + + @Override void reset(); } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/util/EditSessionBuilder.java b/worldedit-core/src/main/java/com/boydti/fawe/util/EditSessionBuilder.java index 64a154486..b791bbcd6 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/util/EditSessionBuilder.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/util/EditSessionBuilder.java @@ -266,7 +266,6 @@ public class EditSessionBuilder { } private AbstractChangeSet changeTask; - private int maxY; private Extent bypassHistory; private Extent bypassAll; private Extent extent; @@ -409,7 +408,6 @@ public class EditSessionBuilder { allowedRegions = player.getCurrentRegions(); } } - this.maxY = world == null ? 255 : world.getMaxY(); FaweRegionExtent regionExtent = null; if (allowedRegions != null) { if (allowedRegions.length == 0) { @@ -423,7 +421,7 @@ public class EditSessionBuilder { } } } else { -// this.extent = new HeightBoundExtent(this.extent, this.limit, 0, maxY); +// this.extent = new HeightBoundExtent(this.extent, this.limit, 0, world.getMaxY()); } IBatchProcessor limitProcessor = regionExtent; if (limit != null && !limit.isUnlimited()) { @@ -495,7 +493,4 @@ public class EditSessionBuilder { return blockBag; } - public int getMaxY() { - return maxY; - } } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/util/ExtentTraverser.java b/worldedit-core/src/main/java/com/boydti/fawe/util/ExtentTraverser.java index 586c74aa1..6c7c06ce0 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/util/ExtentTraverser.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/util/ExtentTraverser.java @@ -4,16 +4,17 @@ import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; import java.lang.reflect.Field; +import org.jetbrains.annotations.NotNull; public class ExtentTraverser { - private T root; - private ExtentTraverser parent; + private final T root; + private final ExtentTraverser parent; - public ExtentTraverser(T root) { + public ExtentTraverser(@NotNull T root) { this(root, null); } - public ExtentTraverser(T root, ExtentTraverser parent) { + public ExtentTraverser(@NotNull T root, ExtentTraverser parent) { this.root = root; this.parent = parent; } @@ -61,7 +62,7 @@ public class ExtentTraverser { } public U findAndGet(Class clazz) { - ExtentTraverser traverser = find((Class) clazz); + ExtentTraverser traverser = find( clazz); return (traverser != null) ? (U) traverser.get() : null; } @@ -104,9 +105,8 @@ public class ExtentTraverser { public ExtentTraverser next() { try { if (root instanceof AbstractDelegateExtent) { - Field field = AbstractDelegateExtent.class.getDeclaredField("extent"); - field.setAccessible(true); - T value = (T) field.get(root); + AbstractDelegateExtent root = (AbstractDelegateExtent) this.root; + T value = (T) root.getExtent(); if (value == null) { return null; } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/util/FaweTimer.java b/worldedit-core/src/main/java/com/boydti/fawe/util/FaweTimer.java index 4b4a1b8f1..1a49f3ad9 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/util/FaweTimer.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/util/FaweTimer.java @@ -5,12 +5,12 @@ import java.util.Arrays; public class FaweTimer implements Runnable { private final double[] history = new double[]{20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d, 20d}; - private int historyIndex = 0; + private int historyIndex; private long lastPoll = System.currentTimeMillis(); private long tickStart = System.currentTimeMillis(); private final long tickInterval = 5; - private long tick = 0; - private long tickMod = 0; + private long tick; + private long tickMod; @Override public void run() { @@ -21,7 +21,7 @@ public class FaweTimer implements Runnable { } else { return; } - long timeSpent = (tickStart - lastPoll); + long timeSpent = tickStart - lastPoll; if (timeSpent == 0) { timeSpent = 1; } @@ -34,15 +34,14 @@ public class FaweTimer implements Runnable { lastPoll = tickStart; } - private long lastGetTPSTick = 0; + private long lastGetTPSTick; private double lastGetTPSValue = 20d; public double getTPS() { if (tick < lastGetTPSTick + tickInterval) { return lastGetTPSValue; } - double total = 0; - for (double v : history) total += v; + double total = Arrays.stream(history).sum(); lastGetTPSValue = total / history.length; lastGetTPSTick = tick; return lastGetTPSValue; diff --git a/worldedit-core/src/main/java/com/boydti/fawe/util/TextureUtil.java b/worldedit-core/src/main/java/com/boydti/fawe/util/TextureUtil.java index 41d193a3a..40609ff24 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/util/TextureUtil.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/util/TextureUtil.java @@ -9,6 +9,7 @@ import com.boydti.fawe.util.image.ImageUtil; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; +import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java index 94b1813b5..4e4e9f333 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -255,7 +255,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { this.limit = builder.getLimit().copy(); this.player = builder.getPlayer(); this.changeSet = builder.getChangeTask(); - this.maxY = builder.getMaxY(); + this.maxY = world.getMaxY(); this.blockBag = builder.getBlockBag(); this.history = changeSet != null; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java index 56e81e526..d820bd4ee 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java @@ -97,9 +97,8 @@ public class RegionCommands { } @Command( - name = "/set", - aliases = {"/"}, - desc = "Sets all the blocks in the region" + name = "/set", + desc = "Sets all the blocks in the region" ) @CommandPermissions("worldedit.region.set") @Logging(REGION) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java index a52ed7f95..529580d35 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java @@ -20,7 +20,6 @@ package com.sk89q.worldedit.command.tool; import static com.google.common.base.Preconditions.checkNotNull; -import static org.slf4j.LoggerFactory.getLogger; import com.boydti.fawe.Fawe; import com.boydti.fawe.beta.implementation.IChunkExtent; @@ -45,8 +44,6 @@ import com.boydti.fawe.util.ExtentTraverser; import com.boydti.fawe.util.MaskTraverser; import com.boydti.fawe.util.StringMan; import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.sk89q.minecraft.util.commands.CommandException; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; @@ -56,7 +53,6 @@ import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.command.tool.brush.Brush; import com.sk89q.worldedit.entity.Player; -import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extent.inventory.BlockBag; @@ -74,11 +70,9 @@ import com.sk89q.worldedit.world.block.BlockType; import java.io.IOException; import java.io.ObjectInputStream; import java.io.Serializable; -import java.lang.reflect.Type; import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.Map; import java.util.function.Supplier; import javax.annotation.Nullable; @@ -114,7 +108,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Construct the tool. - * + * * @param permission the permission to check before use is allowed */ public BrushTool(String permission) { @@ -125,40 +119,6 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool public BrushTool() { } - // TODO: Ping @MattBDev to reimplement 2020-02-04 -// public static BrushTool fromString(Player player, LocalSession session, String json) throws CommandException, InputParseException { -// Gson gson = new Gson(); -// Type type = new TypeToken>() { -// }.getType(); -// Map root = gson.fromJson(json, type); -// if (root == null) { -// getLogger(BrushTool.class).debug("Failed to load " + json); -// return new BrushTool(); -// } -// Map primary = (Map) root.get("primary"); -// Map secondary = (Map) root.getOrDefault("secondary", primary); -// -// VisualMode visual = VisualMode.valueOf((String) root.getOrDefault("visual", "NONE")); -// TargetMode target = TargetMode.valueOf((String) root.getOrDefault("target", "TARGET_BLOCK_RANGE")); -// int range = ((Number) root.getOrDefault("range", -1)).intValue(); -// int offset = ((Number) root.getOrDefault("offset", 0)).intValue(); -// -// BrushTool tool = new BrushTool(); -// tool.visualMode = visual; -// tool.targetMode = target; -// tool.range = range; -// tool.targetOffset = offset; -// -// BrushSettings primarySettings = BrushSettings.get(tool, player, session, primary); -// tool.setPrimary(primarySettings); -// if (primary != secondary) { -// BrushSettings secondarySettings = BrushSettings.get(tool, player, session, secondary); -// tool.setSecondary(secondarySettings); -// } -// -// return tool; -// } - public void setHolder(BaseItem holder) { this.holder = holder; } @@ -166,33 +126,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool public boolean isSet() { return primary.getBrush() != null || secondary.getBrush() != null; } - - @Override - public String toString() { - return toString(new Gson()); - } - - public String toString(Gson gson) { - HashMap map = new HashMap<>(); - map.put("primary", primary.getSettings()); - if (primary != secondary) { - map.put("secondary", secondary.getSettings()); - } - if (visualMode != null && visualMode != VisualMode.NONE) { - map.put("visual", visualMode); - } - if (targetMode != TargetMode.TARGET_BLOCK_RANGE) { - map.put("target", targetMode); - } - if (range != -1 && range != DEFAULT_RANGE) { - map.put("range", range); - } - if (targetOffset != 0) { - map.put("offset", targetOffset); - } - return gson.toJson(map); - } - + public void update() { if (holder != null) { BrushCache.setTool(holder, this); @@ -276,7 +210,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Get the filter. - * + * * @return the filter */ public Mask getMask() { @@ -304,7 +238,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Set the block filter used for identifying blocks to replace. - * + * * @param filter the filter to set */ public void setMask(Mask filter) { @@ -343,7 +277,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Set the brush. - * + * * @param brush tbe brush * @param permission the permission */ @@ -357,7 +291,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Get the current brush. - * + * @return the current brush */ public Brush getBrush() { @@ -366,7 +300,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Set the material. - * + * * @param material the material */ public void setFill(@Nullable Pattern material) { @@ -384,7 +318,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Get the set brush size. - * + * * @return a radius */ public double getSize() { @@ -393,7 +327,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Set the set brush size. - * + * * @param radius a radius */ public void setSize(double radius) { @@ -411,7 +345,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Get the set brush range. - * + * * @return the range of the brush in blocks */ public int getRange() { @@ -420,7 +354,7 @@ public class BrushTool implements DoubleActionTraceTool, ScrollTool, MovableTool /** * Set the set brush range. - * + * * @param range the range of the brush in blocks */ public void setRange(int range) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java index 29475bda3..11532d04a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java @@ -62,11 +62,11 @@ public class LongRangeBuildTool extends BrushTool implements DoubleActionTraceTo try (EditSession editSession = session.createEditSession(player, "LongRangeBuildTool")) { try { editSession.disableBuffering(); - BlockVector3 blockPoint = pos.toVector().toBlockPoint(); - BaseBlock applied = secondary.apply(blockPoint); - if (applied.getBlockType().getMaterial().isAir()) { + BlockVector3 blockPoint = pos.toVector().toBlockPoint(); + BaseBlock applied = secondary.apply(blockPoint); + if (applied.getBlockType().getMaterial().isAir()) { editSession.setBlock(blockPoint, secondary); - } else { + } else { editSession.setBlock(pos.toVector().subtract(pos.getDirection()).toBlockPoint(), secondary); } } catch (MaxChangedBlocksException ignored) { @@ -76,8 +76,8 @@ public class LongRangeBuildTool extends BrushTool implements DoubleActionTraceTo } finally { if (bag != null) { bag.flushChanges(); + } } - } return true; } @@ -90,11 +90,11 @@ public class LongRangeBuildTool extends BrushTool implements DoubleActionTraceTo try (EditSession editSession = session.createEditSession(player, "LongRangeBuildTool")) { try { editSession.disableBuffering(); - BlockVector3 blockPoint = pos.toVector().toBlockPoint(); - BaseBlock applied = primary.apply(blockPoint); - if (applied.getBlockType().getMaterial().isAir()) { + BlockVector3 blockPoint = pos.toVector().toBlockPoint(); + BaseBlock applied = primary.apply(blockPoint); + if (applied.getBlockType().getMaterial().isAir()) { editSession.setBlock(blockPoint, primary); - } else { + } else { editSession.setBlock(pos.toVector().subtract(pos.getDirection()).toBlockPoint(), primary); } } catch (MaxChangedBlocksException ignored) { @@ -104,8 +104,8 @@ public class LongRangeBuildTool extends BrushTool implements DoubleActionTraceTo } finally { if (bag != null) { bag.flushChanges(); + } } - } return true; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java index b05c0376b..b02dcd95b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java @@ -71,6 +71,7 @@ public class QueryTool implements BlockTool { builder.append(TextComponent.of(" (" + legacy[0] + ":" + legacy[1] + ") ", TextColor.DARK_GRAY) .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TranslatableComponent.of("worldedit.tool.info.legacy.hover")))); } + builder.append(TextComponent.of(" (" + world.getBlockLightLevel(blockPoint) + "/" + world.getBlockLightLevel(blockPoint.add(0, 1, 0)) + ")", TextColor.WHITE) .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TranslatableComponent.of("worldedit.tool.info.light.hover")))); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java index e3dcf1d92..5ad798663 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java @@ -120,4 +120,5 @@ public class RecursivePickaxe implements BlockTool { recurse(server, editSession, world, pos.add(0, -1, 0), origin, size, initialType, visited); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java index 6febe4cf4..4eaed7f4f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.command.tool; -import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; - import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; @@ -31,6 +29,7 @@ import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.TreeGenerator; +import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; /** * Plants a tree. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java index 12de47f9a..431711d07 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java @@ -328,12 +328,12 @@ public class PlatformManager { if (!(actor instanceof Player)) { return; } - Player player = (Player) actor; - LocalSession session = worldEdit.getSessionManager().get(actor); + Player player = (Player) actor; + LocalSession session = worldEdit.getSessionManager().get(actor); - Request.reset(); - Request.request().setSession(session); - Request.request().setWorld(player.getWorld()); + Request.reset(); + Request.request().setSession(session); + Request.request().setWorld(player.getWorld()); try { Vector3 vector = location.toVector(); @@ -348,19 +348,19 @@ public class PlatformManager { // superpickaxe is special because its primary interaction is a left click, not a right click // in addition, it is implicitly bound to all pickaxe items, not just a single tool item if (session.hasSuperPickAxe() && player.isHoldingPickAxe()) { - final BlockTool superPickaxe = session.getSuperPickaxe(); - if (superPickaxe != null && superPickaxe.canUse(player)) { + final BlockTool superPickaxe = session.getSuperPickaxe(); + if (superPickaxe != null && superPickaxe.canUse(player)) { player.runAction(() -> reset(superPickaxe) .actPrimary(queryCapability(Capability.WORLD_EDITING), getConfiguration(), player, session, location), false, true); - event.setCancelled(true); - return; - } + event.setCancelled(true); + return; } + } Tool tool = session.getTool(player); if (tool instanceof DoubleActionBlockTool && tool.canUse(player)) { - player.runAction(() -> reset(((DoubleActionBlockTool) tool)) + player.runAction(() -> reset((DoubleActionBlockTool) tool) .actSecondary(queryCapability(Capability.WORLD_EDITING), getConfiguration(), player, session, location), false, true); event.setCancelled(true); @@ -384,10 +384,10 @@ public class PlatformManager { } } catch (Throwable e) { handleThrowable(e, actor); - } finally { - Request.reset(); - } + } finally { + Request.reset(); } + } public void handleThrowable(Throwable e, Actor actor) { FaweException faweException = FaweException.get(e); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/PassthroughExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/PassthroughExtent.java index fe3c19cde..14d8ba7d0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/PassthroughExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/PassthroughExtent.java @@ -1,8 +1,6 @@ package com.sk89q.worldedit.extent; import com.boydti.fawe.beta.Filter; -import com.boydti.fawe.beta.IBatchProcessor; -import com.boydti.fawe.object.changeset.AbstractChangeSet; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEditException; @@ -209,21 +207,6 @@ public class PassthroughExtent extends AbstractDelegateExtent { return getExtent().setBiome(position, biome); } - // special - @Override - public Extent disableHistory() { - return super.disableHistory(); - } - - @Override - public Extent addProcessor(IBatchProcessor processor) { - return super.addProcessor(processor); - } - - public Extent enableHistory(AbstractChangeSet changeSet) { - return super.enableHistory(changeSet); - } - @Override @Nullable public Operation commit() {