diff --git a/favs/src/main/java/com/boydti/fawe/bukkit/favs/Favs.java b/favs/src/main/java/com/boydti/fawe/bukkit/favs/Favs.java index 6a855550..0e5fb81f 100644 --- a/favs/src/main/java/com/boydti/fawe/bukkit/favs/Favs.java +++ b/favs/src/main/java/com/boydti/fawe/bukkit/favs/Favs.java @@ -9,6 +9,7 @@ import com.boydti.fawe.util.MainUtil; import com.thevoxelbox.voxelsniper.RangeBlockHelper; import com.thevoxelbox.voxelsniper.SnipeData; import com.thevoxelbox.voxelsniper.Sniper; +import com.thevoxelbox.voxelsniper.brush.WarpBrush; import com.thevoxelbox.voxelsniper.brush.perform.PerformBrush; import com.thevoxelbox.voxelsniper.command.VoxelVoxelCommand; import com.thevoxelbox.voxelsniper.event.SniperBrushChangedEvent; @@ -62,6 +63,8 @@ public class Favs extends JavaPlugin { RangeBlockHelper.inject(); SniperBrushChangedEvent.inject(); SniperMaterialChangedEvent.inject(); + + WarpBrush.inject(); // Fixes for async tp // Forward the commands so //p and //d will work setupCommand("/p", new FaweCommand("voxelsniper.sniper") { @Override diff --git a/favs/src/main/java/com/thevoxelbox/voxelsniper/brush/WarpBrush.java b/favs/src/main/java/com/thevoxelbox/voxelsniper/brush/WarpBrush.java new file mode 100644 index 00000000..9da9c832 --- /dev/null +++ b/favs/src/main/java/com/thevoxelbox/voxelsniper/brush/WarpBrush.java @@ -0,0 +1,69 @@ +package com.thevoxelbox.voxelsniper.brush; + +import com.boydti.fawe.object.RunnableVal; +import com.boydti.fawe.util.TaskManager; +import com.thevoxelbox.voxelsniper.Message; +import com.thevoxelbox.voxelsniper.SnipeData; +import com.thevoxelbox.voxelsniper.brush.perform.PerformBrush; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +/** + * @author MikeMatrix + */ +public class WarpBrush extends Brush +{ + /** + * + */ + public WarpBrush() + { + this.setName("Warp"); + } + + @Override + public final void info(final Message vm) + { + vm.brushName(this.getName()); + } + + @Override + protected final void arrow(final SnipeData v) + { + Player player = v.owner().getPlayer(); + Location location = this.getLastBlock().getLocation(); + Location playerLocation = player.getLocation(); + location.setPitch(playerLocation.getPitch()); + location.setYaw(playerLocation.getYaw()); + + player.teleport(location); + } + + @Override + protected final void powder(final SnipeData v) + { + Player player = v.owner().getPlayer(); + Location location = this.getLastBlock().getLocation(); + Location playerLocation = player.getLocation(); + location.setPitch(playerLocation.getPitch()); + location.setYaw(playerLocation.getYaw()); + location.setWorld(Bukkit.getWorld(location.getWorld().getName())); + TaskManager.IMP.sync(new RunnableVal() { + @Override + public void run(Object value) { + player.teleport(location); + } + }); + } + + @Override + public String getPermissionNode() + { + return "voxelsniper.brush.warp"; + } + + public static Class inject() { + return WarpBrush.class; + } +} \ No newline at end of file