diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/GriefPreventionFilter.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/GriefPreventionFilter.java index 7b16a5e18..6962afdff 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/GriefPreventionFilter.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/GriefPreventionFilter.java @@ -20,12 +20,8 @@ public class GriefPreventionFilter extends CuboidRegionFilter { public GriefPreventionFilter(World world) { checkNotNull(world); - this.claims = TaskManager.IMP.sync(new Supplier>() { - @Override - public Collection get() { - return new ArrayDeque<>(GriefPrevention.instance.dataStore.getClaims()); - } - }); + this.claims = TaskManager.IMP.sync( + (Supplier>) () -> new ArrayDeque<>(GriefPrevention.instance.dataStore.getClaims())); this.world = world; } diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/WorldGuardFilter.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/WorldGuardFilter.java index ac1dea0a5..bcf5f9253 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/WorldGuardFilter.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/filter/WorldGuardFilter.java @@ -8,6 +8,7 @@ import com.boydti.fawe.FaweAPI; import com.boydti.fawe.object.RunnableVal; import com.boydti.fawe.regions.general.CuboidRegionFilter; import com.boydti.fawe.util.TaskManager; +import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.protection.ApplicableRegionSet; @@ -28,7 +29,8 @@ public class WorldGuardFilter extends CuboidRegionFilter { @Override public void calculateRegions() { Fawe.get().getQueueHandler().sync(() -> { - WorldGuardFilter.this.manager = WorldGuard.getInstance().getPlatform().getRegionContainer().get(FaweAPI.getWorld(world.getName())); + WorldGuardFilter.this.manager = WorldGuard.getInstance().getPlatform().getRegionContainer().get( + BukkitAdapter.adapt(world)); for (ProtectedRegion region : manager.getRegions().values()) { BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/BukkitMaskManager.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/BukkitMaskManager.java index 95a31d98e..02c9d69d7 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/BukkitMaskManager.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/BukkitMaskManager.java @@ -2,6 +2,7 @@ package com.boydti.fawe.bukkit.regions; import com.boydti.fawe.regions.FaweMaskManager; import org.bukkit.entity.Player; +import org.bukkit.permissions.Permissible; public abstract class BukkitMaskManager extends FaweMaskManager { @@ -9,7 +10,7 @@ public abstract class BukkitMaskManager extends FaweMaskManager { super(plugin); } - public boolean hasMemberPermission(Player player) { + public boolean hasMemberPermission(Permissible player) { return player.hasPermission("fawe." + getKey() + ".member"); } } diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/ResidenceFeature.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/ResidenceFeature.java index cbfe33b3b..0bb3811a0 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/ResidenceFeature.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/ResidenceFeature.java @@ -12,8 +12,8 @@ import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; public class ResidenceFeature extends BukkitMaskManager implements Listener { - FaweBukkit plugin; - Plugin residence; + private FaweBukkit plugin; + private Plugin residence; public ResidenceFeature(final Plugin residencePlugin, final FaweBukkit p3) { super(residencePlugin.getName()); diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/TownyFeature.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/TownyFeature.java index cb22c2ea9..4ae7ff7e7 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/TownyFeature.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/TownyFeature.java @@ -19,7 +19,7 @@ import org.bukkit.plugin.Plugin; public class TownyFeature extends BukkitMaskManager implements Listener { - private Plugin towny; + private final Plugin towny; public TownyFeature(Plugin townyPlugin) { super(townyPlugin.getName()); diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/Worldguard.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/Worldguard.java index 24aa6f97f..d415aae11 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/Worldguard.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/Worldguard.java @@ -27,7 +27,7 @@ import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; public class Worldguard extends BukkitMaskManager implements Listener { - private WorldGuardPlugin worldguard; + private final WorldGuardPlugin worldguard; private WorldGuardPlugin getWorldGuard() { final Plugin plugin = Bukkit.getPluginManager().getPlugin("WorldGuard"); diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/WorldguardFlag.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/WorldguardFlag.java index 3df502263..62391f1c6 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/WorldguardFlag.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/regions/WorldguardFlag.java @@ -21,7 +21,7 @@ import org.bukkit.plugin.Plugin; public class WorldguardFlag extends BukkitMaskManager implements Listener { - private WorldGuardPlugin worldguard; + private final WorldGuardPlugin worldguard; public WorldguardFlag(Plugin plugin) { super("worldguardflag"); diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/util/BukkitReflectionUtils.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/util/BukkitReflectionUtils.java index 43a1d5968..d62e54853 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/util/BukkitReflectionUtils.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/util/BukkitReflectionUtils.java @@ -30,7 +30,7 @@ public class BukkitReflectionUtils { try { final Method getHandle = bukkitServerClass.getDeclaredMethod("getHandle"); final Object handle = getHandle.invoke(server); - final Class handleServerClass = handle.getClass(); + final Class handleServerClass = handle.getClass(); pas = handleServerClass.getName().split("\\."); if (pas.length == 5) { final String verM = pas[3]; diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncDataContainer.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncDataContainer.java index e2bc8ce64..f79e57190 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncDataContainer.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncDataContainer.java @@ -1,22 +1,15 @@ package com.boydti.fawe.bukkit.wrapper.state; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Objects; -import java.util.Map.Entry; - import com.boydti.fawe.FaweCache; import com.boydti.fawe.util.ReflectionUtils; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; -import net.minecraft.server.v1_14_R1.NBTBase; -import net.minecraft.server.v1_14_R1.NBTTagCompound; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; import org.apache.commons.lang.Validate; import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_14_R1.persistence.CraftPersistentDataAdapterContext; -import org.bukkit.craftbukkit.v1_14_R1.persistence.CraftPersistentDataTypeRegistry; import org.bukkit.persistence.PersistentDataAdapterContext; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java index b3bde9636..f9b7aaee7 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java @@ -45,7 +45,7 @@ public class AsyncSign extends AsyncBlockState implements Sign { private String toJson(String oldInput) { if (oldInput == null || oldInput.isEmpty()) return ""; - return LegacyComponentSerializer.INSTANCE.serialize(TextComponent.of(oldInput)); + return LegacyComponentSerializer.legacy().serialize(TextComponent.of(oldInput)); } @Override diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/IChunkCache.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/IChunkCache.java index 389b95ed4..4abf96c75 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/IChunkCache.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/IChunkCache.java @@ -1,11 +1,13 @@ package com.boydti.fawe.beta; +import org.jetbrains.annotations.Range; + /** * IGetBlocks may be cached by the WorldChunkCache so that it can be used between multiple * IQueueExtents - avoids conversion between a palette and raw data on every block get */ public interface IChunkCache extends Trimable { - T get(int chunkX, int chunkZ); + T get(@Range(from = 0, to = 15) int chunkX, @Range(from = 0, to = 15) int chunkZ); @Override default boolean trim(boolean aggressive) { diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueExtent.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueExtent.java index 8a5a2c2e5..a3e74a806 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueExtent.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/IQueueExtent.java @@ -13,6 +13,7 @@ import java.io.Flushable; import java.util.Set; import java.util.concurrent.Future; import javax.annotation.Nullable; +import org.jetbrains.annotations.Range; /** * TODO: implement Extent (need to refactor Extent first) Interface for a queue based extent which @@ -53,15 +54,15 @@ public interface IQueueExtent extends Flushable, Trimable, ICh * @param z * @return */ - IChunkGet getCachedGet(int x, int z); + IChunkGet getCachedGet(@Range(from = 0, to = 15) int x, @Range(from = 0, to = 15) int z); /** * Get the cached chunk set object - * @param x - * @param z + * @param chunkX + * @param chunkZ * @return */ - IChunkSet getCachedSet(int x, int z); + IChunkSet getCachedSet(@Range(from = 0, to = 15) int chunkX, @Range(from = 0, to = 15) int chunkZ); /** * Submit the chunk so that it's changes are applied to the world diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/chunk/ChunkHolder.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/chunk/ChunkHolder.java index 42adcb485..aa5d3e2b5 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/chunk/ChunkHolder.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/chunk/ChunkHolder.java @@ -105,7 +105,7 @@ public class ChunkHolder> implements IQueueChunk { return delegate.get(this).getEntity(uuid); } - public static final IBlockDelegate BOTH = new IBlockDelegate() { + private static final IBlockDelegate BOTH = new IBlockDelegate() { @Override public IChunkGet get(ChunkHolder chunk) { return chunk.chunkExisting; @@ -144,7 +144,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.chunkExisting.getFullBlock(x, y, z); } }; - public static final IBlockDelegate GET = new IBlockDelegate() { + + private static final IBlockDelegate GET = new IBlockDelegate() { @Override public IChunkGet get(ChunkHolder chunk) { return chunk.chunkExisting; @@ -189,7 +190,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.chunkExisting.getFullBlock(x, y, z); } }; - public static final IBlockDelegate SET = new IBlockDelegate() { + + private static final IBlockDelegate SET = new IBlockDelegate() { @Override public IChunkGet get(ChunkHolder chunk) { chunk.getOrCreateGet(); @@ -235,7 +237,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.getFullBlock(x, y, z); } }; - public static final IBlockDelegate NULL = new IBlockDelegate() { + + private static final IBlockDelegate NULL = new IBlockDelegate() { @Override public IChunkGet get(ChunkHolder chunk) { chunk.getOrCreateGet(); @@ -287,11 +290,6 @@ public class ChunkHolder> implements IQueueChunk { } }; -// @Override -// public void flood(Flood flood, FilterBlockMask mask, ChunkFilterBlock block) { -//// block.flood(get, set, mask, block, ); -// } - @Override public Map getTiles() { return delegate.get(this).getTiles(); diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/filter/block/CharFilterBlock.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/filter/block/CharFilterBlock.java index 7fa28bbfe..e01880fb8 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/filter/block/CharFilterBlock.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/filter/block/CharFilterBlock.java @@ -23,27 +23,17 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; import com.sk89q.worldedit.world.registry.BlockMaterial; import javax.annotation.Nullable; +import org.jetbrains.annotations.NotNull; public class CharFilterBlock extends ChunkFilterBlock { - private static final SetDelegate FULL = new SetDelegate() { - @Override - public final void set(CharFilterBlock block, char value) { - block.setArr[block.index] = value; - } - }; - private static final SetDelegate NULL = new SetDelegate() { - @Override - public void set(CharFilterBlock block, char value) { - block.initSet().set(block, value); - } - }; + private static final SetDelegate FULL = (block, value) -> block.setArr[block.index] = value; + private static final SetDelegate NULL = (block, value) -> block.initSet().set(block, value); private CharGetBlocks get; private IChunkSet set; private char[] getArr; - private @Nullable - char[] setArr; + private @Nullable char[] setArr; private SetDelegate delegate; // local private int layer, index, x, y, z, xx, yy, zz, chunkX, chunkZ; @@ -65,11 +55,10 @@ public class CharFilterBlock extends ChunkFilterBlock { public final ChunkFilterBlock initLayer(IBlocks iget, IChunkSet iset, int layer) { this.get = (CharGetBlocks) iget; this.layer = layer; - final IBlocks get = (CharGetBlocks) iget; - if (!get.hasSection(layer)) { + if (!iget.hasSection(layer)) { getArr = FaweCache.IMP.EMPTY_CHAR_4096; } else { - getArr = get.load(layer); + getArr = iget.load(layer); } this.set = iset; if (set.hasSection(layer)) { @@ -445,6 +434,6 @@ public class CharFilterBlock extends ChunkFilterBlock { private interface SetDelegate { - void set(CharFilterBlock block, char value); + void set(@NotNull CharFilterBlock block, char value); } } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/SingleThreadQueueExtent.java b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/SingleThreadQueueExtent.java index 79e690de6..4a4283255 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/SingleThreadQueueExtent.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/beta/implementation/queue/SingleThreadQueueExtent.java @@ -72,13 +72,13 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen } @Override - public IChunkGet getCachedGet(int x, int z) { - return cacheGet.get(x, z); + public IChunkGet getCachedGet(int chunkX, int chunkZ) { + return cacheGet.get(chunkX, chunkZ); } @Override - public IChunkSet getCachedSet(int x, int z) { - return cacheSet.get(x, z); + public IChunkSet getCachedSet(int chunkX, int chunkZ) { + return cacheSet.get(chunkX, chunkZ); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index 3e40330f2..8e0f79881 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -94,6 +94,7 @@ import java.util.Map; import java.util.TimeZone; import java.util.UUID; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collectors; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -335,7 +336,7 @@ public class LocalSession implements TextureHolder { } public List getHistory() { - return Lists.transform(history, this::getChangeSet); + return history.stream().map(this::getChangeSet).collect(Collectors.toList()); } public boolean save() { 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 56437fcb9..a4219c312 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 @@ -111,9 +111,6 @@ public class RegionCommands { int affected = editSession.setBlocks(region, pattern); if (affected != 0) { actor.printInfo(TranslatableComponent.of("worldedit.set.done")); - if (!actor.hasPermission("fawe.tips")) - System.out.println("TODO FIXME TIPS"); -// TranslatableComponent.of("fawe.tips.tip.fast").or(TranslatableComponent.of("fawe.tips.tip.cancel"), TranslatableComponent.of("fawe.tips.tip.mask"), TranslatableComponent.of("fawe.tips.tip.mask.angle"), TranslatableComponent.of("fawe.tips.tip.set.linear"), TranslatableComponent.of("fawe.tips.tip.surface.spread"), TranslatableComponent.of("fawe.tips.tip.set.hand")).send(actor); } return affected; } @@ -424,7 +421,7 @@ public class RegionCommands { if (volume >= limit.MAX_CHECKS) { throw FaweCache.MAX_CHECKS; } - int affected = 0; + int affected; try { HeightMap heightMap = new HeightMap(editSession, region, mask, snow); HeightMapFilter filter = new HeightMapFilter(new GaussianKernel(5, 1.0)); @@ -609,9 +606,7 @@ public class RegionCommands { @Logging(REGION) @Confirm(Confirm.Processor.REGION) public void regenerateChunk(Actor actor, World world, LocalSession session, - EditSession editSession, @Selection Region region, - @Arg(def = "", desc = "Regenerate with biome") BiomeType biome, - @Arg(def = "", desc = "Regenerate with seed") Long seed) throws WorldEditException { + EditSession editSession, @Selection Region region) throws WorldEditException { Mask mask = session.getMask(); boolean success; try { @@ -702,6 +697,7 @@ public class RegionCommands { @ArgFlag(name = 'm', desc = "Mask to hollow with") Mask mask) throws WorldEditException { checkCommandArgument(thickness >= 0, "Thickness must be >= 0"); Mask finalMask = mask == null ? new SolidBlockMask(editSession) : mask; + int affected = editSession.hollowOutRegion(region, thickness, pattern, finalMask); actor.printInfo(TranslatableComponent.of("worldedit.hollow.changed", TextComponent.of(affected))); return affected;