From f3c633582eb42c330480886c6ee4134fb394d645 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Mon, 12 Nov 2018 12:38:13 +1000 Subject: [PATCH] Finish removal of PlayerDirection, and partially added diagonal support back to commands. (Other minor changes to WorldEdit-Sponge and FAVS) --- .../thevoxelbox/voxelsniper/SnipeData.java | 2 +- .../command/VoxelVoxelCommand.java | 4 +- .../boydti/fawe/wrappers/PlayerWrapper.java | 3 +- .../sk89q/worldedit/LocalConfiguration.java | 4 +- .../com/sk89q/worldedit/PlayerDirection.java | 59 ----------------- .../java/com/sk89q/worldedit/WorldEdit.java | 64 ++++++++++++------- .../worldedit/command/RegionCommands.java | 4 +- .../com/sk89q/worldedit/entity/Player.java | 7 +- .../extension/factory/DefaultBlockParser.java | 2 +- .../platform/AbstractPlayerActor.java | 30 ++++----- .../internal/annotation/Direction.java | 1 + .../internal/command/WorldEditBinding.java | 7 +- .../util/PropertiesConfiguration.java | 6 +- .../worldedit/util/YAMLConfiguration.java | 6 +- worldedit-sponge/build.gradle | 61 ++++++++++++------ .../sk89q/worldedit/sponge/SpongePlayer.java | 4 +- .../sk89q/worldedit/sponge/SpongeWorld.java | 3 - .../worldedit/sponge/SpongeWorldEdit.java | 4 +- 18 files changed, 123 insertions(+), 148 deletions(-) delete mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/PlayerDirection.java diff --git a/favs/src/main/java/com/thevoxelbox/voxelsniper/SnipeData.java b/favs/src/main/java/com/thevoxelbox/voxelsniper/SnipeData.java index e997e5ec6..ee6810179 100644 --- a/favs/src/main/java/com/thevoxelbox/voxelsniper/SnipeData.java +++ b/favs/src/main/java/com/thevoxelbox/voxelsniper/SnipeData.java @@ -272,7 +272,7 @@ public class SnipeData { * @param voxelId the voxelId to set */ public final void setVoxelId(final int voxelId) { - if (WorldEdit.getInstance().getConfiguration().disallowedBlocks.contains(voxelId)) { + if (WorldEdit.getInstance().getConfiguration().disallowedBlocks.contains(BlockTypes.getFromStateId(voxelId).getId())) { if (owner != null) { Player plr = owner.getPlayer(); if (plr != null) { diff --git a/favs/src/main/java/com/thevoxelbox/voxelsniper/command/VoxelVoxelCommand.java b/favs/src/main/java/com/thevoxelbox/voxelsniper/command/VoxelVoxelCommand.java index 162f77747..743b027c7 100644 --- a/favs/src/main/java/com/thevoxelbox/voxelsniper/command/VoxelVoxelCommand.java +++ b/favs/src/main/java/com/thevoxelbox/voxelsniper/command/VoxelVoxelCommand.java @@ -55,7 +55,7 @@ public class VoxelVoxelCommand extends VoxelCommand { Material blockType = block.getType(); BlockType weType = BukkitAdapter.adapt(blockType); - if(!player.hasPermission("voxelsniper.ignorelimitations") && WorldEdit.getInstance().getConfiguration().disallowedBlocks.contains(weType)) { + if(!player.hasPermission("voxelsniper.ignorelimitations") && WorldEdit.getInstance().getConfiguration().disallowedBlocks.contains(weType.getId())) { player.sendMessage("You are not allowed to use " + blockType.name() + ". (WorldEdit config.yml)"); return true; } @@ -68,7 +68,7 @@ public class VoxelVoxelCommand extends VoxelCommand { } else { BlockType weType = BlockTypes.parse(args[0]); if(weType != null) { - if(!player.hasPermission("voxelsniper.ignorelimitations") && WorldEdit.getInstance().getConfiguration().disallowedBlocks.contains(weType)) { + if(!player.hasPermission("voxelsniper.ignorelimitations") && WorldEdit.getInstance().getConfiguration().disallowedBlocks.contains(weType.getId())) { player.sendMessage("You are not allowed to use " + weType + "."); return true; } else { diff --git a/worldedit-core/src/main/java/com/boydti/fawe/wrappers/PlayerWrapper.java b/worldedit-core/src/main/java/com/boydti/fawe/wrappers/PlayerWrapper.java index ef330d00f..ef40faff3 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/wrappers/PlayerWrapper.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/wrappers/PlayerWrapper.java @@ -18,6 +18,7 @@ import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.session.SessionKey; +import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.TargetBlock; @@ -342,7 +343,7 @@ public class PlayerWrapper extends AbstractPlayerActor { } @Override - public PlayerDirection getCardinalDirection() { + public Direction getCardinalDirection() { return parent.getCardinalDirection(); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java index 71b84d441..e2acf8242 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java @@ -38,7 +38,7 @@ public abstract class LocalConfiguration { protected static final String[] defaultDisallowedBlocks = new String[] {}; public boolean profile = false; - public Set disallowedBlocks = new HashSet<>(); + public Set disallowedBlocks = new HashSet<>(); public int defaultChangeLimit = -1; public int maxChangeLimit = -1; public int defaultMaxPolygonalPoints = -1; @@ -65,7 +65,7 @@ public abstract class LocalConfiguration { public String navigationWand = ItemTypes.COMPASS.getId(); public int navigationWandMaxDistance = 50; public int scriptTimeout = 3000; - public Set allowedDataCycleBlocks = new HashSet<>(); + public Set allowedDataCycleBlocks = new HashSet<>(); public String saveDir = "schematics"; public String scriptsDir = "craftscripts"; public boolean showHelpInfo = true; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/PlayerDirection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/PlayerDirection.java deleted file mode 100644 index c751ffbbb..000000000 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/PlayerDirection.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * WorldEdit, a Minecraft world manipulation toolkit - * Copyright (C) sk89q - * Copyright (C) WorldEdit team and contributors - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.sk89q.worldedit; - -import com.sk89q.worldedit.math.Vector3; -import com.sk89q.worldedit.util.Direction; - -/** - * The player's direction. - * - *

In the future, this class will be replaced with {@link Direction}.

- */ -public enum PlayerDirection { - - NORTH(Vector3.at(0, 0, -1), true), - NORTH_EAST((Vector3.at(1, 0, -1)).normalize(), false), - EAST(Vector3.at(1, 0, 0), true), - SOUTH_EAST((Vector3.at(1, 0, 1)).normalize(), false), - SOUTH(Vector3.at(0, 0, 1), true), - SOUTH_WEST((Vector3.at(-1, 0, 1)).normalize(), false), - WEST(Vector3.at(-1, 0, 0), true), - NORTH_WEST((Vector3.at(-1, 0, -1)).normalize(), false), - UP(Vector3.at(0, 1, 0), true), - DOWN(Vector3.at(0, -1, 0), true); - - private final Vector3 dir; - private final boolean isOrthogonal; - - PlayerDirection(Vector3 vec, boolean isOrthogonal) { - this.dir = vec; - this.isOrthogonal = isOrthogonal; - } - - public Vector3 vector() { - return dir; - } - - public boolean isOrthogonal() { - return isOrthogonal; - } - -} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java index 2d35cbb95..76f2377d3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java @@ -49,6 +49,7 @@ import com.sk89q.worldedit.scripting.CraftScriptEngine; import com.sk89q.worldedit.scripting.RhinoCraftScriptEngine; import com.sk89q.worldedit.session.SessionManager; import com.sk89q.worldedit.session.request.Request; +import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.eventbus.EventBus; import com.sk89q.worldedit.util.io.file.FileSelectionAbortedException; @@ -385,21 +386,35 @@ public class WorldEdit { public BlockVector3 getDirection(Player player, String dirStr) throws UnknownDirectionException { dirStr = dirStr.toLowerCase(); - final PlayerDirection dir = getPlayerDirection(player, dirStr); + final Direction dir = getPlayerDirection(player, dirStr); - switch (dir) { - case WEST: - case EAST: - case SOUTH: - case NORTH: - case UP: - case DOWN: - return dir.vector().toBlockPoint(); - - default: + if (dir.isUpright() || dir.isCardinal()) { + return dir.toBlockVector(); + } else { throw new UnknownDirectionException(dir.name()); } } + + /** + * Get the direction vector for a player's direction. May return + * null if a direction could not be found. + * + * @param player the player + * @param dirStr the direction string + * @return a direction vector + * @throws UnknownDirectionException thrown if the direction is not known + */ + public BlockVector3 getDiagonalDirection(Player player, String dirStr) throws UnknownDirectionException { + dirStr = dirStr.toLowerCase(); + + final Direction dir = getPlayerDirection(player, dirStr); + + if (dir.isCardinal() || dir.isOrdinal() || dir.isUpright()) { + return dir.toBlockVector(); + } + + throw new UnknownDirectionException(dir.name()); + } /** * Get the direction vector for a player's direction. May return @@ -410,46 +425,46 @@ public class WorldEdit { * @return a direction enum value * @throws UnknownDirectionException thrown if the direction is not known */ - private PlayerDirection getPlayerDirection(Player player, String dirStr) throws UnknownDirectionException { - final PlayerDirection dir; + private Direction getPlayerDirection(Player player, String dirStr) throws UnknownDirectionException { + final Direction dir; switch (dirStr.charAt(0)) { case 'w': - dir = PlayerDirection.WEST; + dir = Direction.WEST; break; case 'e': - dir = PlayerDirection.EAST; + dir = Direction.EAST; break; case 's': if (dirStr.indexOf('w') > 0) { - return PlayerDirection.SOUTH_WEST; + return Direction.SOUTHWEST; } if (dirStr.indexOf('e') > 0) { - return PlayerDirection.SOUTH_EAST; + return Direction.SOUTHEAST; } - dir = PlayerDirection.SOUTH; + dir = Direction.SOUTH; break; case 'n': if (dirStr.indexOf('w') > 0) { - return PlayerDirection.NORTH_WEST; + return Direction.NORTHWEST; } if (dirStr.indexOf('e') > 0) { - return PlayerDirection.NORTH_EAST; + return Direction.NORTHEAST; } - dir = PlayerDirection.NORTH; + dir = Direction.NORTH; break; case 'u': - dir = PlayerDirection.UP; + dir = Direction.UP; break; case 'd': - dir = PlayerDirection.DOWN; + dir = Direction.DOWN; break; case 'm': // me @@ -475,6 +490,7 @@ public class WorldEdit { return dir; } + /** * Flush a block bag's changes to a player. * @@ -694,4 +710,4 @@ public class WorldEdit { return version; } -} +} \ No newline at end of file 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 e392d09eb..94afe9eb7 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 @@ -543,7 +543,7 @@ public class RegionCommands extends MethodCommands { public void move(FawePlayer player, LocalSession session, EditSession editSession, @Selection Region region, @Optional("1") @Range(min = 1) int count, - @Optional(Direction.AIM) @Direction BlockVector3 direction, + @Optional(Direction.AIM) @Direction(includeDiagonals = true) BlockVector3 direction, @Optional("air") Pattern replace, @Switch('b') boolean copyBiomes, @Switch('e') boolean skipEntities, @@ -610,7 +610,7 @@ public class RegionCommands extends MethodCommands { public void stack(FawePlayer player, LocalSession session, EditSession editSession, @Selection Region region, @Optional("1") @Range(min = 1) int count, - @Optional(Direction.AIM) @Direction BlockVector3 direction, + @Optional(Direction.AIM) @Direction(includeDiagonals = true) BlockVector3 direction, @Switch('s') boolean moveSelection, @Switch('b') boolean copyBiomes, @Switch('e') boolean skipEntities, diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java index 5b9d72397..846924824 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java @@ -20,8 +20,6 @@ package com.sk89q.worldedit.entity; import javax.annotation.Nullable; - -import com.sk89q.worldedit.PlayerDirection; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BaseBlock; @@ -30,6 +28,7 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; +import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.World; @@ -61,7 +60,7 @@ public interface Player extends Entity, Actor { * * @return the direction */ - PlayerDirection getCardinalDirection(int yawOffset); + Direction getCardinalDirection(int yawOffset); /** * Get the item that the player is holding. @@ -241,7 +240,7 @@ public interface Player extends Entity, Actor { * * @return the direction */ - PlayerDirection getCardinalDirection(); + Direction getCardinalDirection(); /** * Pass through the wall that you are looking at. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java index c4a7c3c94..9b61d3f31 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java @@ -267,7 +267,7 @@ public class DefaultBlockParser extends InputParser { if (context.isRestricted()) { Actor actor = context.requireActor(); if (actor != null) { - if (!actor.hasPermission("worldedit.anyblock") && worldEdit.getConfiguration().disallowedBlocks.contains(blockType)) { + if (!actor.hasPermission("worldedit.anyblock") && worldEdit.getConfiguration().disallowedBlocks.contains(blockType.getId())) { throw new DisallowedUsageException("You are not allowed to use '" + input + "'"); } if (nbt != null) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java index e29b19fa2..d272818c7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java @@ -20,7 +20,6 @@ package com.sk89q.worldedit.extension.platform; import com.sk89q.worldedit.NotABlockException; -import com.sk89q.worldedit.PlayerDirection; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.entity.Player; @@ -28,6 +27,7 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; +import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.TargetBlock; @@ -71,25 +71,25 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { * @param rot yaw * @return the direction */ - private static PlayerDirection getDirection(double rot) { + private static Direction getDirection(double rot) { if (0 <= rot && rot < 22.5) { - return PlayerDirection.SOUTH; + return Direction.SOUTH; } else if (22.5 <= rot && rot < 67.5) { - return PlayerDirection.SOUTH_WEST; + return Direction.SOUTHWEST; } else if (67.5 <= rot && rot < 112.5) { - return PlayerDirection.WEST; + return Direction.WEST; } else if (112.5 <= rot && rot < 157.5) { - return PlayerDirection.NORTH_WEST; + return Direction.NORTHWEST; } else if (157.5 <= rot && rot < 202.5) { - return PlayerDirection.NORTH; + return Direction.NORTH; } else if (202.5 <= rot && rot < 247.5) { - return PlayerDirection.NORTH_EAST; + return Direction.NORTHEAST; } else if (247.5 <= rot && rot < 292.5) { - return PlayerDirection.EAST; + return Direction.EAST; } else if (292.5 <= rot && rot < 337.5) { - return PlayerDirection.SOUTH_EAST; + return Direction.SOUTHEAST; } else if (337.5 <= rot && rot < 360.0) { - return PlayerDirection.SOUTH; + return Direction.SOUTH; } else { return null; } @@ -377,17 +377,17 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { } @Override - public PlayerDirection getCardinalDirection() { + public Direction getCardinalDirection() { return getCardinalDirection(0); } @Override - public PlayerDirection getCardinalDirection(int yawOffset) { + public Direction getCardinalDirection(int yawOffset) { if (getLocation().getPitch() > 67.5) { - return PlayerDirection.DOWN; + return Direction.DOWN; } if (getLocation().getPitch() < -67.5) { - return PlayerDirection.UP; + return Direction.UP; } // From hey0's code diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java index 7f42b3a36..dbc7d3b29 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java @@ -35,4 +35,5 @@ public @interface Direction { String AIM = "me"; + boolean includeDiagonals() default false; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java index 7465af8ca..13afa3623 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java @@ -24,7 +24,6 @@ import com.boydti.fawe.util.MathMan; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.IncompleteRegionException; import com.sk89q.worldedit.LocalSession; -import com.sk89q.worldedit.PlayerDirection; import com.sk89q.worldedit.UnknownDirectionException; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; @@ -313,7 +312,11 @@ public class WorldEditBinding extends BindingHelper { public BlockVector3 getDirection(ArgumentStack context, Direction direction) throws ParameterException, UnknownDirectionException { Player sender = getPlayer(context); - return worldEdit.getDirection(sender, context.next()); + if (direction.includeDiagonals()) { + return worldEdit.getDiagonalDirection(sender, context.next()); + } else { + return worldEdit.getDirection(sender, context.next()); + } } /** diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java index 65023b4a5..8f31a3c1e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java @@ -81,11 +81,9 @@ public class PropertiesConfiguration extends LocalConfiguration { profile = getBool("profile", profile); disallowedBlocks = - new HashSet<>(getStringSet("limits.disallowed-blocks", defaultDisallowedBlocks)) - .stream().map(e -> BlockTypes.parse(e)).collect(Collectors.toSet()); + new HashSet<>(getStringSet("limits.disallowed-blocks", defaultDisallowedBlocks)); allowedDataCycleBlocks = - new HashSet<>(getStringSet("limits.allowed-data-cycle-blocks", null)) - .stream().map(e -> BlockTypes.parse(e)).collect(Collectors.toSet()); + new HashSet<>(getStringSet("limits.allowed-data-cycle-blocks", null)); defaultChangeLimit = getInt("default-max-changed-blocks", defaultChangeLimit); maxChangeLimit = getInt("max-changed-blocks", maxChangeLimit); defaultMaxPolygonalPoints = getInt("default-max-polygon-points", defaultMaxPolygonalPoints); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java index 8c0cb2095..bb67d5bb8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java @@ -81,11 +81,9 @@ public class YAMLConfiguration extends LocalConfiguration { butcherMaxRadius = Math.max(-1, config.getInt("limits.butcher-radius.maximum", butcherMaxRadius)); disallowedBlocks = - new HashSet<>(config.getStringList("limits.disallowed-blocks", Lists.newArrayList(defaultDisallowedBlocks))) - .stream().map(e -> BlockTypes.parse(e)).collect(Collectors.toSet()); + new HashSet<>(config.getStringList("limits.disallowed-blocks", Lists.newArrayList(defaultDisallowedBlocks))); allowedDataCycleBlocks = - new HashSet<>(config.getStringList("limits.allowed-data-cycle-blocks", null)) - .stream().map(e -> BlockTypes.parse(e)).collect(Collectors.toSet()); + new HashSet<>(config.getStringList("limits.allowed-data-cycle-blocks", null)); registerHelp = config.getBoolean("register-help", true); logCommands = config.getBoolean("logging.log-commands", logCommands); diff --git a/worldedit-sponge/build.gradle b/worldedit-sponge/build.gradle index d068d4804..1e011ee8c 100644 --- a/worldedit-sponge/build.gradle +++ b/worldedit-sponge/build.gradle @@ -8,29 +8,55 @@ buildscript { } plugins { - id 'signing' - id 'org.spongepowered.plugin' version '0.8.1' + id 'org.spongepowered.plugin' version '0.9.0' +} + +repositories { + maven { url "https://repo.codemc.org/repository/maven-public" } } dependencies { compile project(':worldedit-core') - compile 'org.spongepowered:spongeapi:7.0.0-SNAPSHOT' + compile 'org.spongepowered:spongeapi:7.1.0' + compile 'org.bstats:bstats-sponge:1.4' testCompile group: 'org.mockito', name: 'mockito-core', version:'1.9.0-rc1' } sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 -sponge { - plugin { - id = 'worldedit' +jar.archiveName="fawe-sponge-${project.parent.version}.jar" +jar.destinationDir = file '../mvn/com/boydti/fawe-sponge/' + project.parent.version +task createPom << { + pom { + project { + groupId 'com.boydti' + artifactId 'fawe-sponge' + version project.parent.version + } } + .getEffectivePom() + .setDependencies(new ArrayList<>()) + .writeTo("../mvn/com/boydti/fawe-sponge/${project.parent.version}/fawe-sponge-${project.parent.version}.pom") + pom { + project { + groupId 'com.boydti' + artifactId 'fawe-sponge' + version 'latest' + } + } + .getEffectivePom() + .setDependencies(new ArrayList<>()) + .writeTo("../mvn/com/boydti/fawe-sponge/latest/fawe-sponge-latest.pom") } - -jar { - manifest { - attributes("Class-Path": "truezip.jar WorldEdit/truezip.jar js.jar WorldEdit/js.jar", - "WorldEdit-Version": version) +task copyFiles { + doLast { + copy { + from "../mvn/com/boydti/fawe-sponge/${project.parent.version}/" + into '../mvn/com/boydti/fawe-sponge/latest/' + include('*.jar') + rename ("fawe-sponge-${project.parent.version}.jar", 'fawe-sponge-latest.jar') + } } } @@ -38,13 +64,10 @@ shadowJar { dependencies { include(dependency(':worldedit-core')) } + archiveName = "${parent.name}-${project.name.replaceAll("worldedit-", "")}-${parent.version}.jar" + destinationDir = file '../target' } -artifacts { - archives shadowJar -} - -signing { - required false - sign shadowJar -} \ No newline at end of file +build.dependsOn(shadowJar) +build.finalizedBy(copyFiles) +copyFiles.dependsOn(createPom) diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java index e517601a5..fba1c81fc 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java @@ -31,6 +31,7 @@ import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.session.SessionKey; import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.gamemode.GameMode; import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemTypes; @@ -186,8 +187,6 @@ public class SpongePlayer extends AbstractPlayerActor { } @Override -<<<<<<< HEAD -======= public void sendFakeBlock(BlockVector3 pos, BlockStateHolder block) { org.spongepowered.api.world.Location loc = player.getWorld().getLocation(pos.getX(), pos.getY(), pos.getZ()); if (block == null) { @@ -205,7 +204,6 @@ public class SpongePlayer extends AbstractPlayerActor { } @Override ->>>>>>> 399e0ad5... Refactor vector system to be cleaner public SessionKey getSessionKey() { return new SessionKeyImpl(player.getUniqueId(), player.getName()); } diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java index 44c1876dc..81e9de0dc 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java @@ -25,10 +25,7 @@ import com.flowpowered.math.vector.Vector3d; import com.flowpowered.math.vector.Vector3i; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.WorldEditException; -<<<<<<< HEAD -======= import com.sk89q.worldedit.world.block.BaseBlock; ->>>>>>> f54d6afb... Make BaseBlock more memory efficient, and make it clear in the API that it's not intended to be used for every single block. import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.entity.Entity; diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java index 6c494c56f..d7c5a01b6 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java @@ -211,7 +211,7 @@ public class SpongeWorldEdit { BlockType interactedType = targetBlock.getState().getType(); if (event instanceof InteractBlockEvent.Primary) { - if (!interactedType.getMaterial().isAir()) { + if (interactedType != BlockTypes.AIR) { if (!optLoc.isPresent()) { return; } @@ -233,7 +233,7 @@ public class SpongeWorldEdit { } } } else if (event instanceof InteractBlockEvent.Secondary) { - if (!interactedType.getMaterial().isAir()) { + if (interactedType != BlockTypes.AIR) { if (!optLoc.isPresent()) { return; }