Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-11-08 04:20:06 +01:00
Update from sk89q/master
Dieser Commit ist enthalten in:
Commit
b24d322d29
@ -55,6 +55,7 @@ import javax.annotation.Nullable;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.stream.Collectors;
|
||||
@ -87,6 +88,20 @@ public final class Spigot_v1_13_R2 extends CachedBukkitAdapter implements Bukkit
|
||||
nbtCreateTagMethod.setAccessible(true);
|
||||
}
|
||||
|
||||
private int[] idbToStateOrdinal;
|
||||
|
||||
private boolean init() {
|
||||
if (idbToStateOrdinal != null) return false;
|
||||
idbToStateOrdinal = new int[Block.REGISTRY_ID.a()]; // size
|
||||
for (int i = 0; i < idbToStateOrdinal.length; i++) {
|
||||
BlockState state = BlockTypes.states[i];
|
||||
BlockMaterial_1_13 material = (BlockMaterial_1_13) state.getMaterial();
|
||||
int id = Block.REGISTRY_ID.getId(material.getState());
|
||||
idbToStateOrdinal[id] = state.getOrdinal();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the given NBT data into the given tile entity.
|
||||
*
|
||||
@ -492,20 +507,6 @@ public final class Spigot_v1_13_R2 extends CachedBukkitAdapter implements Bukkit
|
||||
}
|
||||
}
|
||||
|
||||
private int[] idbToStateOrdinal;
|
||||
|
||||
private boolean init() {
|
||||
if (idbToStateOrdinal != null) return false;
|
||||
idbToStateOrdinal = new int[Block.REGISTRY_ID.a()]; // size
|
||||
for (int i = 0; i < idbToStateOrdinal.length; i++) {
|
||||
BlockState state = BlockTypes.states[i];
|
||||
BlockMaterial_1_13 material = (BlockMaterial_1_13) state.getMaterial();
|
||||
int id = Block.REGISTRY_ID.getId(material.getState());
|
||||
idbToStateOrdinal[id] = state.getOrdinal();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState adapt(BlockData blockData) {
|
||||
try {
|
||||
|
@ -2,6 +2,7 @@ package com.boydti.fawe.bukkit.v0;
|
||||
|
||||
import com.boydti.fawe.Fawe;
|
||||
import com.boydti.fawe.FaweCache;
|
||||
import com.boydti.fawe.config.Settings;
|
||||
import com.boydti.fawe.example.IntFaweChunk;
|
||||
import com.boydti.fawe.object.FaweChunk;
|
||||
import com.boydti.fawe.object.FaweQueue;
|
||||
@ -92,9 +93,9 @@ public class BukkitChunk_All extends IntFaweChunk<Chunk, BukkitQueue_All> {
|
||||
@Override
|
||||
public FaweChunk call() {
|
||||
long start = System.currentTimeMillis();
|
||||
int recommended = 25 + BukkitQueue_All.ALLOCATE;
|
||||
int recommended = 25 + Settings.IMP.QUEUE.EXTRA_TIME_MS;
|
||||
boolean more = true;
|
||||
final BukkitQueue_All parent = (BukkitQueue_All) getParent();
|
||||
final BukkitQueue_All parent = getParent();
|
||||
BukkitImplAdapter adapter = BukkitQueue_0.getAdapter();
|
||||
final Chunk chunk = getChunk();
|
||||
Object[] disableResult = parent.disableLighting(chunk);
|
||||
@ -183,8 +184,6 @@ public class BukkitChunk_All extends IntFaweChunk<Chunk, BukkitQueue_All> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else if (index != 0) {
|
||||
if (place) {
|
||||
layer--;
|
||||
@ -336,7 +335,7 @@ public class BukkitChunk_All extends IntFaweChunk<Chunk, BukkitQueue_All> {
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (checkTime && System.currentTimeMillis() - start > recommended) {
|
||||
if (System.currentTimeMillis() - start > recommended) {
|
||||
index++;
|
||||
break mainloop;
|
||||
}
|
||||
|
@ -33,27 +33,18 @@ import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class BukkitQueue_All extends BukkitQueue_0<ChunkSnapshot, ChunkSnapshot, ChunkSnapshot> {
|
||||
|
||||
public static int ALLOCATE;
|
||||
private ConcurrentMap<Long, ChunkSnapshot> chunkCache = new MapMaker()
|
||||
.weakValues()
|
||||
.makeMap();
|
||||
|
||||
public BukkitQueue_All(com.sk89q.worldedit.world.World world) {
|
||||
super(world);
|
||||
if (Settings.IMP.QUEUE.EXTRA_TIME_MS != Integer.MIN_VALUE) {
|
||||
ALLOCATE = Settings.IMP.QUEUE.EXTRA_TIME_MS;
|
||||
Settings.IMP.QUEUE.EXTRA_TIME_MS = Integer.MIN_VALUE;
|
||||
Settings.IMP.QUEUE.PARALLEL_THREADS = 1;
|
||||
}
|
||||
Settings.IMP.QUEUE.PARALLEL_THREADS = 1;
|
||||
}
|
||||
|
||||
public BukkitQueue_All(String world) {
|
||||
super(world);
|
||||
if (Settings.IMP.QUEUE.EXTRA_TIME_MS != Integer.MIN_VALUE) {
|
||||
ALLOCATE = Settings.IMP.QUEUE.EXTRA_TIME_MS;
|
||||
Settings.IMP.QUEUE.EXTRA_TIME_MS = Integer.MIN_VALUE;
|
||||
Settings.IMP.QUEUE.PARALLEL_THREADS = 1;
|
||||
}
|
||||
Settings.IMP.QUEUE.PARALLEL_THREADS = 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -19,16 +19,12 @@
|
||||
|
||||
package com.sk89q.worldedit.bukkit;
|
||||
|
||||
import com.bekvon.bukkit.residence.commands.material;
|
||||
import com.sk89q.worldedit.NotABlockException;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.WorldEdit;
|
||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
||||
import com.sk89q.worldedit.bukkit.adapter.IBukkitAdapter;
|
||||
import com.sk89q.worldedit.bukkit.adapter.SimpleBukkitAdapter;
|
||||
import com.sk89q.worldedit.entity.Entity;
|
||||
import com.sk89q.worldedit.extension.input.ParserContext;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
@ -36,18 +32,13 @@ import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.world.entity.EntityType;
|
||||
import com.sk89q.worldedit.world.entity.EntityTypes;
|
||||
import com.sk89q.worldedit.world.gamemode.GameMode;
|
||||
import com.sk89q.worldedit.world.gamemode.GameModes;
|
||||
import com.sk89q.worldedit.world.item.ItemType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
/**
|
||||
* Adapts between Bukkit and WorldEdit equivalent objects.
|
||||
*/
|
||||
|
@ -20,9 +20,9 @@
|
||||
package com.sk89q.worldedit.bukkit;
|
||||
|
||||
import com.sk89q.worldedit.entity.metadata.EntityProperties;
|
||||
import com.sk89q.worldedit.util.Enums;
|
||||
import org.bukkit.entity.Ambient;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.ArmorStand;
|
||||
import org.bukkit.entity.Boat;
|
||||
import org.bukkit.entity.ComplexEntityPart;
|
||||
import org.bukkit.entity.Entity;
|
||||
@ -46,9 +46,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
class BukkitEntityProperties implements EntityProperties {
|
||||
|
||||
private static final org.bukkit.entity.EntityType armorStandType =
|
||||
Enums.findByValue(org.bukkit.entity.EntityType.class, "ARMOR_STAND");
|
||||
|
||||
private final Entity entity;
|
||||
|
||||
BukkitEntityProperties(Entity entity) {
|
||||
@ -143,7 +140,7 @@ class BukkitEntityProperties implements EntityProperties {
|
||||
|
||||
@Override
|
||||
public boolean isArmorStand() {
|
||||
return entity.getType() == armorStandType;
|
||||
return entity instanceof ArmorStand;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -22,10 +22,8 @@ package com.sk89q.worldedit.bukkit;
|
||||
import com.sk89q.worldedit.blocks.BaseItem;
|
||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||
import com.sk89q.worldedit.extent.inventory.*;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
@ -153,11 +153,10 @@ public class WorldEditPlugin extends JavaPlugin //implements TabCompleter
|
||||
|
||||
WorldEdit worldEdit = WorldEdit.getInstance();
|
||||
|
||||
loadAdapter(); // Need an adapter to work with special blocks with NBT data
|
||||
|
||||
// Setup platform
|
||||
server = new BukkitServerInterface(this, getServer());
|
||||
worldEdit.getPlatformManager().register(server);
|
||||
loadAdapter(); // Need an adapter to work with special blocks with NBT data
|
||||
worldEdit.loadMappings();
|
||||
|
||||
loadConfig(); // Load configuration
|
||||
|
@ -15,7 +15,9 @@ dependencies {
|
||||
// Fawe depends
|
||||
compile 'org.yaml:snakeyaml:1.19'
|
||||
compile 'net.fabiozumbi12:redprotect:1.9.6'
|
||||
compile group: "com.plotsquared", name: "plotsquared-api", version: "latest"
|
||||
compile ("com.plotsquared:plotsquared-api:latest") {
|
||||
transitive = false
|
||||
}
|
||||
// compile 'org.primesoft:BlocksHub:2.0'
|
||||
compile 'com.github.luben:zstd-jni:1.1.1'
|
||||
compile 'co.aikar:fastutil-lite:1.0'
|
||||
|
@ -157,7 +157,7 @@ public class SetQueue {
|
||||
return;
|
||||
}
|
||||
|
||||
long time = Settings.IMP.QUEUE.EXTRA_TIME_MS + currentAllocate - System.currentTimeMillis() + now;
|
||||
long time = (long) Settings.IMP.QUEUE.EXTRA_TIME_MS + currentAllocate - System.currentTimeMillis() + now;
|
||||
// Disable the async catcher as it can't discern async vs parallel
|
||||
boolean parallel = Settings.IMP.QUEUE.PARALLEL_THREADS > 1;
|
||||
queue.startSet(parallel);
|
||||
|
@ -35,6 +35,6 @@ public interface Injector {
|
||||
* @throws InstantiationException thrown on injection fault
|
||||
* @throws InvocationTargetException thrown on injection fault
|
||||
*/
|
||||
public Object getInstance(Class<?> cls) throws InvocationTargetException, IllegalAccessException, InstantiationException;
|
||||
Object getInstance(Class<?> cls) throws InvocationTargetException, IllegalAccessException, InstantiationException;
|
||||
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface Logging {
|
||||
|
||||
public enum LogMode {
|
||||
enum LogMode {
|
||||
/**
|
||||
* Player position
|
||||
*/
|
||||
|
@ -150,7 +150,7 @@ public class YAMLNode {
|
||||
return;
|
||||
}
|
||||
|
||||
if (o == null || !(o instanceof Map)) {
|
||||
if (!(o instanceof Map)) {
|
||||
// This will override existing configuration data!
|
||||
o = new LinkedHashMap<String, Object>();
|
||||
node.put(parts[i], o);
|
||||
|
@ -19,10 +19,8 @@
|
||||
|
||||
package com.sk89q.worldedit;
|
||||
|
||||
import com.boydti.fawe.object.IntegerTrio;
|
||||
import com.boydti.fawe.object.schematic.Schematic;
|
||||
import com.boydti.fawe.util.MainUtil;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.command.ClipboardCommands;
|
||||
import com.sk89q.worldedit.command.FlattenedClipboardTransform;
|
||||
@ -34,10 +32,8 @@ import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
|
||||
import com.sk89q.worldedit.function.operation.ForwardExtentCopy;
|
||||
import com.sk89q.worldedit.function.operation.Operations;
|
||||
import com.sk89q.worldedit.math.transform.AffineTransform;
|
||||
import com.sk89q.worldedit.math.transform.Transform;
|
||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
||||
import com.sk89q.worldedit.regions.Region;
|
||||
import com.sk89q.worldedit.schematic.SchematicFormat;
|
||||
import com.sk89q.worldedit.util.Countable;
|
||||
import com.sk89q.worldedit.util.Direction;
|
||||
import com.sk89q.worldedit.world.DataException;
|
||||
@ -48,8 +44,9 @@ import com.sk89q.worldedit.world.registry.LegacyMapper;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
@ -102,6 +99,11 @@ public class CuboidClipboard {
|
||||
this.clipboard = this.init(Vector.ZERO, Vector.ZERO);
|
||||
}
|
||||
|
||||
public CuboidClipboard(BlockArrayClipboard clipboard) {
|
||||
this.clipboard = clipboard;
|
||||
this.size = clipboard.getDimensions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the clipboard.
|
||||
*
|
||||
@ -326,25 +328,6 @@ public class CuboidClipboard {
|
||||
paste(editSession, newOrigin, noAir, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Paste the stored entities to the given position.
|
||||
*
|
||||
* @param newOrigin the new origin
|
||||
* @return a list of entities that were pasted
|
||||
*/
|
||||
public LocalEntity[] pasteEntities(Vector newOrigin) {
|
||||
return new LocalEntity[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Store an entity.
|
||||
*
|
||||
* @param entity the entity
|
||||
*/
|
||||
public void storeEntity(LocalEntity entity) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the block at the given position.
|
||||
* <p>
|
||||
@ -438,7 +421,7 @@ public class CuboidClipboard {
|
||||
* @param path the path to the file to save
|
||||
* @throws IOException thrown on I/O error
|
||||
* @throws DataException thrown on error writing the data for other reasons
|
||||
* @deprecated use {@link SchematicFormat#MCEDIT}
|
||||
* @deprecated use {@link ClipboardFormat#SCHEMATIC}
|
||||
*/
|
||||
@Deprecated
|
||||
public void saveSchematic(File path) throws IOException, DataException {
|
||||
@ -460,12 +443,12 @@ public class CuboidClipboard {
|
||||
* @return a clipboard
|
||||
* @throws IOException thrown on I/O error
|
||||
* @throws DataException thrown on error writing the data for other reasons
|
||||
* @deprecated use {@link SchematicFormat#MCEDIT}
|
||||
* @deprecated use {@link ClipboardFormat#SCHEMATIC}
|
||||
*/
|
||||
@Deprecated
|
||||
public static CuboidClipboard loadSchematic(File path) throws DataException, IOException {
|
||||
checkNotNull(path);
|
||||
return SchematicFormat.MCEDIT.load(path);
|
||||
return new CuboidClipboard((Vector) ClipboardFormat.SCHEMATIC.load(path).getClipboard());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -489,7 +472,6 @@ public class CuboidClipboard {
|
||||
*
|
||||
* @return a block distribution
|
||||
*/
|
||||
// TODO reduce code duplication
|
||||
public List<Countable<BaseBlock>> getBlockDistributionWithData() {
|
||||
List<Countable<BaseBlock>> distribution = new ArrayList<>();
|
||||
List<Countable<BlockStateHolder>> distr = clipboard.getBlockDistributionWithData(clipboard.getRegion());
|
||||
@ -498,17 +480,4 @@ public class CuboidClipboard {
|
||||
}
|
||||
return distribution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores a copied entity.
|
||||
*/
|
||||
private class CopiedEntity {
|
||||
private final LocalEntity entity;
|
||||
private final Vector relativePosition;
|
||||
|
||||
private CopiedEntity(LocalEntity entity) {
|
||||
this.entity = entity;
|
||||
this.relativePosition = entity.getPosition().getPosition().subtract(getOrigin());
|
||||
}
|
||||
}
|
||||
}
|
@ -44,6 +44,7 @@ import com.boydti.fawe.wrappers.WorldWrapper;
|
||||
import com.google.common.base.Supplier;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.function.mask.*;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||
import com.sk89q.worldedit.entity.BaseEntity;
|
||||
@ -62,7 +63,6 @@ import com.sk89q.worldedit.function.RegionMaskingFilter;
|
||||
import com.sk89q.worldedit.function.block.BlockReplace;
|
||||
import com.sk89q.worldedit.function.block.Naturalizer;
|
||||
import com.sk89q.worldedit.function.generator.GardenPatchGenerator;
|
||||
import com.sk89q.worldedit.function.mask.*;
|
||||
import com.sk89q.worldedit.function.operation.ChangeSetExecutor;
|
||||
import com.sk89q.worldedit.function.operation.ForwardExtentCopy;
|
||||
import com.sk89q.worldedit.function.operation.Operations;
|
||||
@ -92,8 +92,24 @@ import com.sk89q.worldedit.util.eventbus.EventBus;
|
||||
import com.sk89q.worldedit.world.SimpleWorld;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.biome.BaseBiome;
|
||||
import com.sk89q.worldedit.world.block.*;
|
||||
import com.sk89q.worldedit.world.weather.WeatherType;
|
||||
import com.sk89q.worldedit.world.block.BlockCategories;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
@ -1593,6 +1609,35 @@ public class EditSession extends AbstractDelegateExtent implements HasFaweQueue,
|
||||
return this.changes = visitor.getAffected();
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces all the blocks matching a given filter, within a given region, to a block
|
||||
* returned by a given pattern.
|
||||
*
|
||||
* @param region the region to replace the blocks within
|
||||
* @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask}
|
||||
* @param replacement the replacement block
|
||||
* @return number of blocks affected
|
||||
* @throws MaxChangedBlocksException thrown if too many blocks are changed
|
||||
*/
|
||||
public int replaceBlocks(Region region, Set<BlockStateHolder> filter, BlockStateHolder replacement) throws MaxChangedBlocksException {
|
||||
return replaceBlocks(region, filter, new BlockPattern(replacement));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces all the blocks matching a given filter, within a given region, to a block
|
||||
* returned by a given pattern.
|
||||
*
|
||||
* @param region the region to replace the blocks within
|
||||
* @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask}
|
||||
* @param pattern the pattern that provides the new blocks
|
||||
* @return number of blocks affected
|
||||
* @throws MaxChangedBlocksException thrown if too many blocks are changed
|
||||
*/
|
||||
public int replaceBlocks(Region region, Set<BlockStateHolder> filter, Pattern pattern) throws MaxChangedBlocksException {
|
||||
Mask mask = filter == null ? new ExistingBlockMask(this) : new BlockMaskBuilder().addBlocks(filter).build(this);
|
||||
return replaceBlocks(region, mask, pattern);
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces all the blocks matching a given mask, within a given region, to a block
|
||||
* returned by a given pattern.
|
||||
|
@ -489,10 +489,10 @@ public class WorldEdit {
|
||||
int size = missingBlocks.size();
|
||||
int i = 0;
|
||||
|
||||
for (BlockType id : missingBlocks.keySet()) {
|
||||
str.append(id.getName());
|
||||
for (Map.Entry<BlockType, Integer> blockTypeIntegerEntry : missingBlocks.entrySet()) {
|
||||
str.append((blockTypeIntegerEntry.getKey()).getName());
|
||||
|
||||
str.append(" [Amt: ").append(missingBlocks.get(id)).append("]");
|
||||
str.append(" [Amt: ").append(blockTypeIntegerEntry.getValue()).append("]");
|
||||
|
||||
++i;
|
||||
|
||||
@ -567,7 +567,7 @@ public class WorldEdit {
|
||||
Request.reset();
|
||||
|
||||
String filename = f.getPath();
|
||||
int index = filename.lastIndexOf(".");
|
||||
int index = filename.lastIndexOf('.');
|
||||
String ext = filename.substring(index + 1);
|
||||
|
||||
if (!ext.equalsIgnoreCase("js")) {
|
||||
|
@ -55,7 +55,7 @@ public enum MobType {
|
||||
|
||||
private final String name;
|
||||
|
||||
private MobType(String name) {
|
||||
MobType(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,7 @@ import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
|
||||
import com.sk89q.worldedit.function.mask.ExistingBlockMask;
|
||||
import com.sk89q.worldedit.function.mask.Mask;
|
||||
import com.sk89q.worldedit.function.mask.SingleBlockTypeMask;
|
||||
import com.sk89q.worldedit.function.pattern.BlockPattern;
|
||||
import com.sk89q.worldedit.function.pattern.Pattern;
|
||||
import com.sk89q.worldedit.internal.expression.Expression;
|
||||
import com.sk89q.worldedit.session.ClipboardHolder;
|
||||
|
@ -428,7 +428,7 @@ public class RegionCommands extends MethodCommands {
|
||||
@Logging(REGION)
|
||||
public void walls(FawePlayer player, EditSession editSession, @Selection Region region, Pattern pattern, CommandContext context) throws WorldEditException {
|
||||
player.checkConfirmationRegion(getArguments(context), region);
|
||||
int affected = editSession.makeCuboidWalls(region, pattern);
|
||||
int affected = editSession.makeWalls(region, pattern);
|
||||
BBC.VISITOR_BLOCK.send(player, affected);
|
||||
}
|
||||
|
||||
|
@ -27,5 +27,5 @@ import com.sk89q.worldedit.util.Location;
|
||||
|
||||
public interface BlockTool extends Tool {
|
||||
|
||||
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked);
|
||||
boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked);
|
||||
}
|
||||
|
@ -30,6 +30,6 @@ import com.sk89q.worldedit.util.Location;
|
||||
*/
|
||||
public interface DoubleActionBlockTool extends BlockTool {
|
||||
|
||||
public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked);
|
||||
boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked);
|
||||
|
||||
}
|
||||
|
@ -29,6 +29,6 @@ import com.sk89q.worldedit.extension.platform.Platform;
|
||||
*/
|
||||
public interface DoubleActionTraceTool extends TraceTool {
|
||||
|
||||
public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session);
|
||||
boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session);
|
||||
|
||||
}
|
||||
|
@ -31,7 +31,6 @@ import com.sk89q.worldedit.function.pattern.Pattern;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
|
||||
/**
|
||||
* A tool that can place (or remove) blocks at a distance.
|
||||
|
@ -34,6 +34,6 @@ public interface Tool {
|
||||
* @param actor the actor
|
||||
* @return true if use is permitted
|
||||
*/
|
||||
public boolean canUse(Actor actor);
|
||||
boolean canUse(Actor actor);
|
||||
|
||||
}
|
||||
|
@ -26,5 +26,5 @@ import com.sk89q.worldedit.extension.platform.Platform;
|
||||
|
||||
public interface TraceTool extends Tool {
|
||||
|
||||
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session);
|
||||
boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session);
|
||||
}
|
||||
|
@ -39,6 +39,6 @@ public interface Brush {
|
||||
* @param size the size of the brush
|
||||
* @throws MaxChangedBlocksException
|
||||
*/
|
||||
public void build(EditSession editSession, Vector position, Pattern pattern, double size) throws WorldEditException;
|
||||
void build(EditSession editSession, Vector position, Pattern pattern, double size) throws WorldEditException;
|
||||
|
||||
}
|
||||
|
@ -19,9 +19,6 @@
|
||||
|
||||
package com.sk89q.worldedit.extent.clipboard.io;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.sk89q.jnbt.ByteArrayTag;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
@ -34,20 +31,16 @@ import com.sk89q.jnbt.ShortTag;
|
||||
import com.sk89q.jnbt.Tag;
|
||||
import com.sk89q.worldedit.BlockVector;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.WorldEdit;
|
||||
import com.sk89q.worldedit.WorldEditException;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||
import com.sk89q.worldedit.extension.input.ParserContext;
|
||||
import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard;
|
||||
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.NBTCompatibilityHandler;
|
||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
||||
import com.sk89q.worldedit.regions.Region;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@ -56,6 +49,8 @@ import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
/**
|
||||
* Reads schematic files using the Sponge Schematic Specification.
|
||||
*/
|
||||
|
@ -19,10 +19,8 @@
|
||||
|
||||
package com.sk89q.worldedit.extent.inventory;
|
||||
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
|
||||
/**
|
||||
* Represents a source to get blocks from and store removed ones.
|
||||
|
@ -1,24 +1,19 @@
|
||||
package com.sk89q.worldedit.extent.inventory;
|
||||
|
||||
import com.boydti.fawe.FaweCache;
|
||||
import com.boydti.fawe.object.exception.FaweException;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.WorldEditException;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.extent.AbstractDelegateExtent;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -26,7 +26,6 @@ import com.sk89q.worldedit.extent.AbstractDelegateExtent;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -34,6 +34,6 @@ public interface EntityFunction {
|
||||
* @return true if something was changed
|
||||
* @throws WorldEditException thrown on an error
|
||||
*/
|
||||
public boolean apply(Entity entity) throws WorldEditException;
|
||||
boolean apply(Entity entity) throws WorldEditException;
|
||||
|
||||
}
|
||||
|
@ -36,6 +36,6 @@ public interface FlatRegionFunction {
|
||||
* @return true if something was changed
|
||||
* @throws WorldEditException thrown on an error
|
||||
*/
|
||||
public boolean apply(Vector2D position) throws WorldEditException;
|
||||
boolean apply(Vector2D position) throws WorldEditException;
|
||||
|
||||
}
|
||||
|
@ -34,6 +34,6 @@ public interface RegionFunction {
|
||||
* @return true if something was changed
|
||||
* @throws WorldEditException thrown on an error
|
||||
*/
|
||||
public boolean apply(Vector position) throws WorldEditException;
|
||||
boolean apply(Vector position) throws WorldEditException;
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.function.LayerFunction;
|
||||
import com.sk89q.worldedit.function.mask.BlockMask;
|
||||
import com.sk89q.worldedit.function.mask.BlockTypeMask;
|
||||
import com.sk89q.worldedit.function.mask.Mask;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
@ -23,9 +23,9 @@ import java.util.Map;
|
||||
/**
|
||||
* A mask that checks whether blocks at the given positions are matched by
|
||||
* a block in a list.
|
||||
* <p>
|
||||
* <p>This mask checks for both an exact block ID and data value match, as well
|
||||
* for a block with the same ID but a data value of -1.</p>
|
||||
*
|
||||
* <p>This mask checks for both an exact block type and state value match,
|
||||
* respecting fuzzy status of the BlockState.</p>
|
||||
*/
|
||||
public class BlockMask extends AbstractExtentMask {
|
||||
|
||||
|
@ -5,6 +5,12 @@ import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class BlockTypeMask extends AbstractExtentMask {
|
||||
private final boolean[] types;
|
||||
|
||||
@ -19,6 +25,55 @@ public class BlockTypeMask extends AbstractExtentMask {
|
||||
for (BlockType type : types) this.types[type.getInternalId()] = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new block mask.
|
||||
*
|
||||
* @param extent the extent
|
||||
* @param blocks a list of blocks to match
|
||||
*/
|
||||
public BlockTypeMask(Extent extent, Collection<BlockType> blocks) {
|
||||
this(extent, blocks.toArray(new BlockType[blocks.size()]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the given blocks to the list of criteria.
|
||||
*
|
||||
* @param blocks a list of blocks
|
||||
*/
|
||||
public void add(Collection<BlockType> blocks) {
|
||||
checkNotNull(blocks);
|
||||
for (BlockType type : blocks) {
|
||||
add(type);
|
||||
}
|
||||
for (BlockType type : blocks) {
|
||||
this.types[type.getInternalId()] = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the given blocks to the list of criteria.
|
||||
*
|
||||
* @param blocks an array of blocks
|
||||
*/
|
||||
public void add(BlockType... blocks) {
|
||||
for (BlockType type : blocks) {
|
||||
this.types[type.getInternalId()] = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of blocks that are tested with.
|
||||
*
|
||||
* @return a list of blocks
|
||||
*/
|
||||
public Collection<BlockType> getBlocks() {
|
||||
Set<BlockType> blocks = new HashSet<>();
|
||||
for (int i = 0; i < types.length; i++) {
|
||||
if (types[i]) blocks.add(BlockTypes.get(i));
|
||||
}
|
||||
return blocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(Vector vector) {
|
||||
return types[getExtent().getBlockType(vector).getInternalId()];
|
||||
|
@ -19,7 +19,6 @@
|
||||
|
||||
package com.sk89q.worldedit.function.mask;
|
||||
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
|
||||
@ -42,7 +41,7 @@ public class ExistingBlockMask extends AbstractExtentMask {
|
||||
|
||||
@Override
|
||||
public boolean test(Vector vector) {
|
||||
return !getExtent().getBlock(vector).getBlockType().getMaterial().isAir();
|
||||
return !getExtent().getBlock(vector).getMaterial().isAir();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
@ -34,6 +34,6 @@ import java.lang.annotation.Target;
|
||||
@Target(ElementType.PARAMETER)
|
||||
public @interface Direction {
|
||||
|
||||
public static final String AIM = "me";
|
||||
String AIM = "me";
|
||||
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ package com.sk89q.worldedit.internal.cui;
|
||||
|
||||
public interface CUIEvent {
|
||||
|
||||
public String getTypeId();
|
||||
String getTypeId();
|
||||
|
||||
public String[] getParameters();
|
||||
String[] getParameters();
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public interface CUIRegion {
|
||||
* value supplied by getProtocolVersion().
|
||||
*
|
||||
*/
|
||||
public void describeCUI(LocalSession session, Actor player);
|
||||
void describeCUI(LocalSession session, Actor player);
|
||||
|
||||
/**
|
||||
* Sends CUI events describing the region for
|
||||
@ -38,7 +38,7 @@ public interface CUIRegion {
|
||||
* supplied by getProtocolVersion().
|
||||
*
|
||||
*/
|
||||
public void describeLegacyCUI(LocalSession session, Actor player);
|
||||
void describeLegacyCUI(LocalSession session, Actor player);
|
||||
|
||||
/**
|
||||
* Returns the CUI version that is required to send
|
||||
@ -47,14 +47,14 @@ public interface CUIRegion {
|
||||
*
|
||||
* @return the protocol version
|
||||
*/
|
||||
public int getProtocolVersion();
|
||||
int getProtocolVersion();
|
||||
|
||||
/**
|
||||
* Returns the type ID to send to CUI in the selection event.
|
||||
*
|
||||
* @return the type ID
|
||||
*/
|
||||
public String getTypeID();
|
||||
String getTypeID();
|
||||
|
||||
/**
|
||||
* Returns the type ID to send to CUI in the selection
|
||||
@ -62,5 +62,5 @@ public interface CUIRegion {
|
||||
*
|
||||
* @return the legacy type ID
|
||||
*/
|
||||
public String getLegacyTypeID();
|
||||
String getLegacyTypeID();
|
||||
}
|
||||
|
@ -54,8 +54,8 @@ public interface Identifiable {
|
||||
* C - Switch
|
||||
* </pre>
|
||||
*/
|
||||
public abstract char id();
|
||||
char id();
|
||||
|
||||
public int getPosition();
|
||||
int getPosition();
|
||||
|
||||
}
|
||||
|
@ -27,12 +27,12 @@ import com.sk89q.worldedit.internal.expression.parser.ParserException;
|
||||
*/
|
||||
public interface LValue extends RValue {
|
||||
|
||||
public double assign(double value) throws EvaluationException;
|
||||
double assign(double value) throws EvaluationException;
|
||||
|
||||
@Override
|
||||
public LValue optimize() throws EvaluationException;
|
||||
LValue optimize() throws EvaluationException;
|
||||
|
||||
@Override
|
||||
public LValue bindVariables(Expression expression, boolean preferLValue) throws ParserException;
|
||||
LValue bindVariables(Expression expression, boolean preferLValue) throws ParserException;
|
||||
|
||||
}
|
||||
|
@ -28,10 +28,10 @@ import com.sk89q.worldedit.internal.expression.parser.ParserException;
|
||||
*/
|
||||
public interface RValue extends Identifiable {
|
||||
|
||||
public double getValue() throws EvaluationException;
|
||||
double getValue() throws EvaluationException;
|
||||
|
||||
public RValue optimize() throws EvaluationException;
|
||||
RValue optimize() throws EvaluationException;
|
||||
|
||||
public RValue bindVariables(Expression expression, boolean preferLValue) throws ParserException;
|
||||
RValue bindVariables(Expression expression, boolean preferLValue) throws ParserException;
|
||||
|
||||
}
|
||||
|
@ -147,13 +147,13 @@ public final class DocumentationPrinter {
|
||||
|
||||
stream.print(" || ");
|
||||
|
||||
if (cmd.flags() != null && !cmd.flags().equals("")) {
|
||||
if (cmd.flags() != null && !cmd.flags().isEmpty()) {
|
||||
stream.print(cmd.flags());
|
||||
}
|
||||
|
||||
stream.print(" || ");
|
||||
|
||||
if (cmd.desc() != null && !cmd.desc().equals("")) {
|
||||
if (cmd.desc() != null && !cmd.desc().isEmpty()) {
|
||||
stream.print(cmd.desc());
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ public interface Interpolation {
|
||||
*
|
||||
* @param nodes the nodes
|
||||
*/
|
||||
public void setNodes(List<Node> nodes);
|
||||
void setNodes(List<Node> nodes);
|
||||
|
||||
/**
|
||||
* Gets the result of f(position)
|
||||
@ -44,7 +44,7 @@ public interface Interpolation {
|
||||
* @param position the position to interpolate
|
||||
* @return the result
|
||||
*/
|
||||
public Vector getPosition(double position);
|
||||
Vector getPosition(double position);
|
||||
|
||||
/**
|
||||
* Gets the result of f'(position).
|
||||
@ -52,7 +52,7 @@ public interface Interpolation {
|
||||
* @param position the position to interpolate
|
||||
* @return the result
|
||||
*/
|
||||
public Vector get1stDerivative(double position);
|
||||
Vector get1stDerivative(double position);
|
||||
|
||||
/**
|
||||
* Gets the result of ∫<sub>a</sub><sup style="position: relative; left: -1ex">b</sup>|f'(t)| dt.<br />
|
||||
|
@ -28,19 +28,19 @@ public interface FlatRegion extends Region {
|
||||
*
|
||||
* @return the Y value
|
||||
*/
|
||||
public int getMinimumY();
|
||||
int getMinimumY();
|
||||
|
||||
/**
|
||||
* Gets the maximum Y value
|
||||
*
|
||||
* @return the Y value
|
||||
*/
|
||||
public int getMaximumY();
|
||||
int getMaximumY();
|
||||
|
||||
/**
|
||||
* Get this region as an iterable flat region.
|
||||
*
|
||||
* @return a flat region iterable
|
||||
*/
|
||||
public Iterable<Vector2D> asFlatRegion();
|
||||
Iterable<Vector2D> asFlatRegion();
|
||||
}
|
||||
|
@ -44,14 +44,14 @@ public interface RegionSelector {
|
||||
* @return a world, which may be null
|
||||
*/
|
||||
@Nullable
|
||||
public World getWorld();
|
||||
World getWorld();
|
||||
|
||||
/**
|
||||
* Set the world for the region selector.
|
||||
*
|
||||
* @param world the world, which may be null
|
||||
*/
|
||||
public void setWorld(@Nullable World world);
|
||||
void setWorld(@Nullable World world);
|
||||
|
||||
/**
|
||||
* Called when the first point is selected.
|
||||
@ -59,7 +59,7 @@ public interface RegionSelector {
|
||||
* @param position the position
|
||||
* @return true if something changed
|
||||
*/
|
||||
public boolean selectPrimary(Vector position, SelectorLimits limits);
|
||||
boolean selectPrimary(Vector position, SelectorLimits limits);
|
||||
|
||||
/**
|
||||
* Called when the second point is selected.
|
||||
@ -67,7 +67,7 @@ public interface RegionSelector {
|
||||
* @param position the position
|
||||
* @return true if something changed
|
||||
*/
|
||||
public boolean selectSecondary(Vector position, SelectorLimits limits);
|
||||
boolean selectSecondary(Vector position, SelectorLimits limits);
|
||||
|
||||
/**
|
||||
* Tell the player information about his/her primary selection.
|
||||
@ -76,7 +76,7 @@ public interface RegionSelector {
|
||||
* @param session the session
|
||||
* @param position position
|
||||
*/
|
||||
public void explainPrimarySelection(Actor actor, LocalSession session, Vector position);
|
||||
void explainPrimarySelection(Actor actor, LocalSession session, Vector position);
|
||||
|
||||
/**
|
||||
* Tell the player information about his/her secondary selection.
|
||||
@ -85,7 +85,7 @@ public interface RegionSelector {
|
||||
* @param session the session
|
||||
* @param position position
|
||||
*/
|
||||
public void explainSecondarySelection(Actor actor, LocalSession session, Vector position);
|
||||
void explainSecondarySelection(Actor actor, LocalSession session, Vector position);
|
||||
|
||||
/**
|
||||
* The the player information about the region's changes. This may resend
|
||||
@ -94,7 +94,7 @@ public interface RegionSelector {
|
||||
* @param actor the actor
|
||||
* @param session the session
|
||||
*/
|
||||
public void explainRegionAdjust(Actor actor, LocalSession session);
|
||||
void explainRegionAdjust(Actor actor, LocalSession session);
|
||||
|
||||
/**
|
||||
* Get the primary position.
|
||||
@ -102,7 +102,7 @@ public interface RegionSelector {
|
||||
* @return the primary position
|
||||
* @throws IncompleteRegionException thrown if a region has not been fully defined
|
||||
*/
|
||||
public BlockVector getPrimaryPosition() throws IncompleteRegionException;
|
||||
BlockVector getPrimaryPosition() throws IncompleteRegionException;
|
||||
|
||||
/**
|
||||
* Get the selection.
|
||||
@ -110,52 +110,52 @@ public interface RegionSelector {
|
||||
* @return the created region
|
||||
* @throws IncompleteRegionException thrown if a region has not been fully defined
|
||||
*/
|
||||
public Region getRegion() throws IncompleteRegionException;
|
||||
Region getRegion() throws IncompleteRegionException;
|
||||
|
||||
/**
|
||||
* Get the region even if it's not fully defined.
|
||||
*
|
||||
* @return an incomplete region object that is incomplete
|
||||
*/
|
||||
public Region getIncompleteRegion();
|
||||
Region getIncompleteRegion();
|
||||
|
||||
/**
|
||||
* Returns whether the region has been fully defined.
|
||||
*
|
||||
* @return true if a selection is available
|
||||
*/
|
||||
public boolean isDefined();
|
||||
boolean isDefined();
|
||||
|
||||
/**
|
||||
* Get the number of blocks inside the region.
|
||||
*
|
||||
* @return number of blocks, or -1 if undefined
|
||||
*/
|
||||
public int getArea();
|
||||
int getArea();
|
||||
|
||||
/**
|
||||
* Update the selector with changes to the region.
|
||||
*/
|
||||
public void learnChanges();
|
||||
void learnChanges();
|
||||
|
||||
/**
|
||||
* Clear the selection.
|
||||
*/
|
||||
public void clear();
|
||||
void clear();
|
||||
|
||||
/**
|
||||
* Get a lowercase name of this region selector type.
|
||||
*
|
||||
* @return a lower case name of the type
|
||||
*/
|
||||
public String getTypeName();
|
||||
String getTypeName();
|
||||
|
||||
/**
|
||||
* Get lines of information about the selection.
|
||||
*
|
||||
* @return a list of lines describing the region
|
||||
*/
|
||||
public List<String> getInformationLines();
|
||||
List<String> getInformationLines();
|
||||
|
||||
/**
|
||||
* Get the verticies
|
||||
|
@ -36,7 +36,7 @@ public enum RegionSelectorType {
|
||||
|
||||
private final Class<? extends RegionSelector> selectorClass;
|
||||
|
||||
private RegionSelectorType(Class<? extends RegionSelector> selectorClass) {
|
||||
RegionSelectorType(Class<? extends RegionSelector> selectorClass) {
|
||||
this.selectorClass = selectorClass;
|
||||
}
|
||||
|
||||
|
@ -23,10 +23,10 @@ import java.util.Map;
|
||||
import javax.script.ScriptException;
|
||||
|
||||
public interface CraftScriptEngine {
|
||||
public void setTimeLimit(int milliseconds);
|
||||
void setTimeLimit(int milliseconds);
|
||||
|
||||
public int getTimeLimit();
|
||||
int getTimeLimit();
|
||||
|
||||
public Object evaluate(String script, String filename, Map<String, Object> args)
|
||||
Object evaluate(String script, String filename, Map<String, Object> args)
|
||||
throws ScriptException, Throwable;
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ public class SessionManager {
|
||||
checkNotNull(name);
|
||||
for (SessionHolder holder : sessions.values()) {
|
||||
String test = holder.key.getName();
|
||||
if (test != null && name.equals(test)) {
|
||||
if (name.equals(test)) {
|
||||
return holder.session;
|
||||
}
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ public class YAMLConfiguration extends LocalConfiguration {
|
||||
}
|
||||
|
||||
String type = config.getString("shell-save-type", "").trim();
|
||||
shellSaveType = type.equals("") ? null : type;
|
||||
shellSaveType = type.isEmpty() ? null : type;
|
||||
|
||||
}
|
||||
|
||||
|
@ -61,6 +61,6 @@ public interface Parameter {
|
||||
*
|
||||
* @return a default value, or null if none is set
|
||||
*/
|
||||
public String[] getDefaultValue();
|
||||
String[] getDefaultValue();
|
||||
|
||||
}
|
||||
|
@ -136,11 +136,11 @@ public enum Style {
|
||||
private final static Map<Integer, Style> BY_ID = Maps.newHashMap();
|
||||
private final static Map<Character, Style> BY_CHAR = Maps.newHashMap();
|
||||
|
||||
private Style(char code, int intCode) {
|
||||
Style(char code, int intCode) {
|
||||
this(code, intCode, false);
|
||||
}
|
||||
|
||||
private Style(char code, int intCode, boolean isFormat) {
|
||||
Style(char code, int intCode, boolean isFormat) {
|
||||
this.code = code;
|
||||
this.intCode = intCode;
|
||||
this.isFormat = isFormat;
|
||||
@ -183,7 +183,7 @@ public enum Style {
|
||||
* Gets the color represented by the specified color code
|
||||
*
|
||||
* @param code Code to check
|
||||
* @return Associative {@link org.bukkit.ChatColor} with the given code, or null if it doesn't exist
|
||||
* @return Associative Style with the given code, or null if it doesn't exist
|
||||
*/
|
||||
public static Style getByChar(char code) {
|
||||
return BY_CHAR.get(code);
|
||||
@ -193,7 +193,7 @@ public enum Style {
|
||||
* Gets the color represented by the specified color code
|
||||
*
|
||||
* @param code Code to check
|
||||
* @return Associative {@link org.bukkit.ChatColor} with the given code, or null if it doesn't exist
|
||||
* @return Associative Style with the given code, or null if it doesn't exist
|
||||
*/
|
||||
public static Style getByChar(String code) {
|
||||
checkNotNull(code);
|
||||
|
@ -27,13 +27,11 @@ import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.blocks.BaseItem;
|
||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||
import com.sk89q.worldedit.extension.platform.Platform;
|
||||
import com.sk89q.worldedit.function.mask.BlockMask;
|
||||
import com.sk89q.worldedit.function.mask.BlockTypeMask;
|
||||
import com.sk89q.worldedit.function.mask.Mask;
|
||||
import com.sk89q.worldedit.function.operation.Operation;
|
||||
import com.sk89q.worldedit.util.Direction;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockState;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
|
||||
|
@ -193,7 +193,7 @@ public class Snapshot implements Comparable<Snapshot> {
|
||||
public int compareTo(Snapshot o) {
|
||||
if (o.date == null || date == null) {
|
||||
// Remove the folder from the name
|
||||
int i = name.indexOf("/"), j = o.name.indexOf("/");
|
||||
int i = name.indexOf('/'), j = o.name.indexOf('/');
|
||||
return name.substring((i > 0 ? 0 : i)).compareTo(o.name.substring((j > 0 ? 0 : j)));
|
||||
} else {
|
||||
return date.compareTo(o.date);
|
||||
|
@ -35,6 +35,6 @@ public interface SnapshotDateParser {
|
||||
* @return date or null
|
||||
*/
|
||||
@Nullable
|
||||
public Calendar detectDate(File file);
|
||||
Calendar detectDate(File file);
|
||||
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ public class TrueZipLegacyChunkStore extends LegacyChunkStore {
|
||||
|
||||
// Detect subfolder for the world's files
|
||||
if (folder != null) {
|
||||
if (!folder.equals("")) {
|
||||
if (!folder.isEmpty()) {
|
||||
file = folder + "/" + file;
|
||||
}
|
||||
} else {
|
||||
|
@ -87,7 +87,7 @@ public class TrueZipMcRegionChunkStore extends McRegionChunkStore {
|
||||
protected InputStream getInputStream(String name, String worldName) throws IOException, DataException {
|
||||
// Detect subfolder for the world's files
|
||||
if (folder != null) {
|
||||
if (!folder.equals("")) {
|
||||
if (!folder.isEmpty()) {
|
||||
name = folder + "/" + name;
|
||||
}
|
||||
} else {
|
||||
@ -100,7 +100,7 @@ public class TrueZipMcRegionChunkStore extends McRegionChunkStore {
|
||||
if (worldPattern.matcher(worldName).matches()) {
|
||||
// Check for file
|
||||
if (pattern.matcher(testEntry.getName()).matches()) {
|
||||
folder = testEntry.getName().substring(0, testEntry.getName().lastIndexOf("/"));
|
||||
folder = testEntry.getName().substring(0, testEntry.getName().lastIndexOf('/'));
|
||||
name = folder + "/" + name;
|
||||
break;
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ public class ZippedLegacyChunkStore extends LegacyChunkStore {
|
||||
|
||||
// Detect subfolder for the world's files
|
||||
if (folder != null) {
|
||||
if (!folder.equals("")) {
|
||||
if (!folder.isEmpty()) {
|
||||
file = folder + "/" + file;
|
||||
}
|
||||
} else {
|
||||
|
@ -76,7 +76,7 @@ public class ZippedMcRegionChunkStore extends McRegionChunkStore {
|
||||
protected InputStream getInputStream(String name, String worldName) throws IOException, DataException {
|
||||
// Detect subfolder for the world's files
|
||||
if (folder != null) {
|
||||
if (!folder.equals("")) {
|
||||
if (!folder.isEmpty()) {
|
||||
name = folder + "/" + name;
|
||||
}
|
||||
} else {
|
||||
@ -86,7 +86,7 @@ public class ZippedMcRegionChunkStore extends McRegionChunkStore {
|
||||
// Check for world
|
||||
if (testEntry.getName().startsWith(worldName + "/")) {
|
||||
if (pattern.matcher(testEntry.getName()).matches()) { // does entry end in .mca
|
||||
folder = testEntry.getName().substring(0, testEntry.getName().lastIndexOf("/"));
|
||||
folder = testEntry.getName().substring(0, testEntry.getName().lastIndexOf('/'));
|
||||
name = folder + "/" + name;
|
||||
break;
|
||||
}
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren